Java遠端呼叫BPS流程實現流程執行簡單示例
阿新 • • 發佈:2019-01-30
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包可以在:
下載後解壓,右鍵專案選擇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)執行結果: