天天看点

FoxBPM任务代理功能及相关接口说明

fixflow从6.0版本开始使用新的域名org.foxbpm

新的git地址:https://github.com/FoxBPM/FoxBPM

foxbpm根据开源后用户反馈信息,新版本对用户代理功能进行了优化,新版本用户代理功能介绍:

需求描述

在实际的用户环境中,请假是被允许的,但是在一些工作流程中,某人请假后,他需要审批的流程不能停滞,需要有人代替他处理他的工作,由此,就产生了任务代理一种功能。

使用场景

公司财务部审批发票节点操作员A在7月1号到7月30号请假,根据部门协调,审批发票的工作就交给了同事B,由B代理A在7.01-7.30时间内审批发票。

表结构说明

表1:代理主表:Foxbpm_agent

id 唯一主键
Agent_user 被代理人(发起者)
startTime 代理开始时间
endTime 代理结束时间
status 启用状态(1是启用)

表2:代理明细表:foxbpm_agent_details

id 唯一主键
Agent_id 代理编号(外键)
processDefnition_key 代理流程(‘_all_flow_’表示所有流程)
Agent_toUser 代理人(接受者)

表数据

上面实际场景中的数据如下:

表3:代理主表数据:Foxbpm_agent

id Agent_user startTime endTime status
34e21141 A 2014-07-01 2014-07-30 1

表4:代理明细表数据:Foxbpm_agent_details

id Agent_id Process_key Agent_toUser
8e96-af7d 34e21141 OA_EXPENSIVE B

API接口

  1. 任务查询API示例(查询A代理给B的所有任务)
    TaskQuery taskQuery = taskService.createTaskQuery();
     taskQuery.taskAssignee("B");
     taskQuery.taskCandidateUser("B");
     taskQuery.isAgent(true);
     taskQuery.agentId("A");
               
  2.  其他相关API
    /**
    	 * 增加代理
    	 * 会级联插入对象中的代理明细信息
    	 * @param agentInfo 代理实体
    	 */
    	void addAgent(AgentEntity agentInfo);
    	
    	/**
    	 * 增加代理明细
    	 * @param agentDetails 代理明细
    	 */
    	void addAgentDetails(AgentDetailsEntity agentDetails);
    	
    	/**
    	 * 更新代理主表信息,{不会}级联更新明细
    	 * @param agentInfo
    	 */
    	void updateAgentEntity(AgentEntity agentInfo);
    	
    	/**
    	 * 更新代理明细
    	 * @param agentDetails
    	 */
    	void updateAgentDetailsEntity(AgentDetailsEntity agentDetails);
    	
    	/**
    	 * 删除代理信息,
    	 * 会级联删除代理明细
    	 * @param agentId
    	 */
    	void deleteAgent(String agentId);
    	
    	/**
    	 * 删除代理明细
    	 * @param agentDetailsId
    	 */
    	void deleteAgentDetails(String agentDetailsId);
               

foxbpm6.0最新版本尚未发布稳定版本,新项目git地址:https://github.com/FoxBPM/FoxBPM

大家如果有好的思路或者对fixflow有好的建议,可以发邮件或者留言给我,开源需要大家的力量~

继续阅读