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接口
- 任務查詢API示例(查詢A代理給B的所有任務)
TaskQuery taskQuery = taskService.createTaskQuery(); taskQuery.taskAssignee("B"); taskQuery.taskCandidateUser("B"); taskQuery.isAgent(true); taskQuery.agentId("A");
- 其他相關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有好的建議,可以發郵件或者留言給我,開源需要大家的力量~