Hi ivy team

In my current project, we have structure like this picture: alt text

I can explain structure in some more words: - We have three module: Standard, Wir and Wir Test. Wir depend on Standard and Wir Test depend on Wir

  • In Standard we have one CallableSub Document Entry Process and it call another callablesub Handler Document Entry

  • In wir, we override the Handler Document Entry to create Ivy Task (use Task Switch/UserTask) then open the HtmlUserDialog of Wir project. We use the overriding function from Ivy.

  • Now we have the start link from Wir Test (actually no matter where we put the startlink, could be on Wir),and it call Document Entry Process from standard, then run the Overriding Process of Handler Document Entry on Wir.

But when the process hit to Task Element, it throw this exception:

    ch.ivyteam.ivy.request.RequestException: ivy:error:system
    at ch.ivyteam.ivy.request.RequestException$RequestExceptionBuilder.build(RequestException.java:161)
    at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleNormalRequest(BpmEngine.java:195)
    at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleRequestWithinContext(BpmEngine.java:140)
    at ch.ivyteam.ivy.request.impl.ContextAwareRequestHandler.handleRequest(ContextAwareRequestHandler.java:32)
    at ch.ivyteam.ivy.system.task.internal.SystemTaskJob.executeProcess(SystemTaskJob.java:127)
    at ch.ivyteam.ivy.system.task.internal.SystemTaskJob.executeAsSystem(SystemTaskJob.java:92)
    at ch.ivyteam.ivy.system.task.internal.SystemTaskJob$1.call(SystemTaskJob.java:56)
    at ch.ivyteam.ivy.security.internal.SecurityManager.executeAsSystem(SecurityManager.java:1467)
    at ch.ivyteam.ivy.system.task.internal.SystemTaskJob.execute(SystemTaskJob.java:52)
    at ch.ivyteam.ivy.job.internal.JobManager$1.call(JobManager.java:267)
    at ch.ivyteam.ivy.job.internal.JobManager$1.call(JobManager.java:1)
    at ch.ivyteam.util.callable.ExecutionContextContainer$ContainerExecutionContext.call(ExecutionContextContainer.java:92)
    at ch.ivyteam.ivy.security.internal.SecurityManager.executeInContext_aroundBody0(SecurityManager.java:1519)
    at ch.ivyteam.ivy.security.internal.SecurityManager.executeInContext_aroundBody1$advice(SecurityManager.java:41)
    at ch.ivyteam.ivy.security.internal.SecurityManager.executeInContext(SecurityManager.java:1)
    at ch.ivyteam.util.callable.ExecutionContextContainer$ContainerExecutionContext.call(ExecutionContextContainer.java:88)
    at ch.ivyteam.util.callable.ExecutionContextContainer.executeInContext(ExecutionContextContainer.java:27)
    at ch.ivyteam.ivy.job.internal.JobManager.execute(JobManager.java:261)
    at ch.ivyteam.ivy.job.internal.Job.run(Job.java:83)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745) Caused by: BpmError ivy:error:system
Unique ID: 155EDB7F283297EF
     Process Element: create task for Document entry <155C371802ADDD14-f62>
     Process Call Stack:
      DocumentEntryProcess <154380E2AD199B4E-f1>
      BaseDocumentProcess <1559F2D43EBE9F5C-f3>
        at ch.ivyteam.ivy.bpm.error.BpmErrorBuilder.build(BpmErrorBuilder.java:204)
        at ch.ivyteam.ivy.bpm.engine.restricted.error.BpmErrorHandler.getBpmErrorFor(BpmErrorHandler.java:90)
        at ch.ivyteam.ivy.bpm.engine.restricted.error.BpmErrorHandler.handleException(BpmErrorHandler.java:45)
        at ch.ivyteam.ivy.bpm.engine.internal.core.ProcessElementExecution.execute(ProcessElementExecution.java:42)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleExecution(RequestProcessor.java:140)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.processRequest(RequestProcessor.java:130)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleRequest(RequestProcessor.java:95)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleCallRequest(RequestProcessor.java:86)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleCallRequest(BpmEngine.java:243)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleCallRequest(BpmEngine.java:227)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleRequestWithinContext(BpmEngine.java:132)
        at ch.ivyteam.ivy.request.impl.ContextAwareRequestHandler.handleRequest(ContextAwareRequestHandler.java:32)
        at ch.ivyteam.ivy.bpm.engine.internal.CallService.handleRequest(CallService.java:101)
        at ch.ivyteam.ivy.bpm.engine.internal.CallService.callTarget(CallService.java:93)
        at ch.ivyteam.ivy.bpm.engine.internal.CallService.call(CallService.java:59)
        at ch.ivyteam.ivy.bpm.engine.internal.core.ProcessCallExecution.execute(ProcessCallExecution.java:25)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleExecution(RequestProcessor.java:140)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.processRequest(RequestProcessor.java:130)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleRequest(RequestProcessor.java:95)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleCallRequest(RequestProcessor.java:86)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleCallRequest(BpmEngine.java:243)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleCallRequest(BpmEngine.java:227)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleRequestWithinContext(BpmEngine.java:132)
        at ch.ivyteam.ivy.request.impl.ContextAwareRequestHandler.handleRequest(ContextAwareRequestHandler.java:32)
        at ch.ivyteam.ivy.bpm.engine.internal.CallService.handleRequest(CallService.java:101)
        at ch.ivyteam.ivy.bpm.engine.internal.CallService.callTarget(CallService.java:93)
        at ch.ivyteam.ivy.bpm.engine.internal.CallService.call(CallService.java:59)
        at ch.ivyteam.ivy.bpm.engine.internal.core.ProcessCallExecution.execute(ProcessCallExecution.java:25)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleExecution(RequestProcessor.java:140)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.processRequest(RequestProcessor.java:130)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleRequest(RequestProcessor.java:95)
        at ch.ivyteam.ivy.bpm.engine.internal.core.RequestProcessor.handleRequest(RequestProcessor.java:77)
        at ch.ivyteam.ivy.bpm.engine.internal.BpmEngine.handleNormalRequest(BpmEngine.java:191)
        ... 22 more
    Caused by: java.lang.IllegalStateException: TaskSwitch element (TaskSwitchElement [id=155C371802ADDD14-f62, name=create task for Document entry, type=UserTask]) is not permitted inside a sub process of a required project.
        at ch.ivyteam.ivy.bpm.engine.internal.model.bpmn.TaskSwitchElementExecutorAdapter.checkIllegalTaskSwitchUsage(TaskSwitchElementExecutorAdapter.java:111)
        at ch.ivyteam.ivy.bpm.engine.internal.model.bpmn.TaskSwitchElementExecutorAdapter.execute(TaskSwitchElementExecutorAdapter.java:81)
        at ch.ivyteam.ivy.bpm.engine.internal.model.ProcessElement.lambda$0(ProcessElement.java:215)
        at ch.ivyteam.ivy.bpm.engine.internal.model.ProcessElement.executeInElementContext(ProcessElement.java:286)
        at ch.ivyteam.ivy.bpm.engine.internal.model.ProcessElement.execute(ProcessElement.java:215)
        at ch.ivyteam.ivy.bpm.engine.internal.core.ProcessElementExecution.execute(ProcessElementExecution.java:37)
        ... 51 more

Does anyone know about this issue? Why it happen and how to solve it

asked 15.07.2016 at 10:58

trungdv's gravatar image

trungdv
49590101103
accept rate: 52%


In a process you are only allowed to create tasks in the Project in which the process was started. It is not allowed to create tasks in required projects or in overriding projects. This is as restriction by design.

link

answered 15.07.2016 at 15:25

Reto%20Weiss's gravatar image

Reto Weiss ♦♦
4.9k172655
accept rate: 74%

Hi @Reto Weiss Now i got it. Even overriding process also not allowed right. Because we use Signal + User Task to get benefit from User Task as well as Boundary signal event. And we also want to have overriding function to keep our structure clean and clear but may be it's not possible. Actually we can use Task switch element (or Gateway) to create task because we call overriding one and inside that we just open HtmlUserDialog. but we will lose the boundary signal. Can you explain why don't we support boundary signal for that element on ivy? Thankyou very much

(15.07.2016 at 18:07) trungdv trungdv's gravatar image

Because until now it was not a requested feature. I think what you'd like to have is a normal task switch, with signal boundary functionality and a normal html dialog in a call sub (for overriding) afterwards. If this is a common use case talk to the architecture team so that they can suggest that as a new feature

(18.07.2016 at 17:15) Reto Weiss ♦♦ Reto%20Weiss's gravatar image
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×112
×63

Asked: 15.07.2016 at 10:58

Seen: 3,431 times

Last updated: 18.07.2016 at 17:15