Page tree
Skip to end of metadata
Go to start of metadata

To make sure all foreign keys are valid, we will add one additional row to the dimension table, to which all fact rows refer to in case they do not have a proper foreign key value. For better readability, we use separate Embedded DataFlows for each such source and call those e.g. EDF_Oracle_.... or EDF_DefaultRow_.... depending on what the source actually is. Both sources are merged together using the Merge Transform to be finally loaded into the target table. In case it is absolutely impossible - for sure - guaranteed - the EDF_DefaultRow can be omitted. But still, for consistency, keep the source inside Embedded DataFlows.

The EDF_DefaultRow is built to add new artifical row(s). In many cases the Primary Key of this table will be just one column, so we need to add just one row - using Row_Generation Transform as source. Depending on the datatype, the value of this key is assigned from the $G_DEFAULT_xxx Global Variable.

However, if the Primary Key is a combined one, e.g. COMPANYID, COSTCENTERID, the DefaultRow DataFlow for the CostCenter will have the Dimension Table with all COMPANYIDs as the source, so that for each COMPANYID a unknown COSTCENTER does exist. This also means this dimension table has to be loaded first, and as said at Components, is therefore a requirement and the first object in the C_CostCenter Component.

  • No labels