zoukankan      html  css  js  c++  java
  • 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)运行结果:




  • 相关阅读:
    用Ext.override重写控件属性
    如何设置DateField的默认值
    ExtJs中获得当前选中行号(Grid中多选或者是单选)及Grid的反选(取消选中行)
    Ext.form各类控件的配置及方法
    犀利的系统验收工作
    UML系列 (五) 为什么要用UML建模之建模的重要性
    牛腩新闻发布系统(2)使用存储过程查询表
    如何编写优质的需求文档
    SCM软件配置管理 (一)SVN 与 CVS
    牛腩新闻发布系统 (3) 存过过程或函数""需要""参数,但未提供该参数
  • 原文地址:https://www.cnblogs.com/pilihaotian/p/8823116.html
Copyright © 2011-2022 走看看