我正在研究jBPM6和jboss6.2并尝试创建一个不同级别的应用程序,如Employee,Lead和Director。主管和主任是小组。创建流程后,我就像一个员工发送了一些请求并将流程移到了Lead,他已经批准了请求并将流程移到了Director,一旦他试图批准它就会抛出以下错误。
[org.jbpm.services.task.persistence.TaskTransactionInterceptor] (http-localhost/127.0.0.1:8080-5) Could not commit session: org.jbpm.services.task.exception.PermissionDeniedException: User '[UserImpl:'admin']' was unable to execution operation 'Start' on task id 1 due to a no 'current status' match
at org.jbpm.services.task.internals.lifecycle.MVELLifeCycleManager.evalCommand(MVELLifeCycleManager.java:128) [jbpm-human-task-core-6.0.1.Final.jar:6.0.1.Final]
at org.jbpm.services.task.internals.lifecycle.MVELLifeCycleManager.taskOperation(MVELLifeCycleManager.java:318) [jbpm-human-task-core-6.0.1.Final.jar:6.0.1.Final]
at org.jbpm.services.task.identity.UserGroupLifeCycleManagerDecorator.taskOperation(UserGroupLifeCycleManagerDecorator.java:46) [jbpm-human-task-core-6.0.1.Final.jar:6.0.1.Final]
执行以下代码时:
TaskService taskService = runtimeEngine.getTaskService();
taskService.start(taskId, username);
taskService.complete(taskId, username, parameterMap);
我是BPM流程新手,但我尽力解决问题。但没有找到解决方案。请告诉我如何解决?配置或其他什么地方出错了?
谢谢,
Mr.Chowdary
答案 0 :(得分:1)
请勿使用“admin”用户,请使用属于Director组的任何其他用户。
答案 1 :(得分:0)
经过大量的努力,调试代码后,我开始知道operations-dsl.mvel
jbpm-human-task-core-6.0.1.Final.jar
文件Start,Complete,Fail,Exit
中有taskService.start(taskId, username);
等操作。
因为当前状态未定义。在完成任务时由于某些错误而发生这种情况。例如:
taskService.complete(taskId, username, parameterMap);
在此步骤之前,状态为“Ready”
执行此步骤后,状态将为“InProgress”
complete()
执行"InProgress"
时,如果有任何异常原因,则状态仅为start()
因此,如果用户尝试完成任务,它将以"InProgress"
方法开头,在该方法中,状态[org.jbpm.services.task.persistence.TaskTransactionInterceptor] (http-localhost/127.0.0.1:8080-5) Could not commit session: org.jbpm.services.task.exception.PermissionDeniedException: User '[UserImpl:'admin']' was unable to execution operation 'Start' on task id 1 due to a no 'current status' match
未定义。所以它引发了以下异常。
{{1}}