The Status Dictator is an event-driven service, that keeps an eye on the statuses of hierarchically organized RPM process forms and changes the statuses of child forms according to the statuses of their parents. For example, if a parent form receives the Inactive status all child forms are also automatically assigned Inactive status. Any effort to change the status of a child manually will be overridden if the child's parent is Inactive.
The workflow is based on the status maps defined for child processes. In this map there are pairs of parent and child statuses that have to be taken care of. Manual child form status assignment is possible only if the parent's status is not in the status map of the child process and is ignored by the app.
Status auto-assignment works in the cascade (in-depth, avalanche) manner. This means that if the status of Child1 is changed to Inactive because Parent1 became Inactive, and Child1 is also a parent for some Child10, then Child10 also changes it status according to the status map defined for its process. And the process doesn't stop here, going into the very depths of the hierarchy.
The Application is designed to be run in a cloud or on a web server. It consists of 1 main module: web.js. The module is responsible for receiving web-hook form events from all status map participating processes and putting them into the main processing queue. Then it reads the statuses of the correspondent forms and makes changes to their children according to the status maps. The Application is initialized once using the views and keeps forms hierarchy in memory making incremental changes to it based on the web-hook events and correspondent form changes.
Click to view all Status Dictator use cases.