Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This pattern uses the AQ_StartProject service in 'Start without user interface' mode to call a flow in a project that can be located in a completely different repository. The call of the flow is straightforward, whereas receiving the answer is more difficult. The AQ_StartProject service does not set any output itself, as it just starts a function in a different repository. The result of the flow has to be retrieved to the profile using some other service. A solution for this could be by loading it with an AQ_Aggregate_Read service. As the execution is in parallel, you can not be sure that the information is already up-to-date. A custom service which waits for the updated information is likely more suitable.

Characteristics

TypeDescription
Implicit vs. Explicit callThis is an explicit call. The rule engine does not trigger the function.
User set vs. System set

The information entering the profile is user set if an AQ_Aggregate_Read service is used, but can be system set with a custom service.

Input and Output parameters vs. Complex ModelThe input parameters are set on the AQ_StartProject. What key-value pairs are needed for the successful execution should be documented in the function project.
Your model stays clean of any internals of the function.
Simple Parameters vs. Complex InstancesThe input are simple key-value pairs. Output can be complex.
Internal vs. ExternalThis type of decoupling is only for internal use.
Automated vs. User InteractionThis type of decoupling is only for automatic tasks.
Complexity of the Decoupling pattern vs GainThe output parameters are loaded by the AQ_Aggregate_Read or a custom service. This means that you can only see how an attribute receives its value by checking if it is included in an aggregate, and that aggregate is loaded within a flow. You can not see this in the model if custom code is used.
Out-of-the-box vs. Custom CodeThe AQ_StartProject is standard functionality, as well as the AQ_Aggregate_Read service. A custom service that waits for the started flow to end is a custom service.
Part of Application vs. Separate DeploymentThe decoupled part is deployed separately.
MaintainabilityThis pattern does not clutter your domain with unnecessary attributes, which is an advantage. It is fairly clear to the business engineer what the service exactly does. A disadvantage is that the loading of output information is difficult, and a Decision Requirements Graph (DRG) in Studio can not be used.