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)运行结果: