Hi!
I have a scheduled system flow that I would like to start when a task is executed as well.
This is normally not possible because you can’t add ‘Execute task’ to system flows.
To circumvent this problem, I could add a second process flow which is started by the task and uses the http connector to make a post request to indicium to start the systemflow. (As described in https://docs.thinkwisesoftware.com/docs/indicium/process_flows.html)
This should work fine but has a ‘hacky’ feel to it. Is there a better alternative I’m unaware of?
Hi,
There is indeed a difference between Process flows (available via GUI) and System flows (available by API / IAM. Running a System flow via a task in the GUI is not possible, but indeed you can execute it by calling it through the API of Indicium (like you do now). This does result in the System flow being executed by you (as an user). This could mean Disk operations like Create File cannot run successfully as not all IAM users are valid users that has sufficient rights to create files on a Disk.
System flows are more meant to be run by the System at a specified time at a specified interval, hence it is able to be scheduled in IAM. Also System flows are done without any user interaction and executing a in-GUI task is an user action. System flows can also be quite long in duration, like sending an email can take up to 10-20 seconds and that is time you don't want the user to wait.
Executing a System flow by using the HTTP connector to call Indicium's API is indeed a way of doing it, but it does result in the user having to wait until the Process flow is finished. The HTTP connector awaits the result of the HTTP call it's doing, so the user will have to wait for that.
I do believe this is the only way of using the System flow as an extension of the process flow by calling it. Other way would be to copy the System flow and using it in your application to run as Process flow.
Thanks, for the quick reply! This particular system flow is quite fast in execution and doesn’t need any special rights, so there should be no issues.
Do the results have to be instant? Otherwise you could have the system flow run every minute or 5 minutes and have a decision node that executes the flow when the time has reached a certain level (set a counter to keep track of this). Or when the counter is set manually using the GUI task.
What I did for my project was copy the entire system flow and add a task in front to execute in the GUI. However you need to be sure to make changes to both flows if something changes.
The system flow is used for data integration with an external system. It needs to run every minute but we want real time synchronization as well when a task is executed. Copying the entire flow would be a suitable solution as well but I would rather not maintain two separate nearly identical flows.
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.