我没有得到关于如何在 JBPM 4.4 中处理异常的链接或材料任何机构都有任何指针或链接,请更新我。
谢谢拉维
您可以像这样在节点级别处理异常
<node name="Update Ops DC Review">
<action class="com.vis.vt.client.dc.process.handler.OperationsReviewActionHandler" name="discontinuanceActionHandler"></action>
<exception-handler exception-class="java.lang.Exception">
<action name="exceptionHandler" class="com.vis.vt.client.dc.node.ExceptionHandler"></action>
</exception-handler>
<transition to="Approve Client DC" name="Accept"></transition>
<transition to="Complete" name="Deny"></transition>
</node>
这是上面 XML 中提到的异常处理程序类的代码;
public class ExceptionHandler extends NodeHandler implements ActionHandler {
private static final long serialVersionUID = 1322446214823660013L;
public void execute(ExecutionContext context) throws Exception {
HelpDeskTaskData helpDeskTaskData = new HelpDeskTaskData();
ProcessInstance pi = context.getProcessInstance();
Node node = context.getToken().getNode();
String errorNodeName = node.getName();
long processInstanceId = pi.getId();
Throwable cause = context.getException();
Date currentDate = new Date();
String processName = pi.getProcessDefinition().getName();
helpDeskTaskData.setErrorNodeName(errorNodeName);
helpDeskTaskData.setProcessInstanceId(processInstanceId);
helpDeskTaskData.setCause(cause);
helpDeskTaskData.setCurrentDate(currentDate);
helpDeskTaskData.setSourceProcessName(processName);
ITaskData taskData = (ITaskData) context.getVariable("taskData");
helpDeskTaskData.setComposedTaskData(taskData);
pi.suspend();
ProcessEngine processEngine = ProcessEngine.getInstance();
processEngine.publish(helpDeskTaskData);
}
}
与 JBPM 版本 (7.x) 相关 您可以查看官方 JBPM 用户文档。但是可以在此处找到对可能选项的更好总结。