宁夏建设职业技术学院成绩查询网站,关键词推广优化app,潍坊昌大建设集团有限公司网站,四川seo平台功能概述
首先#xff0c;简单介绍一下自动赋值的意思。就是程序根据给定的条件#xff0c;给某一个数据对象的某个字段自动填值。
类似功能单独定制开发写程序也能实现。通用赋值程序只是赋值规则简化到了配置文件中。后续如果赋值规则变更#xff0c;只需要修改配置文件…功能概述
首先简单介绍一下自动赋值的意思。就是程序根据给定的条件给某一个数据对象的某个字段自动填值。
类似功能单独定制开发写程序也能实现。通用赋值程序只是赋值规则简化到了配置文件中。后续如果赋值规则变更只需要修改配置文件。不需要修改源代码。
通用程序还解决了一些AgilePLM的公共技术问题。例如并发控制更新事件的递归触发问题。
目前主要应用场景自动合并描述自动编号等下面还会有详细功能介绍。
功能特性
支持给多种对象自动赋值例如物件变更供应商等。支持给同一个对象的多个字段自动赋值例如编号、描述、工作流等字段。支持同一个字段在多种事件配置下自动赋值例如同一个自动编码规则可以标题块更新事件创建对象事件另存为事件下触发执行。支持给变更的所有受影响物件字段自动赋值可通过状态变更事件。支持给不同分类对象配置不同赋值规则。也支持分类再加其他自定义条件。支持给大文本字段配置默认值可以配置表格或其他html元素。支持动态列表类型字段可以获取列表中对象的字段并且支持多级获取。例如$3521.3210.1543支持变更受控字段在当前待定变更中的读取值和自动赋值。要赋值的字段支持文本数字单列表对象。赋值条件支持动态列表。支持多种途径修改xml配置文件。每个项目不同环境可以指定不同的配置文件。可以内置在程序内部也可以是程序外部也可以通过plm的变更流程上传xml配置文件赋值规则支持Aviator表达式引擎。支持加、减、乘、除、三目运算符等多种运算符以及内置函数还可以自定义函数。aviator参考文档。
暂不支持的功能
不支持给多列表字段赋值。不支持赋值之前给要赋的值做校验。可根据要求额外定制开发。变更受控字段以下场景不支持。 由于流程中的编辑是可以撤销的。但撤销时是不会触发更新标题块事件的。所以无法自动赋值
安装使用
前提请将agile-support项目的jar包安装到Agile进程扩展目录中。根据当前项目公司名称新建新的定制px项目。建议从老的项目或者模板上复制。根据业务要求将赋值规则写入到AutoSetValue.xml文件中。启动Agile控制台在控制台中新建事件程序指向com.purvar.px.AutoSetValueEvent根据业务要求新建事件和事件订户关联事件处理程序。登录Agile进行业务操作测试功能是否符合预期。
功能案例
自动编码
总体说明
自动编码的意思是根据用户给的业务规则自动给编码字段赋值例如物料编码变更编码等。
自动赋值涉及2个部分一个是赋值条件另一个是赋值规则表达式。
当前的数据符合赋值条件才会执行对应的赋值规则表达式。
按照部件类型区分赋值规则
业务需求
要求自动合成物件编码根据不同的部件类型区分不同的赋值规则。
例如
成品固定前缀A$1550字段的值半成品固定前缀B$1550字段的值原材料固定前缀C$1550字段的值
xml配置参考如下
AutoSetValue classcom.purvar.px.AutoSetValueEventsetValues!-- 1001是编号字段1081是部件类型字段 --setValue classNameItem setFieldId1001 subClassId1081 useNametruevalueMaps
!--autoNumber函数会根据api名称自动读取agile的自动编码下一个值 --map key成品 expressionA$1550 /map key半成品 expressionB$1550 /map key原材料 expressionC$1550 //valueMaps/setValue/setValues
/AutoSetValue多个字段组合区分赋值规则
案例部件类型第三页的产品线字段id2024组合决定赋值规则。例如
成品产品线1赋值规则固定前缀A固定产品线代号c1序号成品产品线2赋值规则固定前缀A固定产品线代号c2序号半成品产品线1赋值规则固定前缀B固定产品线代号c1序号半成品产品线2赋值规则固定前缀B固定产品线代号c2序号
这种场景需要多配置一个key的映射规则xml配置如下
AutoSetValue classcom.purvar.px.AutoSetValueEventsetValues!-- 1001是编号字段1081是部件类型字段 --setValue classNameItem setFieldId1001 subClassId1081 useNametruekeyMaps!-- 将部件类型和产品线组成一个复合条件来匹配表达式 --map value* expression$1081$2024//keyMapsvalueMaps!--autoNumber函数会根据api名称自动读取agile的自动编码下一个值 --map key成品产品线1 expressionAC1autoNumber(n1) /map key成品产品线2 expressionAC2autoNumber(n1) /map key半成品产品线1 expressionBC1autoNumber(n1) /map key半成品产品线1 expressionBC2autoNumber(n1) //valueMaps/setValue/setValues
/AutoSetValue自动读取数据库最大值生成编码
业务需求
要求对实验仪器物件对象进行自动编号需要根据部件类型1543字段进行区分不同的编码规则。自动读取数据库中的最大值1然后生成4位编码
!-- 对实验仪器编号进行赋值 updateNewNumbertrue用于将生成的新编号放入内存中方便后续的事件读取--
setValue classNameItem setFieldId1001 subClassId1081 updateNewNumbertrue disableAgileWarningtruekeyMaps!--部件类型1543字段做为组合赋值条件--map keyYIQI expression$1081getApi(1543)/ /keyMaps valueMaps !--dbNext函数自动根据前缀读取数据库中的最大值14代表生成的编号为4位。例如00010002--map keyYIQICWJS expressiondbNext(CW-TZ-YF-J,4) / map keyYIQICWBF expressiondbNext(CW-TZ-YF-J,4) / map keyYIQIHWZZ expressiondbNext(HW-TZ-YF-J,4) /map keyYIQIGWBJ expressiondbNext(JW-TZ-YF-J,4) /map keyYIQIGWZD expressiondbNext(JW-TZ-YF-J,4) /map keyYIQIGWTZ expressiondbNext(JW-TZ-YF-J,4) //valueMaps
/setValue 只在草稿状态时合成编码
业务要求
当物料处在草稿状态时符合指定条件才需要自动合成编码。当物料走过变更指令发布之后则不再需要合成编码。也可以理解为一旦物料同步给其他系统之后物料编码不能再改变了。
xml参考配置,
setValue classNameItem setFieldId1001 useNametrue subClassId1081keyMaps!-- 1539是第三页上的字段将他和生命周期形成一个组合条件 --map keyRZ体系文档 expression$1539-$1084//keyMapsvalueMaps!-- checkUpdateIds的意思是只有当这里面指定的字段值发生变更时才会执行自动赋值规则 --map key三级部门文件-草稿 expressiondbNext(RgetApi(1540)I_, 3) checkUpdateIds1540,1539//valueMaps
/setValue 自动合成描述
业务需求
自动根据规则合成描述字段的值。需要根据物料不同的部件类型指定不同的合成规则。还要获取到制造商页签中的信息。
参考xml配置
setValue classNameItem setFieldId1002 useNametrue subClassId1081 trimString,!-- trimString的功能:当合成描述的字段中某个字段为空时导致首尾或者中间出现多个逗号例如aa,,bb,,会自动删除变成:aa,bb --!-- getManuFunction是一个自定义函数用于获取物料制造商页签的值 --valueMapsmap keyIndustrial Computer expression$1081,getManuFunction(1902),$1575,$1576,$1577/map keyMB expressionPC,$1081,getManuFunction(1902),$1575,$1579,$1576/map keyBP expressionPC,$1081,getManuFunction(1902),$1575,$1579,$1576/map keyPDB expressionPC,$1081,getManuFunction(1902),$1575,$1579,$1576/map keyPIB expressionPC,$1081,getManuFunction(1902),$1575,$1579,$1576/map keyFP expressionPC,$1081,getManuFunction(1902),$1575,$1579,$1576/map keyVROC Key expression$1081,getManuFunction(1902)/map keyreplaceGroup expression$1577,$1575,$1576//valueMaps
/setValue
自动升级版本和生命周期
业务需求
当变更提交时需要根据给定的规则自动升级版本和指定生命周期字段。并且不同的变更类型可以指定不同的版本升级规则。
!-- 对变更受影响物件的新版本字段进行赋值 --
setValue classNameIRow setFieldId1056 subClassId1081valueMaps!-- versionNext说明判断变更类型读取每一行的老版本如果老版本为空则为V01如果不为空则解析其中的数字然后1再补足2位。 --map keyExpressiondataObjSrcType 文档发布审批单 expressionversionNext($1055, V01, 1) checkEmptytrue/map keyExpressiondataObjSrcType 文档变更审批单 expressionversionNext($1055, V02, 1) checkEmptytrue/map keyExpressiondataObjSrcType 文档废弃审批单 expressionversionNext($1055, O02, 1) checkEmptytrue/map keyExpressiondataObjSrcType 转产申请单 expressionversionNext($1055, V02, 1) checkEmptytrue/ /valueMaps
/setValue!-- 对变更受影响物件的生命周期字段进行赋值 --
setValue classNameIRow setFieldId1057 subClassId1081valueMapsmap keyExpressiondataObjSrcType 文档发布审批单 expression生效 checkEmptytrue/map keyExpressiondataObjSrcType 文档变更审批单 expression生效 checkEmptytrue/map keyExpressiondataObjSrcType 文档废弃审批单 expression作废 checkEmptytrue/map keyExpressiondataObjSrcType 转产申请单 expression生效 checkEmptytrue//valueMaps
/setValuesetValue classNameChange.IRow!-- 当发生状态变更事件时。要对变更受影响物件中的每一行执行自动赋值,默认只会处理变更本身 --
/setValue 自动给大文本字段赋值
业务需求
当变更创建时自动给大文本字段初始化一个表格用户可以在表格中填写内容。
!-- 变更流程-设置大文本 --
setValue classNameChange setFieldId2000025512 subClassId1081keyMapsmap keyCPBG expression$1069//keyMapsvalueMapsmap keyCPBG checkEmptytruevalue![CDATA[table alignleft border1 cellspacing0 stylewidth:750pxtbodytrtd styleheight:21px; text-align:center; width:10%strong序号/strong/tdtd styletext-align:center; width:45%strong变更前/strong/tdtd styletext-align:center; width:45%strong变更/strong后/td/trtrtd styleheight:20px; text-align:centernbsp;/tdtd styletext-align:centernbsp;/tdtd styletext-align:centernbsp;/td/trtrtd styleheight:20px; text-align:centernbsp;/tdtd styletext-align:centernbsp;/tdtd styletext-align:centernbsp;/td/trtrtd styleheight:20px; text-align:centernbsp;/tdtd styletext-align:centernbsp;/tdtd styletext-align:centernbsp;/td/trtrtd styleheight:20px; text-align:centernbsp;/tdtd styletext-align:centernbsp;/tdtd styletext-align:centernbsp;/td/tr/tbody/table]]/value/map/valueMaps
/setValue
自动带出动态列表的某个字段
业务需求
产品品名为文档对象当他的客户品名字段动态列表型字段选中了某个客户品名时自动将选中值的9384字段带到12503字段上。
参考xml配置
!-- 产品品名属性复制客户品名 --
setValue classNameItem setFieldId12503 useNametrue disablefalse disableAgileWarningtruevalueMapsmap key01-产品品名 expression$1555.9384 checkUpdateIds1555//valueMaps
/setValue
自动设置默认工作流
业务需求
要求自动给工作流赋值如果用户选了工作流则不覆盖。
参考xml配置
!--流程对工作流赋值--
setValue classNameChange setFieldId3742 subClassId1069valueMaps!-- checkEmptytrue意思是只有当工作流为空时才赋值。如果用户自己选了工作流则不覆盖 --map keyWDNBFB expressionWF_WD_NB_FB checkEmptytrue/map keyWDNBBG expressionWF_ED_NB_BG checkEmptytrue/map keyWDNBFQ expressionWF_WD_NB_FQ checkEmptytrue/map keyWDHQFB expressionWF_WD_HQ_FB checkEmptytrue/ map keyWDHQBG expressionWF_WD_HQ_BG checkEmptytrue/map keyWDHQFQ expressionWF_WD_HQ_FQ checkEmptytrue/map keyYFWLFB expressionWF_YFYWL_FB checkEmptytrue/map keyYFWLBG expressionWF_YFYWL_BG checkEmptytrue/ map keyYFWLFQ expressionWF_YFYWL_FQ checkEmptytrue/map keyLCWLFB expressionWF_LCWL_FB checkEmptytrue/map keyLCWLBG expressionWF_LCWL_BG checkEmptytrue/map keyLCWLFQ expressionWF_LCWL_FQ checkEmptytrue/ map keyCPBG expressionWF_CPBG checkEmptytrue/map keyECR expressionWF_SJBG checkEmptytrue/ map keySY_SH expressionWF_SYLC checkEmptytrue/map keySY_IVD expressionWF_SYLC checkEmptytrue/map keySY_JWYX expressionWF_SYLC checkEmptytrue/map keySY_YLQX expressionWF_SYLC checkEmptytrue/map keySY_FJ expressionWF_SYLC checkEmptytrue/map keySY_CH expressionWF_SYLC checkEmptytrue/map keySY_YP expressionWF_SYLC checkEmptytrue/map keySY_MSJ expressionWF_SYLC checkEmptytrue/map keyZCSQ expressionWF_ZCSQ checkEmptytrue/map keyCPZLWT expressionWF_CPZLWT checkEmptytrue//valueMaps
/setValue