Java远程调用BPS流程实现流程运行简单示例

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




posted @ 2016-10-08 16:53  浩月白雪  阅读(772)  评论(0编辑  收藏  举报