Hello forum and Neil!!
We're working on a logistics business process application for a company that handles all the processing on land for maritime shipping vessels (trade, cargo, import, export).
Each vessel arrival is a complex process that encompasses quite a few sub-processes, and over 400 activities.
The most important objective in this application is that users do not forget the order and flow of the activities to be executed for an instance when a vessel arrives at port.
The second most important objective is to execute certain specific activities at an specific date/hour based on the ETA (Estimated Time of Arrival) of the vessel at port. For example, a report has to be sent to the competent authorities ETA -4hrs for every instance lauched.
To achieve this goals we have a first level process that right after providing the identification information of the instance branches out into two different processes. One (operational), that presents the activities and flow in the expected order and with the expected due dates (ETA -x hrs) and a second one (monitoring) that is based on timers linked to the established ETA.(illustration attached)
Challenge 1: Check in one process if another task has been finished in another process.
If one of this very important tasks has not occurred at an specific hour (ETA -x hrs) we need to be able to verify that is has not been executed and proceed with an escalation. Now, this is not a simple escalation in place as the timing is not measurable based on the task duration but measured on if the specific task has finished before the ETA -x hrs. This is why we chose to create a "monitoring" process…
Our challenge here is that we've been unable to notify the monitoring process that an specific task has been executed using a post-assignment task to send a variable to the main process and then into the monitoring process. (The sub-process does not necessarily ends)
Our guess is that using a UCA would be the option trigger this notification, but we've been unsuccessful on doing so. Any idea how to tackle it?
Challenge 2: Ad-Hoc change of ETA variable is not affecting already running timers.
Now, vessels are not always on time, and sometime ETA, TA, ETD, TD change and, therefore, all the due dates for the vast majority of tasks in the instance change.
The monitoring process (illustration attached) is based on timers as "gateways" that open at ETA -x hrs allowing the verification/escalation check tasks to take place. We've created an ad-hoc activity that allows the manager to change the ETA for a vessel but somehow the timers that have already started do not "honor" the new variable and instead keep running with the "old" data.
Any ideas how to solve this?
As always thanks so much for your help and time!!