When working with mappings, a Join is used to combine rows from two or more source datastores.
Sometimes, it can be challenging to load/integrate multiple target datastores with the same set (or common set) of source datastores.
As for example, a request/need could be to generate:
- a target datastore of all customers including their title name
- a target datastore of customers with email address including their title name
- a target datastore of customers with phone number including their title name
With Semarchy xDI, different solutions can be implemented for above example.
One solution is : Conditional Join.
A Conditional Join allows activating a dataset and its corresponding Join only if the driving dataset is used.
To define a Conditional Join :
- Select the Join on the Mapping diagram
- Right click -> Activate (or Left click, in the Properties view, open the Advanced Properties finger tab)
- Set the Activate property :
- Always: The join is not conditional and will always be executed.
- With <datastore name>'s dataset: The Conditional join will be activated only if the dataset containing the <datastore name> datastore is used.
The complete solution of the example would be :
- Conditional Joins detail:
- T_TITLE <-> T_CUSTOMER => CUSTOMERS_TITLE
- T_CUSTOMER <-> T_EMAIL => CUSTOMERS_EMAIL
- T_CUSTOMER <-> T_PHONE => CUSTOMERS_PHONE
- T_TITLE <-> T_CUSTOMER => CUSTOMERS_TITLE
Source and target datastores are on different technologies/schemas : use of the LOAD template
Conditional Joins can be particularly useful to mutualize loads inside a Mapping.
In this example, two ways to identify the mutualization objects :
1/ In the mapping (LOAD templated identified by numbers)
- When selecting CUSTOMERS_EMAIL LOAD template n°1
- The datastores T_EMAIL and CUSTOMERS_EMAIL are highlighted
- which means that the load of T_EMAIL is for the integration of CUSTOMERS_EMAIL
- The datastores T_EMAIL and CUSTOMERS_EMAIL are highlighted
- When selecting CUSTOMERS_EMAIL LOAD template n°2
- The datastores T_CUSTOMER, CUSTOMERS_EMAIL, CUSTOMERS_PHONE (Load template n°1) and CUSTOMERS_TITLE (Load template n°1) are highlighted
- which means that the load of T_CUSTOMER for the integration in CUSTOMERS_EMAIL is the same for CUSTOMERS_PHONE and CUSTOMERS_TITLE
- which means that the load of T_CUSTOMER for the integration in CUSTOMERS_EMAIL is the same for CUSTOMERS_PHONE and CUSTOMERS_TITLE
- The datastores T_CUSTOMER, CUSTOMERS_EMAIL, CUSTOMERS_PHONE (Load template n°1) and CUSTOMERS_TITLE (Load template n°1) are highlighted
- When selecting CUSTOMERS_EMAIL LOAD template n°3
- The datastores T_TITLE, CUSTOMERS_EMAIL, CUSTOMERS_PHONE (Load template n°3) and CUSTOMERS_TITLE (Load template n°2) are highlighted
- which means that the load of T_CUSTOMER for the integration of CUSTOMERS_EMAIL is the same for CUSTOMERS_PHONE and CUSTOMERS_TITLE
- The datastores T_TITLE, CUSTOMERS_EMAIL, CUSTOMERS_PHONE (Load template n°3) and CUSTOMERS_TITLE (Load template n°2) are highlighted
- When selecting CUSTOMERS_EMAIL INTEGRATION template, the source datastores can also be identified
2/ In the process