自定义公式测试说明
作业流程
1.首先通过abmi600来维护母料件的BOM数据,在维护过程中,可以将子料件的料号以及用量等字段元的内容定义为公式(使用aooi503)。
2.当通过axmt400、axmt410或axmt800等作业中新增了子料件的时候,会通过调用父程序cl_itemno_multi_att中的功能来对母料件的公式进行复制,如果在复制过程中遇到公式则进行计算并用计算结果替换原公式。
3.此外,也可以通过一组单独的公式定义作业aooi500,aooi501等来对公式信息进行维护。
维护变量(aooi500)
aooi500公式变量维护作业的作用是维护公式中使用到的变量和常量,目前的规则是先声明后引用,即只有先在此作业中定义了对应的变量,才能在后续作业(如aooi501)中使用这些变量.
aooi500作业接口如下图所示:
目前系统中定义的变量按类型分为一般变量/BOM变量和常量,其中变量和常量的区别在于常量必须有默认值,而变量可以空缺,变量和BOM变量之间没有区别.
关于变量类型,将来可以增加以适应对某一部分变量的特殊处理.
变量和常量的代码都必须包含在一对$之间,目前代码长度定义为5位字符
该作业可打印变量列表.
维护公式(aooi501)
aooi501公式维护作业的作用是维护自定义公式.其界面如下所示:
其中公式编号,确认码以及公式内容为必填字段元,公式分类码用于标识公式的类型,预备将来可能有的特殊公式类型使用.
公式的定义是在”公式内容”字段元中进行,关于公式的范例,可以察看”公式范例”页面中的相关说明
在定义公式内容的过程中,分别可以使用以下的快捷键开窗:
Ctrl + P选择常量和变量(aooi500中定义的那些东东)
Ctrl + K选择表达式(即其他公式,系统支持公式的嵌套调用)
Ctrl + L选择函数(系统中归纳出所有同时被Informix和Oracle所支持的函数可供使用,主要是一些数学函数)
在完成公式的定义之后,需要点击”公式测试”按钮对公式进行测试,测试分为语法分析和测试运行两步,语法分析结束后会自动在单身第三个页面”公式描述”中按照公式内容填充出公式的描述信息(即将所有变量或公式代码都替换成为对应的名称以方便理解),如果在语法分析的过程中发现公式中包含常/变量或者表达式,则分别会填充到对应的单身中去(单身的三个页面都是只读的,其中的信息可以理解为对公式的一个说明)
下图显示的是完成语法分析后的状态:
在公式检验过程中,如果公式中包含有变量,并且检测在aooi501中没有对变量进行赋值,则会自动弹出一个小的窗体,其中列出待赋值的变量名称并等待用户赋值,完成测试后,如果运行成功,则会将结果填充到旁边的编辑框中.
在点击测试通过后,才可以对公式进行保存.
该作业可打印公式列表.
在定义公式内容时,需要特别注意一点,因为系统中对于变量的数据类型没有明确的标明,既可以是字符型也可以是一个数值,所以如果在使用一个字符型变量或返回值为字符内容的表达式时必须在前后加上”或’,否则可能会遇到如下的错误提示:
关于公式支持的详细语法说明,可以参考<<自定义公式设计说明>>中的相关章节.
维护BOM信息(abmi600)
本次对abmi600 BOM信息维护作业进行了修改,首先是在单身增加了计算方式的选择,并且规定计算方式为3的时候表示在对应的组件信息中使用公式(其他选项仍为标准逻辑,系统允许标准方式定义的组件信息和公式方式定义的组件信息同时存在).
本作业能够正常运行需要设置以下系统参数
sma118 = ‘Y’ 显示”计算方式”对话框
sma120=’Y’ 显示BOM公式维护作业
其运行界面如下:
首先在计算方式中选择”3.公式”,此时要求当前BOM的主件必须是多属性料件,否则不允许使用该种方式,然后点击进入”组件料号”,”组成用量”和”损耗率”字段,分别可以弹出BOM公式定义作业(aooi503),即可以在其中进行公式的输入.其界面如下:
在其中对公式内容的编辑过程于前面所介绍的aooi501作业基本相同,只是这里增加了一个Ctrl + J开属性窗的功能,是配合料件多属性机制,可供用户选择当前主件中的所有属性.操作方法与其他开窗相同,此外,对于组件料件编号字段,还允许Ctrl+H查询料件数据
在编辑完公式内容之后一样需要点击测试检查该公式的正确性,测试之后会自动填充公式的说明信息.
通过BOM公式维护作业生成的公式会由系统自动给予一组BOM编号,编号规则是:
&BOM-[主件料号前9位]-[2位流水号]-[1位序号]&,如图中我们定义生成的三个公式分别为:
&BOM-CL-15-1& 组件料号公式
&BOM-CL-15-2& 组成用量公式
&BOM-CL-15-3& 损耗率公式
我们抽取其中除最后序号之外的相同部分构成一个BOM公式前缀(即图中的BOM-CL-15)并返回在该笔记录的组件料号字段元(系统在BOM复制时会自动地在其后添加序号来生成该笔记录的三个公式名称.
在aooi503作业返回时会自动判断对应的几个页面上是否都输入了公式内容,如果有输入,才生成对应的公式,没有则不生成该字段的公式(删除可能已经有的公式).
完成输入后保存即可.
关于其他附加信息(如厂牌,取替代料等)的维护,现在的规则是如果组件记录使用的是标准方式定义的,则保持和以前一样的操作方式,如果以公式方式定义,则不能维护这些附加信息.定义好的附加信息会在BOM复制过程中被一起复制
如果在单身删除了某一笔组件记录,那么其对应的公式记录也会被删除
复制BOM信息
对BOM信息的复制是通过修改父程序cl_itemno_multi_att.4gl中的公用函数cl_copy_ima来实现的,所有原来多属性料件机制中增加料件的作业(如axmt400,axmt410和axmt800等)都通过调用该作业来实现BOM信息的复制功能.
以axmt410为例,我们在单身新建一个多属性料件数据,料号选择CL,属性分别进行指定,作业接口如下:
生成完毕之后我们可以得到一个新料件CL_272_A_1,回到BOM维护作业abmi00中,我们可以查询得到由母料件CL复制生成的CL_272_A_1的BOM信息,如下图所示:
其中”组件料号”,”组成用量”和”损耗率”字段都进行了公式替换,但因为无法对料号进行检核,所以还需要进入单身进行分别维护已保证其最终正确性
转载请注明:赫非域 » TIPTOP自定义公式测试说明