You are viewing the documentation for Blueriq 14. 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.