Oracle BPM,在设计流程图的时候使用Complex User Task,对应的Human Task在分配对象的时候会采用外部路由,即自定义分配实现。
自定义类要实现oracle.bpel.services.workflow.task.IAssignmentService接口,代码如下:
package dasproject;
/* $Header: TestAssignmentService.java 24-may-2006.18:26:16 Exp $ */
/* Copyright (c) 2004, 2006, Oracle. All rights reserved. */
/*
DESCRIPTION
Interface IAssignmentService defines the callbacks an assignment
service implements. The implementation of the IAssignmentService
is called by the workflow service
PRIVATE CLASSES
<list of private classes defined - with one-line descriptions>
NOTES
<other useful comments, qualifications, etc.>
MODIFIED (MM/DD/YY)
*/
/**
* @version $Header: IAssignmentService.java 29-jun-2004.21:10:35 Exp
$
*
*
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import oracle.bpel.services.workflow.metadata.routingslip.model.*;
import oracle.bpel.services.workflow.metadata.routingslip.model.Participants;
import oracle.bpel.services.workflow.metadata.routingslip.model.ParticipantsType.*;
import oracle.bpel.services.workflow.task.IAssignmentService;
import oracle.bpel.services.workflow.task.ITaskAssignee;
import oracle.bpel.services.workflow.task.model.Task;
public class TestAssignmentService implements oracle.bpel.services.workflow.task.IAssignmentService {
static int numberOfApprovals = 0;
static String[] users = new String[] { "zhangsan", "dangan", "liangban" };
@Override
public Participants onInitiation(Task task, Map propertyBag) {
return createParticipant();
}
@Override
public Participants onReinitiation(Task task, Map propertyBag) {
return null;
}
@Override
public Participants onOutcomeUpdated(Task task, Map propertyBag,
String updatedBy, String outcome) {
return createParticipant();
}
@Override
public Participants onAssignmentSkipped(Task task, Map propertyBag) {
return null;
}
@Override
public List getAssigneesToRequestForInformation(Task task,
Map propertyBag) {
List rfiUsers = new ArrayList();
rfiUsers.add("jcooper");
rfiUsers.add("zhangsan");
rfiUsers.add("dangan");
rfiUsers.add("liangban");
return rfiUsers;
}
@Override
public List getReapprovalAssignees(Task task, Map propertyBag,
ITaskAssignee infoRequestedAssignee) {
List reapprovalUsers = new ArrayList();
reapprovalUsers.add("zhangsan");
reapprovalUsers.add("dangan");
reapprovalUsers.add("liangban");
return reapprovalUsers;
}
private Participants createParticipant() {
if (numberOfApprovals > 2) {
numberOfApprovals = 0;
return null;
}
String user = users[numberOfApprovals++];
ObjectFactory objFactory = new ObjectFactory();
Participants participants = objFactory.createParticipants();
Participant participant =
objFactory.createParticipantsTypeParticipant();
participant.setName("Loan Agent");
ResourceType resource2 = objFactory.createResourceType(user);
resource2.setIsGroup(false);
resource2.setType("STATIC");
participant.getResource().add(resource2);
participants.getParticipantOrSequentialParticipantOrAdhoc().add(participant);
return participants;
}
}
在流程项目属性上增加SOA Workflow的库依赖。
TestAssignmentService要放到SCA-INF/classes路径下。
编辑实现Complex User Task的Human Task对象,在Assignment的Tab页,设置class name为dasproject.TestAssignmentService。
发布流程项目,Complex User Task就会按照自定义类TestAssignmentService来分配任务给指定对象。
onInitiation方法,是指任务初始化的时候分配给谁。
onOutcomeUpdated方法,是指任务被更新结果的时候分配给谁。
getAssigneesToRequestForInformation方法,是指用户请求信息的时候参与方有哪些人。
分享到:
相关推荐
Laravel开发-laravel-js-routing Laravel 4/5包从javascript访问路由
自动路由自动生成Vue路由器路由。 您可能要使用 ,其中包含有关路由的所有有用功能。安装$ npm install -D vue-auto-routing要求webpack> = v... use ( Router )export default new Router ( { // Pass the generat
HCIP-Datacom-Advanced Routing & Switching Technology V1.0 培训教材 HCIP-Datacom-Advanced Routing Switching Technology V1.0 考试大纲 HCIP-Datacom-Advanced Routing Switching Technology V1.0 实验手册
4.5.1 Packet Tracer - Inter-VLAN Routing Challenge Cisco Packet Tracer 思科模拟器 正确答案文件 可直接上交正确答案文件 本答案版权归mewhaku所有,严禁再次转载!!! Copyright @mewhaku 2022 All Rights ...
前端项目-leaflet-routing-machine,Routing for Leaflet
华为数通高级工程师认证HCIP-Datacom-Advanced Routing & Switching Technology V1.0 培训教材,已经解除密码保护,可以自由的更改、添加书签、笔记。
华为HCIP-Datacom-Advanced Routing & Switching Technology V1.0考试大纲培训手册和实验教材
HCIP-Datacom-Advanced Routing & Switching Technology PPT版本教材(非PDF)
tora_dest.h - destinations the routing protocol knows about tora_neighbor.h - per destination neighbors tora_packet.h - packet definitions tora.cc - basic TORA functionality tora_api.cc - TORA ...
4.2.7 Packet Tracer - Configure Router-on-a-Stick Inter-VLAN Routing Cisco Packet Tracer 思科模拟器 正确答案文件 可直接上交正确答案文件 本答案版权归mewhaku所有,严禁再次转载!!! Copyright @...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
计算机视觉Github开源论文
2019年华为HCIA 路由数通 H12-211题库 v2plus版 共750道题的,背完即过,没有样题解释
离线安装包,亲测可用
您可以通过运行以下命令来安装此插件: # If you did not install router plugin yet$ vue add router# Install vue-cli-plugin-auto-routing$ vue add auto-routing 添加插件后,文件结构如下。 src/├── pages/...
cisco-Routing CCNP Routing Exam
华为认证数通工程师培训教材HCIP-Datacom-Advanced Routing Switching Technology V1.0
Laravel开发-global-routing Laravel 5全局路由映射到控制器/方法名
Networkers2009:BRKIPM-2362 - Deploying Performance Routing