Considerations Before Designing a Workflow¶
Following are the list of considerations that a user needs to be aware of before extensively working on workflows:
-
According to the Workflow transaction management policy, APIs that have implicit commits, rollbacks, savepoints, or Pragma Autonomous blocks, cannot be called through a Workflow.
-
Since Workflows execute on behalf of the user, the users who execute these Workflows should have the necessary permissions to access all the required projections invoked in that Workflow. Hence, consider all the users who are likely to execute a particular Workflow, and ensure they have grants to access the projections invoked in it. Without the necessary permissions granted to the user, the Workflow execution will fail.
-
Workflow User Forms cannot handle LOV (List of Values).
-
It is possible to add static enumeration to the Workflow User Form. However, enumerations defined in IFS Cloud are not supported currently in the Workflow User Form.
-
Authentication for Workflow IFS Rest Connector requires the Workflow author to create and manage authentication manually. It does not support OAuth authentication to create tokens when calling external APIs.
-
Blob, Clob, GIS, and File datatypes are supported only in cases where projections that manipulate them behind the scenes are called.
-
The Query Builder filter tool in IFS API Task supports Enum type attributes. However, it is important to note that it works with DB Enum value and not with client Enum value. Query Builder filter displays the client Enum value in the dropdown so it has to be changed to DB Enum value by modifying the filter text field value. For example, assume that the
approval_status
Enum attribute has its client value as APPROVED and DB value as APP. Then client value is displayed in the drop down as below.After submitting, it needs to be changed to DB Enum value as below to filter the record(s) correctly.
-
For a Workflow to be triggered from a Mobile App transaction via a custom event, it must be fired asynchronously.
-
For Workflows with User Tasks, maximum character length of any attribute used before any User Task should be less than 2000. For workflows without any User Tasks, attributes with 2000+ character length is supported.
-
In case there are a high number of workflows triggered simultaneously, when processing large volumes of data in situations such as Data Migration, it is recommended to disable these Workflows to avoid disruptions during the Data Migration process.
-
There is a default 300 seconds (5 minutes) time limit on Workflow executions on Cascade Workflows triggered by a Synchronous ('Before' or 'After' timing) Workflow. This means if a certain action causes to execute Workflow instances in a chained manner for more than 300 seconds, it will give an error.
It is possible to override the default time limit by adding a record to
BPA_SYSTEM_SETTINGS_TAB
. Add Variable asSINGLE_THREAD_SYNC_EXECUTIONS_TIMEOUT
. The new value (in seconds) should be less than the API Gateway Timeout. After updating, restart the ODataProvider container. -
There is a default 900 seconds (15 minutes) time limit for Cascade Workflows triggered by an Asynchronous Workflow (Background jobs).
It is possible to override the default time limit by adding a record to
BPA_SYSTEM_SETTINGS_TAB
. Add Variable asSINGLE_THREAD_ASYNC_EXECUTIONS_TIMEOUT
. After updating the new value (in seconds), restart the ODataProvider container.
If there is a possibility of exceeding the predefined execution timeout for Cascade Workflows in a Synchronous flow, the following actions can be taken:
1. Synchronous timeout can be increased.
2. When immediate feedback from the Workflow is not a necessity and the Workflow execution is anticipated to be time-consuming, It is recommended to setup Workflows as Asynchronous.
Note: Override the default values of
SINGLE_THREAD_SYNC_EXECUTIONS_TIMEOUT
andSINGLE_THREAD_ASYNC_EXECUTIONS_TIMEOUT
configurations responsibly since it might lead to transaction timeouts and performance issues that can negatively impact the system.