客户经常会问,为什么在 SOLIDWORKS PDM 中,同一个文件的 “修订版本” 在不同位置显示的值不一样。很多用户并没有意识到:数据库修订(也就是您在版本选项卡、文件历史对话框中看到的 “本地 / 最新修订”)与修订变量(在预览选项卡的变量列表或者数据卡选项卡上看到的修订变量)并不相同,二者也不会自动同步。它们是两套完全独立的字段与数值。这是修订版本相关知识里极易产生误解的一点(也情有可原,相关讲解并不多见),本文将一次性厘清这个困惑。
备注:为充分理解本文内容,您需要先分清版本(Version)和修订(Revision)。建议您先阅读这篇文章《理解 SOLIDWORKS PDM 中的版本与修订》。本文基于该基础知识点展开,默认读者已经掌握相关内容。
数据库修订
数据库修订是文件的 “真实” 修订值。您在 PDM 管理工具中定义修订编号与修订编号组件时,就是在配置一组有序值列表,依托计数器驱动,当文件在工作流中流转时,将修订编号分配给文件。其中,修订编号组件是修订编号的组成部分,每次向文件应用修订编号时,该部分会自动递增。

图 A:PDM 管理工具中展开的【修订】节点
定义修订组件时,相当于为数据库指定一组有序字符串,可以使用预置格式字符串,也可以自定义值列表。最常用的组件类型为数字型与字母型,也就是修订值采用 1、2、3…… 或者 A、B、C…… 这类形式依次顺延。
如果您给 PDM 设置一个静态值例如 “A”,且没有底层映射关系,只要求它每次 + 1,系统就无法获知 A 之后应该是什么值。修订组件会把每一个值绑定到一个计数器(A=1,B=2,C=3,以此类推),数据库依靠跟踪计数器实现递增。PDM 只为修订递增维护这些计数器以及对应的映射值。一旦定义完成并分配给文件,就形成了数据库修订。
系统会在数据库内为每一个文件保存修订计数器值。当展示修订值或者执行修订递增操作时,系统读取计数器值,查找该计数器对应的修订显示值,在前端界面呈现给用户。
举个例子:某文件修订计数器当前值为 2,执行 + 1 递增,计数器变为 3;系统检索修订编号列表,3 对应 C,界面就向用户显示 C。
数据库修订的递增操作在工作流内完成,可使用转换中的【递增修订】操作,或者在状态中使用手动【设置修订】工具。

图 B:工作流转换内的【递增修订】操作

图 C:某个工作流状态,展示状态修订方案的各个组件
正如上文中《版本与修订》一文所述:数据库修订是绑定特定版本的。只要您签入文件变更或者变更文件状态,就会生成该文件的新版本,新版本默认不带任何修订赋值。这就会出现【修订(本地版本)】、【修订(最新版本)】与数据卡信息看起来相互冲突的情况。
读懂版本选项卡
在文件资源管理器的版本选项卡中,您可以查看数据库修订,以及它和所选文件当前本地缓存版本的对应关系。在介绍修订变量之前,您可能会疑惑:版本选项卡中有好几个字段都带有 “修订” 字样,更让人困惑的是,它们的值还经常不一致。
这里显示的值,正是依据管理工具内创建的修订编号与修订组件计算得出的值,也就是数据库计数器运算后的结果。

图 D:文件资源管理器内某文件的版本选项卡
该选项卡包含三个 “修订” 字段,三个字段全部有效,只是分别对应文件不同版本上绑定的修订信息:
- 修订(最新版本):对应文件的最新版本,标识该最新版本是否分配了修订。(显示 “无修订” 代表文件最新版本尚未分配修订)
- 最新修订:代表曾经分配过的最近一次修订值,不区分本地缓存版本。
- 修订(本地版本):对应您本机缓存的文件版本上绑定的修订。
因为数据库修订只绑定在执行修订操作的那个特定文件版本上,所以本地修订和最新修订的值有可能不一致。假设文件当前为第 5 版本,您通过工作流转换动作或者手动【设置修订】递增修订,这个修订只会分配给第 5 版本。一旦您再次签入文件或者流转状态生成第 6 版本,新版本就不再携带这个本地修订。
在历史对话框中更容易理解:版本 5 分配修订 A,版本 6 无修订,版本 7 分配修订 B。

图 E:文件历史对话框,展示绑定在不同版本上独立的修订记录
大部分用户会保持本机缓存文件为最新版本;但如果本机缓存的是旧版本,或者本地没有缓存文件,本地修订和最新修订就会出现差异。
沿用上面的例子:下方这份 “测试装配体” 当前为第 9 版本,自版本 7 之后没有分配新修订。如果您工作站缓存的是最新版本 9,那么最新修订和本地修订都会显示 “无修订”。

图 F.1 & F.2:同一份装配体文件版本选项卡对比,版本 9/9,【修订(最新版本)】与【修订(本地版本)】均显示 “无修订”
如果您获取版本 7 到本地,界面就会发生变化。最新修订仍然显示 “无修订”,因为版本 9 没有修订;但本地文件是版本 7,它带有修订。

图 G:承接上图同一份装配体文件的版本选项卡对比,版本 7/9,【修订(本地版本)】显示 “B.0”
修订变量
理解数据库修订以及读取方式之后,我们再来讲解修订变量,以及二者的区别。首先明确:修订变量就是您在数据卡上看到的修订值。很多用户把它当成默认的、“真实” 的修订;但实际上数据库修订才是最权威的依据,修订变量只是从数据库修订取值。
PDM 默认库中内置了一个名为 “Revision” 的变量;这是通用默认模板,您可以选择使用或者不使用。如果不满足业务需求,您完全可以不用这个变量 —— 很多企业会自定义修订变量,甚至同时使用多个修订变量。

图 H:文件数据卡,展示已经赋值的修订变量
修订变量和其他所有变量没有区别,映射到数据卡之后,它只是一个文本容器。理论上,您甚至可以直接在数据卡该字段手动输入任意内容;它属于静态文本字符串,可以映射到自定义属性并展示在数据卡上。可以由其他流程自动写入,也可以手动更新,但本质上它只是文本载体。

图 I:工作流状态属性,展开【修订变量】下拉列表,在这里指定用于承载修订的变量
部分企业以 SOLIDWORKS 文件本身作为唯一可信源,但最佳实践是由 PDM 依托工作流管控修订,再把修订值回写到数据卡,最终同步到自定义属性。这样能够降低人为出错风险,保障权限、审批与工作流规则得到遵守。我们建议按照上文方式配置修订组件与修订编号,分配到工作流指定的转换和状态,并在转换动作中配对配置【递增修订】和【设置变量】。
修订变量由工作流转换中的【设置变量】动作赋值……

图 J:工作流转换属性,展示【设置变量】动作,描述为 “更新修订变量”
…… 或者手动【设置修订】工具中的【更新变量】复选框完成赋值(两种方式都依托工作流内的配置)。

图 K:【设置修订】对话框,高亮【更新变量】复选框,勾选后将向工作流状态属性中指定的修订变量写入值
修订变量不会自动更新,即便数据库修订发生变化也不会自行同步。两个值没有原生绑定关系,您必须通过上述方式配置工作流,让变量跟随数据库修订同步更新。如果在工作流中没有把【递增修订】和【设置变量】成对配置,二者很容易出现不一致。
修订变量和其他变量一样有一个特点:它跨版本持久保存,这一点和数据库修订不同。无论这个修订值是在哪一个版本上设置的,数据卡上都能一直看到 “修订:B”;除非有人手动在数据卡修改、使用【设置修订】工具或者经由工作流转换去变更它,否则不会变化。
您还可以把变量映射到文件自定义属性,写入工程图标题栏、物料清单,同步至 ERP 系统等。它是 PDM 外部可以识别、对外展示的修订信息。如果您想了解该配置方法,可以阅读这篇文章《将 SOLIDWORKS 文件自定义属性链接到 PDM 变量》。
落地应用
读完数据库修订与修订变量的介绍,您就能理解二者之间不存在原生绑定关系。很多管理员会配置库,让数据卡上的修订变量跟随刚刚递增完成的数据库修订同步更新 —— 这确实是行业最佳实践,但系统本身不会强制二者自动同步,需要您主动配置告知 PDM 执行该动作。
想要正确递增修订并把新修订值写入修订变量,两处都需要在工作流中完成配置。这篇文章《SOLIDWORKS PDM 状态修订编号与转换修订编号的区别》详细介绍二者用途与配置步骤,对于常规自动工作流转换,以及手动使用【设置修订】工具都非常实用。
结语
很多用户在理解 PDM 修订体系时都会感到困惑,希望本文可以解开疑问。SOLIDWORKS PDM 包含大量联动机制,我们希望尽可能拆解清楚,帮助您在日常工作中自信、高效地管理库文件。
遇到问题或者需要其他支持,可以随时联系我们智诚科技ICT的软件支持团队,电话:400-886-6353!祝您修订工作顺利!
部分文章来源网络或用户投稿,如有侵权请联系本站删除!
获取SW正版免费试用,有任何疑问咨询热线:400-886-6353或 联系在线客服
未解决你的问题?请到「问答社区」反馈你遇到的问题,专业工程师为您解答!