WEB开发网
开发学院软件开发Java JBPM基于Spring系统工作流平台整合4------系... 阅读

JBPM基于Spring系统工作流平台整合4------系统中间层设计

 2009-09-09 00:00:00 来源:WEB开发网   
核心提示:目的:为了可以和任一第三方工作流平台(wfmc标准)整合,中间层BEAN类定义 /*** 工作流流程定义类,JBPM基于Spring系统工作流平台整合4------系统中间层设计,也就是某一工单对应的模型定义* @author Wang YiSong*/public class WfProcessDef impleme

目的:为了可以和任一第三方工作流平台(wfmc标准)整合。

中间层BEAN类定义
/**
 * 工作流流程定义类,也就是某一工单对应的模型定义
 * @author Wang YiSong
 */
public class WfProcessDef implements Serializable {
    long processDefId; //流程定义Id
    String processDefName; //流程定义名称
……
}

/**
 * 流程定义中的节点,也就是流程扭转过程中的具体操作的抽象
 * @author Wang YiSong
 */
public class WfNodeDef implements Serializable {
    long nodeId; //节点定义id
    String nodeName; //节点定义名称
……
}

/**
 * 工作流流程实例类,一个工单对应一个流程实例
 * @author Wang YiSong
 */
public class WfProcessIns implements Serializable {
    long processInsId; //流程实例Id
    long processDefId; //流程定义Id
 ……
}

/**
 * 工作流任务实例类,具体流程实例每一个节点对应的具体任务,一个节点可能对应多个任务实例(如:会签,或者一个节点需要多个顺序的任务完成)
 * @author Wang YiSong
 */
public class WfTaskIns implements Serializable {
    long taskInsId; //任务实例Id
    String taskInsName; //任务实例名称
……
}
工作流中间层接口定义
/**
 * 工作流系统调用接口,系统调用该接口,不直接调用第三方工作流引擎提供的api
 * 这样系统和任一第三方流程引擎整合可以将引擎之间的差异通过该接口定义屏蔽,也就是说该接口对于系统是透明的
 *
 * @author Wang YiSong
 */
public interface WfManageService {
    /**
     * 部署发布流程定义
     */
    public void deployWfProcessDef(ZipInputStream zStream);  
    /**
     * 获取所有流程定义
     */
    public List getAllWfProcessDefs();
    /**
     * 根据流程定义名称创建一个流程实例.
     */
    public WfProcessIns createWfProcessIns(String wfProcessDefName);  
    /**
     * 启动流程
    */
    public void startWfProcessIns(long wfProcessInsId);  
    /**
     * 根据用户Id获取待办任务,返回WfTaskIns对象的集合
     */
    public List getWfTaskInsLsByUserId(String userId);   
    /**
     * 更新流程全局变量和相关节点有关变量
     */
    public void setRelevantVariable(long wfProcessInsId, HashMap<String, String> varMap);   
    /**
     * 启动执行任务,在实际业务中类似签收的作用
     */
    public void startWfTaskIns(long wfTaskInsId);  
    /**
     * 完成任务,当前任务实例的结束,下一个节点的初始化
     */
    public void completeWfTaskIns(long wfTaskInsId);   
     ......
} 

文章来源:http://wangyisong.javaeye.com/blog/353659

Tags:JBPM 基于 Spring

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接