This page is about migrating from old workflows approval processes to the new ones, for documentation on new workflows see New Workflow Engine
IdM 15 is a transitional version that allows both old and new workflows to run concurrently. The transition strategy is as follows:
The transition can be gradual because:
This ensures that at most one approval workflow is triggered for each event, with new workflows taking precedence. As new workflow configurations are added, old workflows are triggered for fewer and fewer events, until after a full transition they are no longer triggered at all because all events are covered by new workflows. At that point, an upgrade to IdM 16+ is possible.
Just as old and new workflows exist side-by-side in terms of execution, they also coexist in the user interface. Approval tasks have their own tabs in the Tasks agenda and sections on the dashboard; old and new workflows also have independent notifications (different topics and templates).
The situation for recertification is specific in that old workflows were not used for their approval; instead, the approval process was implemented differently from the ground up.
In this case, versions of the recertification module up to 14.0.1 use the old way of approval, and this version can also be used with IdM 15. Conversely, from module version 15.0.0 onwards, approval is handled exclusively through new workflows, and this version is only compatible with IdM 15+.
The transition from old recertifications to new ones therefore involves:
At the same time, there is a fundamental difference. The old way of recertification had two types, where approval was provided either by the manager of the user to whom the role is assigned, or by the guarantor of the assigned role. These were two separate worlds, and each recertification was approved by exactly one of these methods.
With the new approval system, all recertifications share a single common workflow, and who approves can be controlled by conditions within the workflow. It is also possible to use the same workflow as for role assignments. This is what a workflow would look like, for example, where:
Prior to IdM 15.12.0, under certain circumstances, it could happen that a role assignment triggered approval via the new workflow, and upon its completion, triggered approval via the old workflow as well. The cause was inconsistent handling of database transactions when writing and reading the flag indicating that the event had been processed by the new workflow, combined with a reliance on the assumption that this flag would already be written to the database by the time the decision to trigger the old workflow was made.
In IdM 15.12.0, this bug was fixed using several redundant measures for greater certainty:
Any of these conditions signifies that the event was processed by the new workflow, and the old workflow will not be triggered. Furthermore, this evaluation no longer takes place only in the decision processor, but also directly at the beginning of the method that triggers the old workflow, in case its execution is initiated from elsewhere.