EOS7.x流程环节中切入动态设置参与者规则的解决方法

本文介绍了在普元EOS7.x流程中如何解决动态设置参与者规则的问题,特别是流程环节互斥的情况。通过自定义参与者互斥规则类并反编译源码插入代码,实现在BPS运行时动态调整参与者,确保某些环节的参与者不重复。

普元EOS7.x流程环节中切入动态设置参与者规则的解决方法

普元EOS产品中,嵌入BPS流程服务,可以方便地进行流程开发,但美中不足的是BPS没有提供动态设置环节参与者的接口。在本文中,以流程环节互斥为案例说明如何在BPS中动态切入自定义参与者规则的解决方案。

案例:在流程中,业务需求要求某几个环节的参与者不能是同一人。
实现:

  1. 自定义参与者互斥规则类,直接贴代码:
package com.yadnymmt.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.eos.das.entity.criteria.CriteriaType;
import com.eos.foundation.database.DatabaseUtil;
import com.eos.workflow.api.IWFActivityInstManager;
import com.eos.workflow.api.IWFWorkItemManager;
import com.eos.workflow.api.impl.WFActivityInstManager;
import com.eos.workflow.api.impl.WFOMServiceImpl;
import com.eos.workflow.api.impl.WFWorkItemMananger;
import com.eos.workflow.data.WFActivityInst;
import com.eos.workflow.data.WFWorkItem;
import com.eos.workflow.omservice.IWFOMService;
import com.eos.workflow.omservice.WFParticipant;
import com.primeton.component.rif.common.utils.StringUtil;
import com.primeton.workflow.api.IWFInstancePool;
import com.primeton.workflow.api.WFServiceException;
import com.primeton.workflow.service.das.model.entities.WFWorkItemInternal;
import com.primeton.workflow.service.framework.WFServiceFactory;

import commonj.sdo.DataObject;

/**
 * 动态设置参与者规则类
 * 通过修改participantList,可实现动态修改参与者。
 * @author MountainChen
 * @date 2019-10-08
 */
public class ParticipantsRule {
   
   
	private static IWFActivityInstManager activityInstManager = new WFActivityInstManager();
	private static IWFWorkItemManager workItemManager = new WFWorkItemMananger();
	//实例缓存池
	private static IWFInstancePool pool =  WFServiceFactory.getService(IWFInstancePool.class);
	//互斥配置缓存
	private static Map<Long, List<String>> mutexMap = new HashMap<Long, List<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值