简介:略
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中代码:
(注意:客户端代码执行前必须确保流程定义正确、已经提交流程、已经启动BPS服务器端)
- 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);
-
-
- 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)运行结果: