1、流程建模开始
在Workspace的项目中,本文项目名称为:Training_WSApp。在项目中根目录下建立BPM文件夹,然后鼠标右键,在弹出菜单中选择New ->Business Process Model组件,进行流程建模开发。
![技术分享](http://img.blog.csdn.net/20150411085709422?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图1
![技术分享](http://img.blog.csdn.net/20150411085723337?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图2
2、图形化建模
在Business Process Model工作台上,图形化、拖拽绘制流程图。
![技术分享](http://img.blog.csdn.net/20150411090422604?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图3
(1)为BPM流程配置表单(新建)
![技术分享](http://img.blog.csdn.net/20150411100337195?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图4
注意:发布表单
![技术分享](http://img.blog.csdn.net/20150411100759699?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图5
在Business Process Model界面中,在其左下角选择Workspace
![技术分享](http://img.blog.csdn.net/20150411101219343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图6
拖拽表单界面BPMTestInterface到各个活动环节中,如下图所示。
![技术分享](http://img.blog.csdn.net/20150411101554065?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图7
在拖拽表单过程中,系统将询问是否替换环节名称为表单名称,在此不做替换,直接点击“否”按钮即可。
![技术分享](http://img.blog.csdn.net/20150411101735353?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图8
(2)配置流程参数传递:Message
活动环节上有入口、出口参数,在活动环节上把出入参与与表单上的数据项相关联。
![技术分享](http://img.blog.csdn.net/20150411235415835?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图9
(2.1)创建Message Map
![技术分享](http://img.blog.csdn.net/20150411102617926?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图10
(2.2)先创建Message,再创建其Element
![技术分享](http://img.blog.csdn.net/20150411103041688?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图11
(2.3)首先,设置启动节点传入Message
![技术分享](http://img.blog.csdn.net/20150411104005598?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图12
选择具体Message
![技术分享](http://img.blog.csdn.net/20150411104334158?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图13
(2.4)环节入口参(Pre Assignments)
Message输入、输出从Source到Target,选中到Assignment。
![技术分享](http://img.blog.csdn.net/20150411105043798?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图14
结果如下:
![技术分享](http://img.blog.csdn.net/20150411105409438?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图15
(2.5)环节出口,出参(Post Assignments),处理提交后,出口把资源传到流程消息Message
领导审批界面中,ns2:***Model_OP,为Output,把界面的值传到流程的消息Message中。
![技术分享](http://img.blog.csdn.net/20150411110702793?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图16
注:所有的流程环节通常都要设置传递参数Message,并其上面所承载表单关键数据项目对应。
3、调试、测试流程
![技术分享](http://img.blog.csdn.net/20150411143040154?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图17
(1)单步跟踪调试界面
![技术分享](http://img.blog.csdn.net/20150411143132402?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图18
4、关于Message强调说明、使用
在项目中,使用统一的Message定义,方法如下:
(1)导出已经定义的Message定义XML Schema
![技术分享](http://img.blog.csdn.net/20150411144805044?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图19
(2)粘出Show XML内容
(3)在其他BPM里导入建立Message
(4)导入XML Schema
![技术分享](http://img.blog.csdn.net/20150411145405701?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图20
5、设置决策环节
菱形的环节是判断节点,用于流程分支处理,如下图所示的分支,领导同意走采购员采购环节,否则走重新修改申请单环节,再审批。
![技术分享](http://img.blog.csdn.net/20150411150948976?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图21
如上图21所示,选择输入条件:Condition
![技术分享](http://img.blog.csdn.net/20150411151709864?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图22
通过“Replace Content With Fixed Value”设置,传递固定值/特定值。
![技术分享](http://img.blog.csdn.net/20150411153448229?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6、Debug测试
![技术分享](http://img.blog.csdn.net/20150411154120292?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图23
注:流程实例管理,Process Instance Manager中需要流程描述要清晰些,方便使用流程实例管理。
7、通过XForm表单,启动流程
(1)通过XForm界面启动流程
新建TestStartBPMXForm,增加“启动流程”按钮。
![技术分享](http://img.blog.csdn.net/20150411165801049?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图24
![技术分享](http://img.blog.csdn.net/20150411162701622?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图25
如上图25所示,新建model(Manager Models中,选择“+”),model名称为StartBPMModel。
![技术分享](http://img.blog.csdn.net/20150411162908622?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图26
(注:上图中Business Object有误,应为StartBPMModel)
(2)写按钮处理脚本代码
function start_Click(eventObject)
{
var req = StartBPM.XMLDocument;
cordys.setNodeText(req,".//*[local-name()=‘goodsName‘]",goodsName.getValue());
cordys.setNodeText(req,".//*[local-name()=‘counts‘]",counts.getValue());
cordys.setNodeText(req,".//*[local-name()=‘price‘]",price.getValue());
StartBPMModel.setMethodRequest(req);
StartBPMModel.reset();
var resp=StartBPMModel.getData();
var instanceid=cordys.getNodeText(resp,".//*[local-name()=‘instance_id‘]");
InstanceID.setValue(instanceid);
}
(3)设置流程实例Model名称
在WorkSpace中,选中BPM文件夹下BPMTest2,鼠标右键菜单,选择属性。获取Soap
![技术分享](http://img.blog.csdn.net/20150411164439928?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图27
使用Qualified Name内容,把“.”换成“/”。如下图28所示,并在界面底部切换Tab页面到XML页面。
![技术分享](http://img.blog.csdn.net/20150411172852089?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图28
definition
BPM/BPMTest2
钢笔
10
8
上面代码中BPM/BPMTest2为流程Soap请求名称。在Process Instance Manager监控管理中可见此流程实例。
![技术分享](http://img.blog.csdn.net/20150411172957652?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图28
8、测试流程待办
![技术分享](http://img.blog.csdn.net/20150411173143062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l3NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图29
由于时间有限,不足之处,欢迎讨论反馈。
Cordys BOP 4平台开发入门实战演练——流程建模开发(BPM)