当前位置:文档之家› Cordys BPM开发手册

Cordys BPM开发手册

Cordys BPM开发手册
Cordys BPM开发手册

Cordys BPM开发手册

1.目标 (2)

1.1目标 (2)

1.2前提条件 (2)

2.开发基础配置 (2)

2.1建立SOAP节点和连接器 (2)

2.2导入外部Web Services (4)

3.XForm开发 (7)

3.1 定制表单 (7)

3.2 调用Model (11)

3.3 表单逻辑控制 (13)

3.4发布 (16)

4.BPM流程 (17)

4.1 流程设计 (17)

4.2 流程调试 (26)

4.3 流程应用 (28)

5.常见问题 (30)

1.目标

1.1目标

针对外部提供的Web Services接口导入,建立响应的XForm,根据业务场景建立基本BPM流程实现的详细提供详细步骤。

1.2前提条件

要通过本文档学习XForm和BPM开发,必须具备以下条件

1. 已经创建了相关的组织(或使用System组织),具有Developer权限和Studio相关权

限,并对Studio进行了正确的初始化

2. 了解如何在BCP中创建菜单

3. 大致了如何创建Method,如何导入外部Web Services

4. 大致了解XForm的相关概念,如Model、Form、Grid等

5. 具备简单的JScript开发能力

2.开发基础配置

2.1建立SOAP节点和连接器

本例需要建立BPM和UDDI Service两个节点,如下以建立UDDI Service为例进行编写。

1. 通过【Administrator】->【Admin Tools】->【SOAP Nodes】,右键点击“New”

2. 在弹出的“New SOAP Node Wizard – Step 1 of 6”向导窗口中选择“UDDI Service”

类型的Application Connector,如下图所示:

包括输入SOAP Node的名称【Name】,并选中以下方法集,如下图所示:

4. 点击“Next”,在“New SOAP Node Wizard – Step 3 of 6”窗口中配置SOAP Processor

的基本信息,包括输入SOAP Processor的名称【Name】,选择是否随BCP自动启动

“Startup Automatically”等,如下图所示:

5. 点击“Next”后,跳过对Connection Point的配置,点击“Finish”完成。

在导入外部Web Services首先要理解相关Services的功能,用法等等。

1. 通过【External Web Services】->【Method Generator】,打开导入页面输入提供外部

sercices的地址如:http://10.3.18.37:8080/cnpl/order/orderService.ws?wsdl,点击“Show Services”出现该Services包含的所有方法,选择需要导入的方法,点击“Gererate”生成方法。如下图所示:

2. 当导入完毕后可以测试这些Services是否可用,通过【Organizational Content】->

【Method Sets】->【Custom】,找到导入的方法集,选择相关方法右键点击“T est Method”后进行测试,可以查看发送信息和返回信息等。如下图:

测试完毕后,这些Services 都可以在XForm 和流程设计时进行调用。

3.XForm开发

3.1 定制表单

1. 通过【Developer】->【Cordys Studio】进入XForm和BPM流程开发模式。如图:

选择【Repository】->【Application Models】进行XForm的设计与应用

点击“OK”后出现如下图:

可以看到一些基本的属性如“input”“check”等等。

点击“”后可以显示系统中所有可以使用的Services

根据实际开发环境和应用条件有两种页面制作方式:

1.通过拖拽方式,在“Application Model Components”页面中,点中【Method Sets】->【Custom】->【Method Set PMYX JC】->【GetNextxj_cpObjects】方法前的图标,并拖拽至设计器内,如下图所示。注意拖拽成功时鼠标样式将改变,如果选择“Generate UI for Input message”或者“Generate UI for Output message”,系统自动生成响应的格式,然后根据实际情况进行修改:

2. 完全根据需求进行设计,然后在相应的格式时拖入相应的方法例:

设计完毕后可以进行预览点击左上角“”如:

3.2 调用Model

对于BPM来说,调用的所有Web Services都是Model,可以通过拖拽的方式把所需要

的Model应用至XForm。点击上角“”可以显示改表单所引用的所有的Models。如图:

点击Model可以对基本属性进行设置:

其中包括一些基本的属性包括“Automatic”,“Dataset”,“Events”等等。如果取消选中“Automatic”属性,这样表单对应的模型将不会在运行时页面初始化的时候自动获取后台数据,便于查看相关数据。通过查看属性还发现,系统提供了强大的控制页面如:

可以根据需求在调用此Models时的不同状态写入JavaScript代码,进行逻辑控制。3.3 表单逻辑控制

通过以上可以看到,只需要进行简单的图形界面操作,即可快速生成所需的静态页面。下面介绍如何添加相关的业务逻辑。

对于整个表单来说,在不同的时期可能会有不同的操作,双击表单后会出现该表单的基本属性:

可以看出对于整个表单来说有一下属性“JavaScript”,“Stylesheet”,“Workflow Events”,“Events”。一般情况下当打开表单时会需要一些逻辑,如:在打开该单时主动隐藏某字段,初始化一些基本的内容,点击“init Done”在“Script”中系统自动生成方法,将逻辑写入该方法即可:

function Form_InitDone(eventObject)

{

//初始化下拉菜单

var optionCollection = new Array();

optionCollection[0] = {value:"A", description:"陆运"};

optionCollection[1] = {value:"G", description:"空运"};

TRANSPORT_WAY.addOptions(optionCollection, true,0,false);

//隐藏字段

hideID.hide();

}

针对表单中的每一个元素,也可以对属性进行设置,选中需要设置的字段属性,右键点击即可:

对于不同的字段可能会需要添加不同的逻辑内容,如“确定”按钮,在“新建出库单”里需要执行两个动作:入库和流程扭转。双击“确认”按钮后显示其一些基本属性:

“ID”为该按钮的唯一标识符,同时还包括所对应的“Model”“Reference”等等,“Click”标识在点击该按钮时需要触发的事件。在本例中点击按钮需要存入数据库,并启动流程:function Submit_Click(eventObject)

{

//映射

createOrderModel.getMethodRequest("get").selectSingleNode(".//orderStatus" ).text = 1;

createOrderModel.getMethodRequest("get").selectSingleNode(".//in0/orderId") .text = ORDER_ID.getValue();

createOrderModel.getMethodRequest("get").selectSingleNode(".//custId").text = CUST_ID.getValue();

createOrderModel.getMethodRequest("get").selectSingleNode(".//startAddr").t ext = startAddr.getValue();

createOrderModel.getMethodRequest("get").selectSingleNode(".//transferAddr" ).text = transferAddr.getValue();

createOrderModel.getMethodRequest("get").selectSingleNode(".//receCustCod e").text = RECE_CUST_CODE.getValue();

//提交入库

createOrderModel.reset();

//异常处理

if(createOrderModel.soapFaultOccurred)

{

return;

}

//启动流程

RunProcess_OrderProcessManagerModel.getMethodRequest("get").selectSingle Node(".//OrderID").text = ORDER_ID.getValue();

RunProcess_OrderProcessManagerModel.getMethodRequest("get").selectSingle

Node(".//Volume").text = volume.getValue();

RunProcess_OrderProcessManagerModel.getMethodRequest("get").selectSingle Node(".//TRANSPORT_WAY").text = TRANSPORT_WAY.getValue();

RunProcess_OrderProcessManagerModel.getMethodRequest("get").selectSingle Node(".//weight").text = weight.getValue();

RunProcess_OrderProcessManagerModel.reset();

//关闭

application.container.close();

}

其中“createOrderModel”为添加的Model,为存入数据库的方法,在这里我们只需要对所有的字段做一一映射即可:

createOrderModel.getMethodRequest("get").selectSingleNode(".//in0/orderId").te xt = ORDER_ID.getValue();

3.4发布

XForm具有设计时和运行时两个状态,设计时新增或修改后,必须发布才能生效成为运行时供用户或其它页面调用,发布的方式为在“Cordys Studio”中对应的XForm上右键点击【Run-time】->【Publish to Runtime】,如图所示

也可以直接添加到菜单里面如图:

4.BPM流程

4.1 流程设计

根据业务需求创建BPM流程,本流程设计以出库管理流程为例进行说明。此流程涵盖了BPM中的基本业务,包括自动流程,人工流程以及调用BRM等。本例基本流程如下:?订单计划组提交出库单并发起流程申请。提交出库计划组进行审批并检验库存(自动流程)。

?根据库存量自动分配任务,如果库存充足发送至捡货计划组进行操作,系统自动调用BRM计算费用,反之则重新返回订单计划组提交。

?系统根据费用总额执行不同流程,即如果费用大于100交由经理审批,审批通过转入检验包装组,否则流程结束。如果小于100直接转入检验包装组进行处理。大于1000交由总经理审批流程和经理审批一致。

如图:

显示:

选择“Import”,选择所需要导入的XForm

同样的方式也可以导入所需要的Methods 。

相关主题
文本预览
相关文档 最新文档