目录
1、概述
本文是关于 Naki Code Interface 工具(以下简称CI)的门户文章,阅读这篇文章,可以了解与CI有关的全部知识,以下视频可以先睹为快。
Hello CI
视频是高清的,画面不清洗的话可以切换分辨率。欢迎有兴趣的同学联系。
1.2 传送门
CI介绍画册
PDMS二次开发产品Naki.CI(一):发布初始版本1.0.0
PDMS二次开发产品Naki.CI(二):升级到1.0.1版本
PDMS二次开发产品Naki.CI(三):升级到1.0.3版本
PDMS二次开发产品Naki.CI(四):升级到1.0.4版本
视频介绍:Naki.CI设置自定义编码
视频介绍:Naki.CI创建材料编码和GPART
视频介绍:Naki.CI创建CC码时同步创建SDTE和SMTE
CI视频教程1:创建新Size Series
CI视频教程2:添加删除PhraseCode
CI视频教程3:导入技术规定编码
CI视频教程4:生成CC码
2、项目背景
2.1 什么是Code Interface
CI 是一个PDMS二次开发插件,执行一套简易的、可维护的编码规则,根据编码规则正向生成物资编码(CC码)和采购编码(PN码),编码信息可以写入PDMS,出图和出材料表直接带编码和材料描述,一次性解决材料赋码问题。
关于什么是CC码和PN码,可以看这里:
《工程物料管理信息化建设(二)——材料编码》
2.2 CI的前世今生
在物料管理系统开发和应用过程中我们深受编码缺失之苦,编码缺失的主要原因有二,一是材料编码正向做比较困难,二是工作步骤有问题。
我们先说正向做编码,PDMS早期通过VPRM做材料编码,但是系统集成效果不理想,因为pdms的树形结构数据库在与关系型数据库系统集成时需要比较复杂的转秩动作,用户实现起来有技术难度。
VPRM用过的人可能不多,它的MCAT和SPEC是最有价值的模块,Phrase List短语链表的设计令人印象深刻,但是数据结构完美但是有一点学院派,导致了理解和使用的难度增大;另外它是逆向做编码,在SPEC中吧PN码做好后回传到PDMS等级中,这种方式带来了两个主要弊端:
- 数据集成的复杂度高,PDMS和VPRM中同时存在两套等级,等级数据一旦不一致,处理十分麻烦;
- 这种回灌方式对PDMS等级数据造成了冲击,我记得当时VPRM等级回写以后,等级库里的数据和传统PDMS项目发生很大变化,很多维护工作无法进行,只能依靠SPEC修改后再回导,这种冲击破坏PDMS原生的等级数据结构,系统集成有一个原则,外挂系统(低权重)不能冲击原生系统(高权重),很明显在与PDMS集成的过程中,PDMS软件是高权重系统。
其次是工作步骤颠倒,设计还没有做完就要出材料表,虽然说预估材料量不影响采购工作提前展开,但是这种脱离设计软件而统计的材料一般来说是很难带上材料编码的,这部分材料一旦到达现场,会出现相同的材料,一部分有编码一部分没编码,再清楚的账目也要乱套。
还有其它弊端比如操作麻烦等等不赘述。
编码缺失问题导致我们的材料管理系统从源头开始就带有天窗,对下游工程材料管理软件系统的数据完整性和一致性也造成了破坏,这个破坏性不要理解为是对数据资产的破坏,这是一种对规则的破坏,后果就是我们为了消除这种破坏带来的影响,要开发大量与主线业务无关的功能以保证材料编码合规,而且这种合规处理无非就是项目级的自定义编码或者位号,与原生编码相比功能性是有欠缺的,为下游数据的处理、统计等等带来很多麻烦甚至错误,只能继续打补丁,补丁摞补丁。
早在2014年我就打算做一个工具从正向解决做材料编码的问题,从那时起这个软件的构想就一直在我脑海中酝酿,但是因为种种原因没有实施。后来这个问题实在是困扰我们太久了以至于我终于下定决心杀进PDMS二次开发这个迄今为止我见过的的最小众的软件开发圈子,开始了一段诡异的学习旅程。
CI理念并不复杂:
- 编码规则最大限度简化,满足管道大宗散材编码需要即可,重在易于维护;
- 编码一定要正向做,正向可以保证材料编码的质量、及时性,而且编码、系统集成更合理,数据流转更顺畅;
- 等级只维护一套,不做重复工作,避免不一致的数据源。
还有一个额外的意义就是:CI系统最终会形成一个公司级的编码库(包括CC码和PN码),一旦形成独立的编码数据库,也就意味着我们打开了系统集成的一扇大门,可以通过开发数据接口的方式取用里面的材料编码信息,进行材料的选型和匹配,这就解决了部分材料在PDMS设计没有完成时就要出材料表导致无法适配编码的问题,材料直接去编码库里选型就可以了,虽然比自动出带编码的材料表工作量大一些,但是能够保证编码的唯一性和全覆盖,为实现“全生命周期的材料管理”和“设计系统与ERP或者MES系统集成”奠定基础。
CI只是一个辅助工具,它的作用是更方便地做质量更好的编码,并不能从根源上解决设计阶段材料编码缺失的问题,要最大限度消除“模型未建,量表先出”现象,才是治本的办法。
3、主要功能
3.1 参数管理
- Format Code管理模块,管理Format Code,该代码定义材料的尺寸格式,支持单口径和双口径元件;
- Size Series 管理模块,管理Size Series,该代码定义材料的尺寸系列;
- Part Number Frefix管理模块,管理Part Number Frefix,该代码定义材料的采购码前缀,默认2位大写英文字母。
- 外径管理模块,提供公制英制各一套初始化数据,可以自定义设置新的外径尺寸系列。
- 公英制对应表管理模块,提供一套公英制对应表初始数据,可以自定义设置新的公英制对应关系数据,用于生成英制尺寸描述。
3.2 CC码管理
- CC码编码规则管理模块,主要对短语列表管理,包括名称、连接形式、磅级、尺寸标准、材质、特殊技术代码、制造工艺、特殊要求一共8个短语类别;
- CC码生成器,选择材料的属性,生成CC码,可以增加用户自定义描述;
- CC码编码库,对CC编码进行管理,可以查询或者删除,修改用户自定义描述;
- SDTE和SMTE功能,创建SDTE和SMTE数据;
3.3 PN码管理
- PN码编码库,对PN编码进行管理,可以查询或者删除,创建用户自定义PN码;
- 批量生成PN码,批量创建PN码;
- 批量校验PN码,批量校验PN码,检查编码在数据库中是否丢失;
- Size Ref库管理,创建和维护Size描述,创建用户自定义PN码时可以引用;
3.4 GPART管理
- 创建GPART,批量生成GPART元件;
3.5 主功能菜单
- Goto,在元件浏览器中定位到当前CI选中的元件
- Get,获取选中的等级数据
- Clear,清空元件列表
- Save,Savework
- Ren.,重命名元件(修改Name属性)
- Prop,显示元件属性设置框
- Fcode,设置Format Code
- Series,设置尺寸系列代码
- Prefix ,设置采购码前缀
- CCode,设置CC码
- Gen,生成编码
- Desc,查看编码和描述信息
- Check,检查编码有效性
- Set.,设置用户自定义编码
- Reg GP.,注册GPART
3.6 系统设置功能
- 数据库连接设置,设置数据库连接字符串,用于连接外挂数据库;
- 用户配置参数管理,设置相关可配置的功能;
- 日志管理,记录系统运行过程中出现的报错信息,便于追溯。
3.7 辅助功能
数据库备份,导出数据库里的全部主数据到中间文件,具备通过中间文件恢复数据库数据的能力;(规划中的功能尚未开发)
4、截图示例(部分界面)
4.1主界面
4.2 Format Code界面
4.3 CC码编码库
4.4 元件带编码
4.5 出图自动带材料编码
5、版本更新
版本号1.0.6(2022年5月7日发布)
- 新增了CC码扩展属性信息:工艺介质、备注、编码级别类型;
- 编码级别类型主要用于描述材料的级别性质:分为:公司级、项目级、业主级、供应商级四类;
- 在Build CC码界面可以输入扩展信息;
- 在CC码library界面可以修改CC码扩展信息,增加了根据扩展信息进行模糊查找功能;
- 在CC码select界面增加了根据扩展信息进行模糊查找功能;
- 在CC码library界面和select界面增加了行图标,便于识别编码的级别类型。
版本号1.0.5(2022年4月22日发布)
- 增加了用户参数设置功能,新增一个配置文件custom.xml,通过Setting界面进行设置,软件启动时会读取配置文件,文件缺失会报错,可以通过菜单重置/创建该配置文件;
- 增加了用户参数:CC码描述分隔符,用户可以设置四种分隔符,分别为:空格符、逗号(,)、分号(;)和下划线(_),目前不支持自定义其它分隔符。
版本号1.0.4(2022年4月13日发布)
- 新增了公英制对照表管理模块,并预设了DN6-DN2000的公英制对照数据,可以增补新的口径,已有数据可以修改(不过建议不要乱改);
- 新增了适配英制描述的Format Code关键字:$BN、 $BN1、 $BN2,可以根据关键字组装自己想要的尺寸描述格式;
- 生成PN码时,会根据Format Code自动计算英制口径描述;
版本号1.0.3(2022年3月27日发布)
- 生成SDTE时不再带有材质信息,SDTE的NAME仍然以CC码命名,但是CC码中的材质代码所在位置被替换为"_"(一个下划线字符),这样避免了生成重复的SDTE描述,也将SDTE的名称与CC码实现了区分;
- 修改了生成SDTE和SMTE的命名规则;CC码生成原规则:当某个字段选择Z时,表示该元件不存在该字段定义的属性,在CC码里不显示该字段的编码Z;现修改为当某个字段选择Z时,在CC码里显示该字段的编码Z;SMTE命名将分隔符“.”修改为“_”;
- CC码库中补记SDTE功能按钮从顶部菜单移除,转移到修改CC码信息标签页内。
版本号1.0.2(2022年2月6日发布)
- 新增了自动创建SDTE和SMTE功能;当Naki.CI创建CC码时,可以选择是否同步创建SDTE和SMTE,便于在PDMS中引用CI生成的材料描述;
- 修复了一处bug:该bug导致在ref属性设置窗口点击保存时,异常提示BoltRef不存在;
- 修复了一处bug:该bug导致在ref属性设置窗口设置ref属性为unset或=0/0时失败。
版本号1.0.1(2022年2月5日发布)
- 新增了创建GPART功能;
版本号1.0 (2022年1月24日合并到初始版本)
- 新增了CC编码库导出功能;
- 增加了Size Ref管理模块,可以创建自定义尺寸描述,修改尺寸描述(不影响已经生成的PN的前提下);
- 优化了删除PN码时的校验逻辑,对被引用的Size不允许删除;
- 增加了创建自定义PN码功能,可以通过选择Size+CC码的方式生成自定义PN码,PN码可以自行命名,创建自定义PN码时可以预览编码结构,选择Size和CC码时有智能模糊查询和填充,并对异常选择项或者空值做了相应处理;
- 可以给材料等级中的材料项设置自定义编码;
- 优化了check功能,当判断为自定义编码时不报异常,直接跳过(skip);
- 优化了build和check编码时的信息提示,增加了在commandline窗口显示;
- 新增了PN编码库导出功能;
- 优化了数据库连接策略,防止连接失败时假死;.
了解更多信息请关注: