A TDM task copies a Business Entity (BE) from a source environment to a target environment. A BE can have multiple LUs with either a flat or a hierarchical structure. For instance, a Customer BE consists of Customer Care, Billing, Ordering and Usage LUs. The ability to break a BE up into several LUs enables maximum flexibility and avoids duplication of development. Additionally, defining a hierarchical structure of parent-child LUs enables creating LUs, based on the natural root entity of the related data sources, instead of forcefully setting unified root entities on all LUs related to a given BE.
Each LU in a TDM project should have additional components in order to support TDM functionalities, as described below:
Each LU in a TDM project has the following structure:
Dummy root table, FABRIC_TDM_ROOT.
Generic TDM LU tables that are linked to the root table.
Two main branches that are linked to the root table:
Source branch - LU tables that extract an entity's source data. Source LU tables are populated when a TDM task needs to load (insert) entities to a target environment and therefore must extract the source data of these entities.
Target branch - LU tables that extract the target keys of an entity. The keys are extracted from the target environment in order to enable deleting an entity from a target environment if required by the TDM task.
Click for more information about Fabric implementation and deleting entities from the target environment.
Import the TDM_LIBRARY LU from the TDM Library to your project and copy the LU level objects in the TDM_LIBRARY to your LU.
Click for more information about supporting hierarchy in the TDM implementation.
Link the main source LU tables to the FABRIC_TDM_ROOT table. The main source tables represent the main (root) tables in the data source. For example, the Customer table is the main source LU table of the Customer LU.
Verify that the main source LU tables are also populated in ROOT_TABLE_NAME and ROOT_COLUMN_NAME Globals.
Create the population of the main source LU tables:
Generate a Broadway flow for the LU table population based on populationRootTable.pop.flow template (imported from the TDM Library):
Right-click the table name > New Table Population Flow From Template > populationRootTable.pop.flow. A popup window opens.
Populate the popup window's settings as follows:
Example:
Set the Truncate Before Sync property of the main source LU table to False, as the Broadway flow deletes the LU table before populating it.
Link the remaining source LU tables to the main LU tables, in a way that if the main source LU table is not populated, the remaining source LU tables remain empty as well.
Mask sensitive data in the LU tables by creating a Broadway flow with Masking Actors to populate the LU tables with the sensitive data.
Click for more information about TDM Masking.
Edit trnLuParams and LU_PARAMS in order to enable a subset of entities from selected parameters for this LU.
Click for more information about Handling TDM Parameters.
Define the LU tables in order to extract the target keys from the target environment. These keys are used by the delete flows for deleting an entity from the target.
Link the main target LU table to the FABRIC_TDM_ROOT table.
Add the fnDecisionDeleteFromTarget Decision function to all target LU tables. Note that this Decision function is under Shared Objects and is imported from the TDM Library.
Create the population of the main target LU table based on a Broadway flow. The Broadway flow should set the task's target environment to be the active environment, enabling the selection of target IDs from the target environment.
Link the remaining target LU tables to the main target LU table.
Click for more information about the deleting entities implementation.
Click for more information about deleting entities from a target environment using a TDM task.
The LUI should include the source environment, which should be set as the active environment in Fabric. When running a Data Viewer on the LU to debug its implementation, do either:
_dev_
. For example, _dev_1.The Broadway flow of the main source LU table is generated based on the populationRootTable.pop.flow template. It deletes and re-populates the main source LU table under the following conditions:
Running an Extract task or a regular Load task (the Data Versioning checkbox is cleared).
The Set Sync Policy task's setting is not set to Do not Sync Source Data to prevent synchronizing the entities from the source system.
Click to view the Override Sync Mode Summary Table.
The source LU tables are not populated by the LUI sync in the following cases:
The Broadway flow also validates whether the entity exists in the source table. If the entity is not found in the main source tables, an Exception is thrown and the entity is rejected.
See example of a Broadway flow that populates Customer LU table:
A TDM task copies a Business Entity (BE) from a source environment to a target environment. A BE can have multiple LUs with either a flat or a hierarchical structure. For instance, a Customer BE consists of Customer Care, Billing, Ordering and Usage LUs. The ability to break a BE up into several LUs enables maximum flexibility and avoids duplication of development. Additionally, defining a hierarchical structure of parent-child LUs enables creating LUs, based on the natural root entity of the related data sources, instead of forcefully setting unified root entities on all LUs related to a given BE.
Each LU in a TDM project should have additional components in order to support TDM functionalities, as described below:
Each LU in a TDM project has the following structure:
Dummy root table, FABRIC_TDM_ROOT.
Generic TDM LU tables that are linked to the root table.
Two main branches that are linked to the root table:
Source branch - LU tables that extract an entity's source data. Source LU tables are populated when a TDM task needs to load (insert) entities to a target environment and therefore must extract the source data of these entities.
Target branch - LU tables that extract the target keys of an entity. The keys are extracted from the target environment in order to enable deleting an entity from a target environment if required by the TDM task.
Click for more information about Fabric implementation and deleting entities from the target environment.
Import the TDM_LIBRARY LU from the TDM Library to your project and copy the LU level objects in the TDM_LIBRARY to your LU.
Click for more information about supporting hierarchy in the TDM implementation.
Link the main source LU tables to the FABRIC_TDM_ROOT table. The main source tables represent the main (root) tables in the data source. For example, the Customer table is the main source LU table of the Customer LU.
Verify that the main source LU tables are also populated in ROOT_TABLE_NAME and ROOT_COLUMN_NAME Globals.
Create the population of the main source LU tables:
Generate a Broadway flow for the LU table population based on populationRootTable.pop.flow template (imported from the TDM Library):
Right-click the table name > New Table Population Flow From Template > populationRootTable.pop.flow. A popup window opens.
Populate the popup window's settings as follows:
Example:
Set the Truncate Before Sync property of the main source LU table to False, as the Broadway flow deletes the LU table before populating it.
Link the remaining source LU tables to the main LU tables, in a way that if the main source LU table is not populated, the remaining source LU tables remain empty as well.
Mask sensitive data in the LU tables by creating a Broadway flow with Masking Actors to populate the LU tables with the sensitive data.
Click for more information about TDM Masking.
Edit trnLuParams and LU_PARAMS in order to enable a subset of entities from selected parameters for this LU.
Click for more information about Handling TDM Parameters.
Define the LU tables in order to extract the target keys from the target environment. These keys are used by the delete flows for deleting an entity from the target.
Link the main target LU table to the FABRIC_TDM_ROOT table.
Add the fnDecisionDeleteFromTarget Decision function to all target LU tables. Note that this Decision function is under Shared Objects and is imported from the TDM Library.
Create the population of the main target LU table based on a Broadway flow. The Broadway flow should set the task's target environment to be the active environment, enabling the selection of target IDs from the target environment.
Link the remaining target LU tables to the main target LU table.
Click for more information about the deleting entities implementation.
Click for more information about deleting entities from a target environment using a TDM task.
The LUI should include the source environment, which should be set as the active environment in Fabric. When running a Data Viewer on the LU to debug its implementation, do either:
_dev_
. For example, _dev_1.The Broadway flow of the main source LU table is generated based on the populationRootTable.pop.flow template. It deletes and re-populates the main source LU table under the following conditions:
Running an Extract task or a regular Load task (the Data Versioning checkbox is cleared).
The Set Sync Policy task's setting is not set to Do not Sync Source Data to prevent synchronizing the entities from the source system.
Click to view the Override Sync Mode Summary Table.
The source LU tables are not populated by the LUI sync in the following cases:
The Broadway flow also validates whether the entity exists in the source table. If the entity is not found in the main source tables, an Exception is thrown and the entity is rejected.
See example of a Broadway flow that populates Customer LU table: