1、简介:略
2、背景:略
3、目的:自我学习笔记
4、实现过程
(1)、画出流程图 如下:
路由活动分支下的条件语句为复杂表达式:
((account<200&&divisionresult.equals("1"))||(account>=200&&account<1000&&directorateresult.equals("1"))||(account>=1000&&VCresult.equals("1")&&directorateresult.equals("1")))
(2)发布流程
(3)在eclipse中新建Java项目,引入BPS client 端依赖的jar包, 这些jar包可以在:
http://product.primeton.com/download/attachments/14911104/Primeton_BPS_7.5_API_Libraries.zip 下载,
下载后解压,右键项目选择properties,然后将3rd 和bps 两个文件夹下的jar包导入新建的remotebpsclient工程。
(4)创建包含main方法的类BPSClient(注意要有包名),在src目录下创建uddi-address.xml。
uddi-address.xml:
<?xml version="1.0" encoding="UTF-8"?>
<uddi__address__list>
<uddi__address id="default">
<name>localserver</name>
<logicName>default</logicName>
<type>remote</type>
<description>uddi-config.xml at " Work Space"</description>
<uddiHost>127.0.0.1</uddiHost>
<uddiPort>8080</uddiPort>
<uddiWebContext>default</uddiWebContext>
<uddiUserID>bps</uddiUserID>
<uddiPassword>000000</uddiPassword>
<uddiAdminPort>6200</uddiAdminPort>
</uddi__address>
</uddi__address__list>
BPSClient中代码:
package com.bps.test;
import java.util.*;
import com.eos.workflow.api.BPSServiceClientFactory;
import com.eos.workflow.api.IBPSServiceClient;
import com.eos.workflow.api.IWFWorkItemManager;
import com.eos.workflow.data.WFWorkItem;
import com.primeton.workflow.api.WFReasonableException;
import com.primeton.workflow.api.WFServiceException;
public class BPSClient {
public static void main(String[] args) throws WFServiceException, WFReasonableException {
BPSServiceClientFactory.getLoginManager().setCurrentUser("1001", "tiger");
IBPSServiceClient client = BPSServiceClientFactory.getDefaultClient();
IWFWorkItemManager workItemManager = client.getWorkItemManager();
//创建流程
long id =client.getProcessInstManager().
createAndStartProcessInstance("com.primeton.test3.newworkflow",
"Process A","Process A");
System.out.println("流程实例ID为:"+id);
//项目申请 资金为10W
List<WFWorkItem> workItemList =workItemManager.queryNextWorkItemsByProcessInstID(id, false);
WFWorkItem item = workItemList.get(0);
Map<String,Object> map = new Hashtable<String,Object>();
map.put("applicant", "tiger");
map.put("projectname", "buybook");
map.put("account",10);
workItemManager.finishWorkItemWithRelativeData(item.getWorkItemID(), map, false);
//事业部经理审核通过
BPSServiceClientFactory.getLoginManager().setCurrentUser("1001", "tiger");
workItemList =workItemManager.queryNextWorkItemsByWorkItemID(item.getWorkItemID(), false);
item = workItemList.get(0);
map = new Hashtable<String,Object>();
map.put("divisionresult",1);
workItemManager.finishWorkItemWithRelativeData(item.getWorkItemID(), map, false);
//立项并结束
BPSServiceClientFactory.getLoginManager().setCurrentUser("1001", "tiger");
workItemList =workItemManager.queryNextWorkItemsByWorkItemID(item.getWorkItemID(), false);
item = workItemList.get(0);
workItemManager.finishWorkItem(item.getWorkItemID(), false);
}
}
(5)运行结果: