You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
What is it for ?
A contract module is used to enforce correct communication between different Blueriq applications.
Contract modules are used to define the contract for the external flow. The external flow contract is used for enforcing modelling rules that need to be applied for the communication between the AQ_ExternalFlow container and the external flow that is called by it. More specifically, the contract dictates what data can be mapped to and from the external flow and what events are triggered in the host project when the external flow ends.
Module elements that can be used within a contract module are used for transferring data between the host and target project:
Creating, deleting, and including contracts
Creating, deleting and including contracts can be done from the contract tab in the project structure view. Upon opening that section, a tree of projects (and internal library projects and external library projects) and its contract modules will be revealed.
Contract modules in:
- projects can be created and deleted and are always included as marked by the checkbox.
- internal libraries can be created and deleted and may or may not be included as marked by the checkbox.
- external libraries can only be imported and may or may not be included as marked by the checkbox.
Note that it is not possible to create links between contracts, thus a contract cannot be specialized and cannot inherit from other modules.
Using the Contract in the Host application
After importing and including the Contract in the Host application, as described above, one can make use of it in a container of type AQ_ExternalFlow.
For more information on how to use the Container type: AQ_ExternalFlow container, please check the documentation page for the container here.
Using the Contract in the Target application
After importing and including the Contract in the Target application, as described above, one can make use of it in an External Flow Type.
For more information on how to use the External Flow Type, please check the documentation page for the container here.