As Developer I want to have a Waiting Step within a process and trigger this waiting step from outside
Use an Intermediate Event (https://developer.axonivy.com/doc/latest/DesignerGuideHtml/ivy.processmodeling.html#ivy-processmodels-elements-intermediate) with a Unique Event ID. Provide a suitable service interface (Web Service, REST) to the 3rd Party System that can trigger the Waiting Step. Technical Waiting steps usually do not need any graphical user interface for the end user. Therefore the Intermediate Event is a good candidate
The following picture describe the idea of waiting steps and the possibility to provide external systems, an API to trigger such waiting step. The process design and definition of waiting step are part of the Process in Axon.ivy. The waiting step contains a unique identifier in order to find this step later on. A helper function IvyEventUtility provides several methods to find the waiting step and trigger it. The external system can access the waiting step via different APIs (usually project specific), e.g. Web Service, REST or any other API.
There is no need to use a Java Class for the Intermediate, because we do not use the polling function. We only need the Event ID for the Intermediate Event, that can be calculated. Just simple calculated a unique ID for the Intermediate Event, that is also later used to find the waiting event. Usually use can use defined Correlation IDs with 3rd Party IDs.
In our example we do not use the Polling approach to fire the intermediate event. We use the Query API to look for the right Intermediate Event and than fire the event itself. This method can be used in any external API (e.g. Web Service Process, REST service, etc.) that also external systems can trigger waiting steps.
Just check out the example in your Ivy Designer: