【案例背景:申请者填写申请单,启动流程,如果不大于10万元,部门经理审批,同意则告知申请人,不同意则流程直接结束;如果大于10万元,总经理审批,同意则告知申请人,不同意则流程直接结束。】
Step1:UCML工作流业务准备
1.右键数据表 【添加工作流业务的字段】并执行【创建表】与【数据访问源码生成】

2.创建BC(添加业务组件)

3.创建VC(添加业务视图组件)
*VC需要创建3个,1个列表格式,2个编辑格式(一个做编辑用,一个做审批用)


4.创建BPO(添加业务单元)
*BPO需要创建3个,一个为列表主页面,一个为维护页面,一个为审批页面

Step2:UCML工作流模型
1.右键【工作流管理】点击【添加工作流模型】
*若项目包内无工作流管理模块可右键项目包点击【工作流管理】即可


2.绘制工作流图


3.【流程状态数据】添加条件字段【申请金额】
*无需执行【创建表】与【数据访问源码生成】

4.右键工作流图的连接线点击【属性】进行【流程条件编辑】
*有条件的连接线都需要进行【流程条件编辑】

同意、不同意的线上使用IdeaCode字段, 1代表同,2代表不同意:

5.右键【抽象领域业务模型】点击【添加业务分类】
*若项目包内无抽象领域业务模型模块可右键项目包点击【抽象领域业务模型】即可

6.配置该业务分类
【业务注册表】

选择审批的BPO

选【是否启用】将其启用

【意见代码注册】:点击【自动添加常用意见】,若想自定义意见可右键插入或删除

【业务操作动作】:点击【自动添加流程常用动作】右键可插入自定义行为或删除

【节点模型表】:右键插入,选择审批用的BPO
*给每一个节点配置一个模型,因为每一个节点代表业务流程中的一个审核点,也许看到的内容一样,也许不一样,在此可根据业务的需要进行相关的配置。权限名称根据流程节点名称来命名,这样就不会混乱。每添加一个权限后,都需要点击【自动添加流程常用动作】和添加业务权限。



部门经理审批与通知申请人也如上操作

7.【单个导出业务类型信息】

8.绑定【所属业务分类】并在流程节点上选择定义好的节点模型表下的权限名称
*【部门经理审批】、【通知申请人】节点也选择对应的权限


Step3:基于业务单元的UCML工作流套路
1.点击【请款单列表】BPO使焦点在其身上,点击【工作流启动列表处理】
BCName:主BC的名字。
VCName:对应的列表格式的VC。
EditBPOName:用于维护页面的BPO名字。
ViewBPOName:可以用维护页面的BPO,也可以单独做一个BPO。


运行后对应的列表VC上会产生一组如下按钮:

2.点击【请款单维护】BPO使焦点在其身上,点击【工作流启动表单】
BCName:主BC的名字。
VCName:对应的编辑格式的VC。
FlowID:带版本号的流程编号。
FlowFrom:0—固定流程;1—-从列表选择流程。这里选择0.
StartMode:0—直接启动;1—-下一步按钮启动。这里选择0.
BusinessTypeID:领域业务种类包下的类型编码。BT_10001
FlowDataOID:默认值BusinessKey

运行后对应的编辑VC上会产生一组如下按钮:

以及如下一组函数:

需要把刚才在【流程状态数据】添加的条件字段【申请金额】加在__StarFlow函数参数中

添加此代码:
FlowSessionEx(FlowID).WriteFlowData(FlowID,FlowInst,"SQMoney",Convert.ToDecimal(SQmoney));

将参数SQmoney添加至Call__StartFlow

修改【请款单维护】VC里按钮【启动流程】代码:

3.点击【请款单审批】BPO使焦点在其身上,点击【工作流启动表单】
MainBC:主BC名称。
IsDate:是否和流程有关(1,0),并且通过读流程状态数据。填写默认值1.
FlowDataOID:填写默认值BusinessKey
BUDataOID:业务表主键字段(IsDate==1),填写主BC对应OID主键
FlowActionButtonVC:流程动作按钮所在的vc,可以填写,默认在流程处理VC上。
KeyDataType:主键的数据类型【ucmlkey,int,string】三种

运行后该BPO将产生3个行为参与者业务组件,4个挂载VC,3个函数

Step4:发布工作流
1.勾选【是否设计生成】后右键【款项申请流程模型】按顺序执行下图3个步骤


2.【编译工作流引擎终端程序】

3.生成下面3个业务单元并执行第14步进行整体编译(Ctrl+Alt+B)

Step5:工作流的使用
1.【启动工作流服务器】




流程启动成功后可在【待办事宜】执行该任务即可往下走流程了

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205606.html原文链接:https://javaforall.net
