实体事件的触发和监听
编辑,数据服务,和资源记账可以触发定义事件
声明
实体的DATA属性中通过定义声明事件,声明的事件可以在流程定义中用于编辑表达式。
<ATTRIBUTE >
<EVENT CODE="TYPECODE" NAME="事件类型">
<PARAM CODE="" NAME=""/>
… …
</EVENT>
CODE :事件类型,事件的标识为:ET:ENTITYCODE:CODE
NAME:事件名称
PARAM 事件中携带的参数定义。
… …
</ATTRIBUTE >
- 事件的适配器
适配器,用来在各个主题域中监督操作,生成事件,在系统中广播. 可以作为流程事件的来源,也可以在其他主题中根据需要进行响应的操作。
adapter 触发 工作流和其他实体属性可以听取事件的类型。
* PARAMVALUE 只有编辑主题域有,其他为当前操作记录的id
<ADAPTER CODE='' DATASET='DSERI' ALIAS='DSALIAS' PARAM ='PARAMNAME' VALUE='IDEXP' OPERATION='' >
<ITEM CONDITION="条件表达式" EVENT="事件定义可以进行{}表达式替换" IDFIELD='事件对应的实体id字段' ENTITY='触发事件时候的实体路径,可以用{}表达式替换'>
针对数据集的每条记录执行
OPERATION 类型有 audit,unaudit,close,open,lock,unlock,del,delbefore,commit,uncommit,add,set
<PARAM CODE='' VALUE='' />
<PARAM CODE='' VALUE='EXP'/> 事件参数定义,可以在流程中作为变量使用
<SCRIPT>
可以添加主题域脚本,脚本的参数是 param ObjEventEntity 对象,result 为null 满足事件触发条件后,脚本返回 负数触发错误
<BEF></BEF>
<AFT></AFT>
</SCRIPT>
</ITEM>
</ADAPTER>
<ADAPTER CODE='' DATASET='DSERI' ALIAS='DSALIAS' PARAM ='PARAMNAME' OPERATION='' >
PARAM 查询数据集的参数名称,值为当前操作的记录id,每个记录id触发一次。
OPERATION: 可以用~分割多个操作类型 /响应的操作类型,即该操作产生时,才触发事件。
ITEM:事件条目定义
CONDITION 条件表达式,由adapter计算的表达式,符合条件触发事件,
ENTITY : 事件路径,路径的实体部分,可以是固定的字符串常量,也可以是数据集计算的表达式,表达式要放在{}中
EVENT: 事件路径的代码部分,常量或者表达式,表达式要放在{}中 ,事件路径是识别事件标识字符串构成如下:
et: entitycode :eventcode
IDFIELD:事件携带的实体对应的ID,例如 事件携带的对应的上面流程主实体的单据主键
PARAM :事件参数定义:
事件参数是在流程事件中可以使用的变量的定义,可以把当前实体中的业务金额等数据表达式计算结果,以变量的形式传递给流程
<PARAM CODE='' VALUE='EXP'/> 事件参数定义
CODE :变量名称
VALUE : 变量计算表达式值
举例
<ADAPTER DATASET="..BROWSEDS" ALIAS="DEFAULT" PARAMCODE="cgddid" OPERATION="audit~lock">
<ITEM CONDITION="tranmemo =='123'" EVENT="{'TEST'}23" ENTITY="23{'CGDD'}5" IDFIELD="cgddid">
<PARAM CODE="ecode" VALUE="ECODE"/>
</ITEM>
</ADAPTER>
命令和脚本执行完成后,触发适配器事件,适配器,用来监督操作,生成事件,在系统中广播.可以作为流程事件的来源,也可以在其他主题中根据需要进行响应的操作。
具体主题域中需要创建子类来调用Generate方法 资源的期间关闭和打开也是事件。 也用adapter 触发。 工作流和其他实体属性可以听取事件的类型。
<ADAPTER CODE='' DATASET='DSERI' ALIAS='DSALIAS'
PARAM ='PARAMNAME' OPERATION='' >
<ITEM CONDITION="条件表达式" EVENT="事件定义可以进行{}表达式替换" IDFIELD ='事件对应的实体id表达式' ENTITY='触发事件时候的实体路径,可以用{}表达式替换'>
<PARAM CODE='' VALUE='EXP'/> 事件参数定义,可以在流程中作为变量使用
...
</ITEM>
</ADAPTER>
PARAM 查询数据集的参数, 其值为当前操作的记录的id。 每个id触发一次。
OPERATION: 可以用~分割多个操作类型,commit,uncommit //响应的操作类型,即该操作产生时,才触发事件。
ITEM:事件条目定义
CONDITION 条件表达式,由adapter计算的表达式,符合条件触发事件,
ENTITY : 事件路径,路径的实体部门,可以是固定的字符串常量,也可以是数据集计算的表达式,表达式要放在{}中
EVENT: 事件路径的代码部分,常量或者表达式,表达式要放在{}中 ,事件路径是识别事件标识字符串构成如下:
et: entitycode : eventcode
IDFIELD:事件携带的实体对应的ID,例如 事件携带的对应的上面流程主实体的单据主键
PARAM :事件参数定义:
事件参数是在流程事件中可以使用的变量的定义,可以把当前实体中的业务金额等数据表达式计算结果,以变量的形式传递给流程
<PARAM CODE='' VALUE='EXP'/> 事件参数定义
CODE :变量名称
VALUE : 变量计算表达式值
举例:
<ADAPTER CODE="test" DATASET="..BROWSEDS" ALIAS="DEFAULT" PARAMCODE="chrkid" OPERATION="commit~uncommit">
<ITEM CONDITION="" EVENT="{'test'}" IDFIELD="chrkid" ENTITY="{entitycode()}">
<PARAM CODE="ecode" VALUE="ecode"/>
</ITEM>
</ADAPTER>
Created with the Personal Edition of HelpNDoc: Free EPub producer