有两套UI:A1:设计变更申请DesignChangeReqEditUI和A2:现场签证申请SiteVisaReqEditUI,A1和A2都继承于A:ChangeAuditEditUI。三个界面都对应一个实体ChangeAudit.entity,此两个UI绑定的功能(Function)和操作(Operate)是一样。由于工作流是根据功能和操作来进行流程匹配的,这两个ui执行后都启用了同一个流程,需要在两套UI上提交的时候触发不同的工作流,如何实现?
首先想到的是第一个方案:
提交绑定到A的提交方法进行启动,然后再根据条件作两个分支,两个分支分别实现各自的流程。这个方案只能做到两个界面共用一个流程。
方案二:
解决办法
工作流目前支持两种方式的流程匹配方式:一种是根据Function和Operate以及用户信息来进行流程的匹配,如果两套UI使用的用户范围是不一样的,可以通过在不同的流程的第一个人工节点根据用户范围设置参与人,根据参与人来区分是要匹配那条流程。但如果两条流程使用的用户范围是一致的,此种方式不可用;第二种方式是根据流程启动条件来进行流程的匹配,通过在流程的第一个连接符上设置启动条件,可以根据一些绑定的业务单据对象的某个属性或其他内容来设置此流程启动的条件和场景,由此来启动对应的流程。工作流系统中内置了一个__processTrigger变量,代表绑定的业务单据,可以使用此变量输出相关的业务属性来进行判断,详细的请查看如下图示: