工作流管理系统有很多,企业信息系统都需要工作流技术实现业务流程重组与系统解耦,每个企业化系统都会用到工作流技术,或者自己实现,或者采购成型的产品。国外商业化工作流,最好的是IBM Domino note工作流,还有一些开源工作流技术OFBiz,OBE,Shark等。开发工作流产品都会参照WfMC组织定义的规范。如下是WfMC规范定义的工作流模型和工作流引擎的五个接口。
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
企业信息化系统工作流规范介绍
通常企业信息化系统用到的工作流接口是
接口一:工作流模板定义接口
接口二:系统模块调用工作流的接口(创建流程,提交流程)
接口三:工作流引擎触发第三方系统的接口(工作流调用短信模块,发邮件模块)

工作流模型文档和工作流XPDL定义语言规定 在云盘

https://pan.baidu.com/s/1c1N20yG

创建工作流实例接口

startWorkflow(processName,HashMap)

提交工作流接口

submitWorkfow(instProcessId,instActivityId,instWorkitemId, HashMap)

获取某用户待办任务列表

getWorkitemList(userId)
工作流相关Jar包

开发人员常用工作流接口
1、 在第一个节点创建流程
2、 在其他节点提交流程
3、 获取某用户待办件列表,办结件列表

@Autowired
	private StatusFlowWAPI wapi;
	
    @Test
    public void testMethod()
    {
    	try
    	{
	    	String defProcessId = "testwf";//工作流模板名称
	    	String startUserId = "1";//流程实例启动用户
	    	String userId = "1";//操作工作流实例当前用户
	    	String instanceId = "order1";//业务模块ID
	    	String type = "请假单";//流程类型,通常取流程模板名称
	    	String title = "UserA的请假单";//流程实例标题
	    	String nexttask = "account";//下一办理环节
	    	String url = "/holidayapply?id="+instanceId;//业务模块应用链接
	    	HashMap hmap = new HashMap();//工作流实例相关数据
	    	hmap.put("days", 5);
	    	String flag = "gf";//区分客户标识,每一个用户分配统一的标识
	    	String testMode = "no";//是否进入测试模式
	    	//wapi.startWorkflow(defProcessId, startUserId, userId, instanceId, type, title, nexttask, url, hmap, flag, testMode);
	    	nexttask = "draft";
	    	String instProcessId = "proc5bfe5bb88e25";//流程实例ID
	    	String instActivityId = "acti5bfea9d88e25";//流程Activity实例ID
	    	String instWorkitemId=  "work5bfea9d98e25";//待办件实例ID
	    	List<String> userIdLst = new ArrayList<String>();
	    	userIdLst.add("2");//下一办理人
	    	//wapi.submitWorkflow(instProcessId, instActivityId, instWorkitemId, userIdLst, instanceId, type, title, nexttask, url, hmap, flag, testMode);
	    	
	    	//获取某用户办结件列表
	    	List lst = wapi.getFinishList("1", testMode);
	    	System.out.println("list="+lst);
	    	for(Iterator it=lst.iterator();it.hasNext();)
	    	{
	    		DefWorkItem dwi = (DefWorkItem)it.next();
	    		System.out.println("instProcessId="+dwi.getInstProcessId());
	    		System.out.println("instActivityId="+dwi.getInstActivityId());
	    		System.out.println("instWorkitem="+dwi.getId());
	    		System.out.println("title="+dwi.getTitle());
	    		System.out.println("url="+dwi.getUrl());
	    	}
	    }
    	catch(Exception e)
    	{
    		e.printStackTrace();
    	}
}

相关文章:

  • 2022-12-23
  • 2022-02-11
  • 2021-09-27
  • 2022-02-20
  • 2021-12-18
  • 2021-09-16
  • 2021-12-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-21
  • 2021-09-17
  • 2021-09-26
  • 2022-12-23
  • 2021-06-10
相关资源
相似解决方案