平台提供一个抽象类AbstractWorkflowEvent,具体实现由客开来完成。
public abstract class AbstractWorkflowEvent { /** * 唯一标示,一旦生成,不可变更 * @return */ public abstract String getId(); /** * 事件显示名称 * @return */ public abstract String getLabel(); /** * 返回指定的模版编号 * @return */ public String getTemplateCode(){return "";}; //发起前事件 public WorkflowEventResult onBeforeStart(WorkflowEventData data){return null;} //发起事件 public void onStart(WorkflowEventData data){} //处理前事件 public WorkflowEventResult onBeforeFinishWorkitem(WorkflowEventData data){return null;} //处理事件 public void onFinishWorkitem(WorkflowEventData data){} //终止前事件 public WorkflowEventResult onBeforeStop(WorkflowEventData data){return null;} //终止事件 public void onStop(WorkflowEventData data){} //回退前事件 public WorkflowEventResult onBeforeStepBack(WorkflowEventData data){return null;} //回退事件 public void onStepBack(WorkflowEventData data){} //撤销前事件 public WorkflowEventResult onBeforeCancel(WorkflowEventData data){return null;} //撤销事件 public void onCancel(WorkflowEventData data){} //取回前事件 public WorkflowEventResult onBeforeTakeBack(WorkflowEventData data){return null;} //取回事件 public void onTakeBack(WorkflowEventData data){} //结束事件 public void onProcessFinished(WorkflowEventData data){} }
WorkflowEventData类如下:
public class WorkflowEventData { private long summaryId;//事件前获取不到 private long affairId;//事件前获取不到 /** * 节点绑定的表单ID */ private String form= null; /** * 节点绑定的表单应用ID */ private String formApp= null; /** * 节点绑定的表单操作视图ID */ private String operationName= null; /** * 业务数据集合(包括跨表) */ private Map<String, Object> businessData= new HashMap<String, Object>(); //setting and getting }
WorkflowEventResult类如下:
public class WorkflowEventResult { public WorkflowEventResult(){} /** * @param alertMessage */ public WorkflowEventResult(String alertMessage) { this.alertMessage = alertMessage; } /** * 提示信息 */ private String alertMessage = ""; /** * @return the alertMessage */ public String getAlertMessage() { return alertMessage; } /** * @param alertMessage the alertMessage to set */ public void setAlertMessage(String alertMessage) { this.alertMessage = alertMessage; } }