I've encountered a problem and need some help understanding the workflow architecture, specifically when a workflow is invoked by an event. I'm focusing on synchronous workflow invocation only.
Problem: I've noticed a difference in behavior between using Error_SYS.Record_General()
in an Execute Online SQL event action and IFS Failure
in a workflow event action (in my experiment, both are exclusively called by the same event). It seems Error_SYS
stops the process, while IFS Failure
in the workflow doesn't stop the process, and I can see more activities (Server Trace) in the DevTool log. Additionally, some data are changed despite the validation error message appearing.
This issue is connected to the functionality: Report Picking of Pick List Lines -> Report Picking of one line with serial number. Report_Picking_Of_Pick_List_Lines_SVC.Do_Pick_Selected(...)
.
Context: For every event, a database trigger is created, and it invokes the workflow if I understand correctly. I imagine it is done in a similar way to other event actions like SQL actions, Emails, and so on.
Questions:
- How do we invoke the workflow from PL/SQL code? In the code
Bpa_SYS.Append_Event
, it looks like it is adding some workflow to the collection only. I do not see any direct invocation. - If I do not see direct invocation of the Camunda Engine from PL/SQL, does it mean we use asynchronous communication in this case? How can we assure a single transaction? I have tried to read the documentation, but it doesn't answer my question.
I have the feeling that the workflow is being invoked with a delay (light async), but it should be run synchronously.
Understanding this would help me troubleshoot this and other issues.
Any insights or explanations, especially from the R&D team, would be greatly appreciated!