0

我没有得到关于如何在 JBPM 4.4 中处理异常的链接或材料任何机构都有任何指针或链接,请更新我。

谢谢拉维

4

2 回答 2

1

您可以像这样在节点级别处理异常

<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);

    }  
}
于 2012-04-11T08:10:32.827 回答
0

与 JBPM 版本 (7.x) 相关 您可以查看官方 JBPM 用户文档但是可以在此处找到对可能选项的更好总结。

于 2020-08-21T17:25:47.910 回答