You are viewing the documentation for Blueriq 15. Documentation for other versions is available in our documentation directory.
What is it for ?
A Contract is a type of module that contains a limited amount of element types and is used to enforce correct communication between different Blueriq applications.
Creating and using contracts
There is a new Contract tab available in the Project Structure view. Upon opening that section, two columns will be revealed: one for Development contracts and one for Imported contracts.
Development contracts
This is the place where you can add and develop contracts of your own. In order to add a new contract module, you can right click in the Development contracts section and then Add contract as you would do with any other module type.
Please note that it is not possible to create links between contracts, thus a contract cannot be specialized and cannot inherit from other modules.
Imported contracts
Contracts can of course be included in libraries. If those libraries are further used in a project, then the contained contracts can be selected to be used in that project in the Imported contracts section.
For example, let's say there is a library KinderbijslagService that has a Definition contract module:
While the KinderbijslagService library is used in the ClientApplication project, the Definition contract module will be available for selection in the Imported contracts section.
If the contract resides in an external library, then its content will naturally not be modifiable.
Types of contracts
For the moment, the only type of contract we support is the external flow contract.
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.
- the domain used for transferring data between the host and target project
- entities
- attributes
- relations
- value lists
- ERDiagrams
- events
Using the Contract in the Host application
After importing 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 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.