4 Set up data transformations
This section describes how to map at the following levels:
- Clinical data model
- Table
- Column
It also describes how to cascade blinding and masking, install a transformation, and run transformations and view history. You can also learn how to set automatic triggering of transformations and validation checks, upgrade transformations to synchronize with models, and view validation status and lifecycle stages.
The following diagram shows consecutive clinical data models Source, All Sites, Review, and Analysis. Subjects' weight is collected at each visit and mapped from the source model to each subsequent model, merging data from all sites in a union to the All Sites model, and converting the units from pounds to kilos in the Review model. Subjects' height is collected during the initial visit. To calculate the BMI in the Analysis model, Height is mapped from the source model and Weight is mapped from the Review model. The calculation is performed as an expression on the target column.
Figure 4-1 Transformation Example: BMI Calculation

- Map at the clinical data model level
- Use side transformations
- Map at the table level
- Map at the column level
- Cascade blinding and masking
- Table transformation types
- Use a custom program
- Install a transformation
- Upgrade transformations to synchronize with models
- Run transformations and view history
- FAQs
Map at the clinical data model level
For details on mapping at the clinical data model level, see this video:
-
Click the Study Configuration icon
from the navigation bar. Then click the Transformations tab.
-
In the Data Models pane on the left, select the clinical data model the transformation will write data into.
The system displays its tables in both the Target Tables and Source Tables panes so that you can use the target tables as a source for side models.
-
Click the
Add or Remove Source Model icon in the Source Tables pane.
- Select one or more models to feed data into the transformation's target model.
Tip:
Reference models are listed after the study models. See Set up reference data. - For each, select the Can Trigger checkbox if you want the completion of a job updating data in the source model to trigger the execution of this transformation.
- Click Save.
Tip:
If many people are working on the same transformation, Use side transformations.Next: Map at the table level.
Note:
A tilde (~) displayed next to an input model means the model was deleted while the transformation was checked in. When you check out the transformation, the deleted model is no longer displayed at all. - Select one or more models to feed data into the transformation's target model.
Parent topic: Set up data transformations
Use side transformations
To allow many people to work on a transformation at the same time, each person can create a side model with one target table to work on in a corresponding side transformation.
Parent topic: Set up data transformations
Create a side transformation
Work on one side transformation at a time, then merge it into the main transformation, and delete the side model.
Parent topic: Use side transformations
Merge a side transformation with the main transformation
When you merge the side model with the main model, any blinding and Not Used values are merged with the target model.
Parent topic: Use side transformations
Map at the table level
For details on mapping at the table level, see this video:
You must specify how to handle every table in the target model: either mark it Not Used or map it to one or more source tables.
You can work in many ways:
- Copy table transformations
- Use Automap
- Map tables manually
- Mark target tables and columns as Not Used
- Create a self-join
- Authorize target table data for nonprivileged users
- Add expressions on mapped sources
- View source code
- Validate mappings
- Unmap tables
Parent topic: Set up data transformations
Copy table transformations
If a transformation between the same or very similar source and target tables exists in a different study, you can copy it and do most of the mapping automatically.
Parent topic: Map at the table level
Use Automap
The Automap process searches for tables in source models to map to tables in the target model. It creates only direct 1:1 mappings. It does not change existing manual mappings. After running it, you select the mappings you want to use.
For details on the automap process, see this video:
For more details on the Automap feature, see FAQ How does Automap work?
Parent topic: Map at the table level
Accept or reject suggested mappings
Once the automap process completes, a notification opens with: "Automapping suggestions require review and approval." You can accept or reject the suggested mappings. (For more details selecting tables to automap, see Use Automap.)
For details on the automap process, see this video:
-
Review all table and column mappings.
The Type column shows the type of logic used to find the source column: Name Match, Alias Match, Datatype Match, or Partial Name/Alias Match.
-
Clear any maps you do not want.
-
To accept the maps, click Map > Review and Accept maps from the Transformation tab title bar.
Parent topic: Use Automap
Map tables manually
First, Map at the clinical data model level.
To map at the table level:
Next: Map at the column level.
Parent topic: Map at the table level
Mark target tables and columns as Not Used
See What happens when I mark tables and columns as Not Used? for more information.
Parent topic: Map at the table level
Explicitly mark as Not Used
-
After you select a study, click the Study Configuration icon
from the navigation bar to open the Clinical Data Model tab.
- Click the Transformation tab to view the source and target tables.
-
Select a single table or column.
- Select Mark as Not Used from the Mark drop-down in the table or column pane.
Parent topic: Mark target tables and columns as Not Used
Cascade Not Used from source to target
-
After you select a study, click the Study Configuration icon
from the navigation bar to open the Clinical Data Model tab.
- Click the Transformation tab to view the source and target tables.
- Check if the source has tables or columns not used.
- Select Cascade Not Used from the Actions menu in the title bar of the Transformation tab.
Parent topic: Mark target tables and columns as Not Used
Mark mapping as Complete
To mark all remaining unmapped columns in a single table as Not Used:
-
Go to the Column Mapping page for a single table.
-
Select Mark as Complete from the Mark drop-down.
To mark all remaining unmapped tables as Not Used:
-
Go to the main transformation page.
-
Select Mark as Complete from the Actions drop-down in the title bar of the tab.
Parent topic: Mark target tables and columns as Not Used
Create a self-join
- Select the table in the Source Tables pane and the Target Tables pane and click the
Map icon.
- Enter an alias for each occurrence and save.
- Select a transformation type of Join for the target table.
- Click the Join icon and define the join. See Join.
- Click the
Map Column icon for the target table. See Map at the column level.
Parent topic: Map at the table level
Authorize target table data for nonprivileged users
If you are certain that one or all target tables do not contain any unmasked blinded data, so users without special blinding privileges should be able to view all data in the table, authorize the table(s).
Tip:
Before authorizing, modify all target tables that do contain data that should be hidden by masking values in the appropriate columns, rows, or cells. Do this in the Clinical Data Model page. See Set up data blinding in tables.
To authorize a single table:
-
Select the table.
-
Select its Authorize checkbox.
-
Save the transformation.
To authorize all target tables:
-
Select Authorize Target Tables from the Actions drop-down.
-
Save the transformation.
Tip:
You cannot undo authorization for all tables at once.
To undo authorization:
- Select the table.
- Deselect its Authorize checkbox.
- Save the transformation.
For more information, see Data blinding and authorization.
Parent topic: Map at the table level
Add expressions on mapped sources
To generate a WHERE clause to filter by column value on the source table(s), restricting the set of source data that participates in the transformation:
Parent topic: Map at the table level
View source code
To view generated PL/SQL source code for a table mapping:
- Select the table.
- From the Actions drop-down, select View Source.
Parent topic: Map at the table level
Validate mappings
To validate selected mappings:
-
Select one or more target tables.
-
From the Map drop-down in the Target Tables pane, select Validate Mappings.
To validate all mappings in the transformation:
- From the Map drop-down at the top of the page, select Validate Mappings.
To see error messages, hover over the table or column's mapping status icon. See What does this transformation validation error message mean? for more information.
Parent topic: Map at the table level
Unmap tables
- Select one or more target tables.
- From the Target Tables Map drop-down, select Unmap.
Parent topic: Map at the table level
Map at the column level
For details on mapping at the column level, see this video:
Note:
Make sure you mapped at the table level before you map at the column level, Map at the table level.To run the transformation, go to the Home page.
Parent topic: Set up data transformations
Cascade blinding and masking
You can apply the blinding settings of source tables and columns to the target tables and columns they are mapped to using the Cascade Blinding feature for tables and the Cascade Masking feature for columns.
Use the View drop-down to display columns in the Source Tables or Columns pane with blinding-related information:
You must complete all the mappings first.
Parent topic: Set up data transformations
Cascade masking to downstream columns
Masking substitutes a dummy value for real, sensitive, data.
Parent topic: Cascade blinding and masking
Table transformation types
Note:
For more information on joins, unions, pivots, and unpivots, see Oracle® Database SQL Language Reference 11g Release 2 (11.2).Direct
One or more source tables feed data to a single target table. Column maps in a direct table relation may have a 1-to-1 or Many-to-1 relation.
Parent topic: Table transformation types
Join
For details on creating a join, see this video:
Two or more source tables feed data to a single target table in a join relationship with a join condition. Column maps in a join relation may have a 1-to-1 or Many-to-1 relation.
Parent topic: Table transformation types
Join Types
An inner join (sometimes called a simple join) returns only those rows that satisfy the join condition.
An outer join extends the result of a simple join. An outer join returns all rows that satisfy the join condition and also returns some or all of those rows from one table for which no rows from the other satisfy the join condition:
-
A left outer join returns returns all rows from Table 1 and only rows meeting the join condition from Table 2. Rows in Table 1 that do not have a corresponding row in Table 2 have null values in the columns from Table 2.
-
A right outer join returns returns all rows from Table 2 and only rows meeting the join condition from Table 1. Rows in Table 2 that do not have a corresponding row in Table 1 have null values in the columns from Table 1.
-
A full outer join returns all rows from both or all tables. Rows in either table that do not have a corresponding row in the other table have null values in the columns from the other table.
Parent topic: Join
Union
For details on creating a union, see this video:
All the data in two or more tables is fed into a single target table that is a superset of all columns in the sources. The source tables should have some overlapping content, such as two versions of a Vital Signs form or two lab vendors providing results for the same subject visit.
Parent topic: Table transformation types
Pivot
For details on creating a pivot, see this video:
A pivot converts a source table with a tall, skinny structure of few columns and many rows, such as lab data or ODM, into a target table that represents the same data in a more horizontal (short, fat) structure with more columns and fewer rows, based on the value in a pivot column, which must be associated with a codelist.
Tip:
For pivots to work correctly the source table must have a primary key that includes the pivot column plus the minimum number of columns required to ensure that each record is unique.
If there are more columns in the key than that, the resulting table may have too many rows with target column values sparsely populated among them rather than having fewer rows with a value in each column.
- Select the source and target tables and click the Map icon, then select a Transformation Type of Pivot.
- Click the Pivot icon.
- Query for and select the pivot column. It must be associated with a codelist.
- Click OK.
- Click the Map Column icon.
- In the View drop-down, select Columns and then select Filter Value.
- Scroll over to the Filter Value column. For each pivoted column in the target table, select the pivot column value to identify the row in the source table from which to get the value for the target column.
- Save.
Pivots and InForm Repeating Itemsets: In InForm, the primary key includes an internal index column called itemsetindex. In DMW, this internal column must be removed and replaced with the pivot column, which is associated with a codelist. To do this, create an intermediate direct transformation to remove itemsetindex and any other unneeded internal columns and add the pivot column to the primary key. Use the resulting table as the source table for the pivot transformation.
Pivot Example: Lab results are shipped one per row, but the review data model requires one row containing all lab results for each patient at the same visit.
Table 4-1 Source table in pivot example
SubjID | Date | Visit | Test | Unit | Value |
---|---|---|---|---|---|
972 |
03262112 |
5 |
IG |
mh/dl |
853 |
972 |
03262112 |
5 |
Lith |
null |
neg |
972 |
03262112 |
5 |
PTH |
pg/mL |
285 |
989 |
03312112 |
3 |
IG |
mh/dl |
824 |
989 |
03312112 |
3 |
Lith |
null |
pos |
989 |
03312112 |
3 |
PTH |
pg/mL |
290 |
The Test column, which contains the lab test name in the source table, is the pivot column. It is associated with a codelist whose values are IG, Lith, and PTH. The source columns Unit and Value are also pivoted. The columns SubjID, Date, and Visit are not pivoted.
Table 4-2 Target Table in Pivot Example
SubjID | Date | Visit | IG | IG_Unit | Lith | Lith_Unit | PTH | PTH_Unit |
---|---|---|---|---|---|---|---|---|
972 |
03262112 |
5 |
853 |
mh/dl |
neg |
null |
285 |
pg/mL |
989 |
03312112 |
3 |
824 |
mh/dl |
pos |
null |
290 |
pg/mL |
Parent topic: Table transformation types
Unpivot
For details on creating an unpivot, see this video:
An unpivot converts a source table with a short, fat structure of many columns and few rows into a target table that represents the same data in a tall, skinny structure with more rows and fewer columns, based on the value in an unpivot column, which must be associated with a codelist. Unpivot transformations are used for tables where multiple columns collect the same data, such as the same assessment repeated in each section of a CRF.
To create an Unpivot transformation:
Unpivot example: Multiple observations are collected in an InForm CRF using sections rather than itemsets. A flat form is created with three sections, one section for each time point in that visit for a blood draw. In InForm this is one CRF instance and one record but the standard review data model in use requires that these be three separate records.
Metadata values, the section name in this case, should be inserted as data in the corresponding row for that section.
Certain values in the flat section—the subject ID, visit, and date—should repeat on each row. These are the nonpivoted columns and the source column must be mapped to the target column.
The Section (Sect) column in the source table is the pivot column. It is associated with a codelist containing the values 0hr, 1hr, and 2hr.
Multiple columns in the source table—for example Sect1_Test, Sect2_Test, and Sect3_Test, map to a single column in the target table: Test.
Table 4-3 Source table columns in unpivot example (short, fat table)
SubjID | Date | Visit | Sect | Sect1_Test | Sect1_Unit | Sect1_Value | Sect | Sect2_Test | Sect2_Unit | Sect2_ Value | Sect | Sect3_Test | Sect3_Unit | Sect3_Value |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
509 |
01082112 |
1 |
0hr |
Hb |
gl |
8 |
1hr |
Hb |
gl |
8 |
2hr |
Hb |
gl |
9 |
598 |
02092112 |
1 |
0hr |
Hb |
gl |
8 |
1hr |
Hb |
gl |
9 |
2hr |
Hb |
gl |
10 |
613 |
02112112 |
1 |
0hr |
Hb |
gl |
9 |
1hr |
Hb |
gl |
10 |
2hr |
Hb |
gl |
10 |
The system generates a row in the target table for each value in the codelist per set of nonpivoted values (SubjID, Date, and Visit) and populates the Section column in the target table with the codelist values as shown in Table 4-4.
Table 4-4 Target table columns in unpivot example (tall, skinny table)
SubjID | Date | Visit | Section | Test | Unit | Value |
---|---|---|---|---|---|---|
509 |
01082112 |
1 |
0hr |
Hb |
gl |
8 |
509 |
01082112 |
1 |
1hr |
Hb |
gl |
8 |
509 |
01082112 |
1 |
2hr |
Hb |
gl |
9 |
598 |
02092112 |
1 |
0hr |
Hb |
gl |
8 |
598 |
02092112 |
1 |
1hr |
Hb |
gl |
9 |
598 |
02092112 |
1 |
2hr |
Hb |
gl |
9 |
613 |
02112112 |
1 |
0hr |
Hb |
gl |
9 |
613 |
02112112 |
1 |
1hr |
Hb |
gl |
10 |
613 |
02112112 |
1 |
2hr |
Hb |
gl |
10 |
Parent topic: Table transformation types
Custom
Select a Transformation Type of Custom only if you need a custom program AND it performs operations on data in such a way that it is not possible to track all data items in the source model that contributed to each data item in the target model.
Otherwise, even if you use a custom program, select the type of transformation it actually performs: join, union, pivot, or unpivot. The system then generates the code required for data lineage tracing. See How the system tracks data lineage.
Parent topic: Table transformation types
Use a custom program
For details on creating a transformation using a custom program, see this video:
If the logic you need for a table mapping is too complex to do in the user interface for generated transformations, use a custom program. For example:
-
To perform data aggregation, case statements, or complex calculations.
-
To use 1-to-many or many-to-many column mappings.
-
To call an API to set a flag on records that meet specified criteria; see the Oracle Health Sciences Life Sciences Warehouse Application Programming Interface Guide for information on APIs for Oracle LSH and DMW, and see "Sample Program that Calls the API to Set a Flag" on page 6‐9.
Tip:
If you use multiple custom programs with the same name for different target tables in the transformation, the programs must all be in the same location. In other words, they must be the same program. These conflicts can arise if the custom program is part of a template and therefore part of the study created from the template, for example.
If you reference two custom programs with the same name in different locations, installation ends with a warning and the conflicting packages are listed in the installation log file. The validation process, which must be run before installation, marks all mappings with conflicting package names as Invalid in the UI, and gives the full path for each. You must resolve the conflicts and reinstall the transformation before execution can succeed.
You must create custom programs in LSH. See Create custom programs.
Parent topic: Set up data transformations
Install a transformation
After creating or modifying a transformation, you must install it to make it usable.
Note:
Before installing a transformation for the first time, check if another user has checked out the target model and if so, ask that user or an administrator to check it in. The installation process checks out target tables to add auxiliary columns if they have not already been added, and cannot do so if the model is checked out by a user different from the user who is installing the transformation. The transformation installation fails.-
In the Study Configuration page, navigate to the transformation, select it, and select one of the following from the Install drop-down:
- Install upgrades all tables and programs without deleting any data.
- Full Install drops and replaces all tables and programs, deleting all
data. Full installation is not available in the Production
lifecycle.
Tip:
The options are active only if the transformation is installable:- The Version and the Installable Version must be the same.
- See Transformation installation requirements.
-
To see the updated job status in the Install Status field, click the
Refresh icon.
-
To see the log file:
-
Go to the Home page, Transformations tab.
-
From the Model drop-down list, select the source clinical data model.
-
In the Target Model pane, select the model.
-
Click the icon in the Install Job Log column in the same row.
-
See What happens during installation? for more details.
Parent topic: Set up data transformations
Upgrade transformations to synchronize with models
If there have been metadata changes in a clinical data model—for example, an increase of column length—that affect a transformation or validation check, the system sets the transformation or validation check to Upgrade Required. You must run the upgrade job to synchronize the transformation or validation check with the model.
-
If the main transformation is checked in, check it out. This automatically upgrades the main transformation and in some cases side transformations too.
-
If either the main transformation or a side transformation is checked out and its Upgrade Required flag is set to Yes, run the Upgrade job. The Upgrade job for the main transformation may automatically upgrade the side transformation or it may set the side transformation's Upgrade Required flag to Yes, in which case you must run the Upgrade job for the side transformation.
-
If columns or tables have been removed, mappings may be broken. You must fix these manually.
-
After upgrade, install the transformation. You can make other changes before installing.
Parent topic: Set up data transformations
Run transformations and view history
Parent topic: Set up data transformations
Run a transformation
To run or schedule a transformation:
Parent topic: Run transformations and view history
View run history
Transformations are displayed by the name of their target clinical data model.
-
To view table transformations, click a transformation's node.
-
To view run history and pending jobs, select a transformation in the upper pane.
-
To view log files, click the icon in the column for the type of job:
-
Log: The most recent manually submitted job.
-
Triggered Job Log: The most recent triggered job.
-
Install Job Log: The most recent installation of the transformation.
-
Parent topic: Run transformations and view history
FAQs
- Why can't I check out my transformation?
- Why can't I merge my side transformation?
- Why does it say Upgrade Required when I know the data model hasn't changed?
- I noticed the tables in the target model changed. Why?
- What happens when I mark tables and columns as Not Used?
- Can I display mappings in a spreadsheet?
- How does Automap work?
- Where are custom programs stored?
- Can I use a side model like any other model?
- Why doesn't a data load automatically trigger this transformation?
- Why can't I trigger other transformations when I run this one?
- What does this transformation validation error message mean?
Parent topic: Set up data transformations
Why can't I check out my transformation?
It may be because its target clinical data model is checked out by a different user.
Parent topic: FAQs
Why can't I merge my side transformation?
It may be because you haven't checked it in. More likely it's because someone else checked out the model-level transformation and only that person can merge side models/transformations.
Parent topic: FAQs
Why does it say Upgrade Required when I know the data model hasn't changed?
When a transformation is checked out, its target clinical data model is also checked out. But if the transformation checkout is undone, the model checkout is not automatically undone. To undo the model checkout, go to the model and undo the checkout there. Otherwise the transformation is set to Upgrade Required, and the new model version is no different from the old.
When the transformation is checked in, the target model is not automatically checked in, but the transformation is set to Upgrade Required.
Checking out the model with the transformation enables the Cascade Blinding and Cascade Masking features because blinding and masking are properties of the model and the cascade operation is done from the transformation.
Parent topic: FAQs
I noticed the tables in the target model changed. Why?
When copying transformations from another study or model, the synchronization job modifies the tables in the current model so that they match the table metadata being copied, including adding, modifying, and removing columns.
Parent topic: FAQs
What happens when I mark tables and columns as Not Used?
-
Any mappings to the table or column are deleted.
-
The transformation's status can be Complete without mapping the table or column. Completeness is required for validation and installation.
Note:
Columns populated by TMS are never included in calculating completeness even if they are marked Used.
-
Validation checks and custom listings that are dependent on a table or column marked Not Used are disabled. If you later mark the table or column as Used, you must manually reenable the validation checks and custom listings.
-
The table or column is not visible in the Listings pages.
Parent topic: FAQs
Can I display mappings in a spreadsheet?
Yes.
-
For table mappings, select Export All to Excel from the Actions drop-down in the Target Tables pane.
-
For column mappings, click the
Export All to Excel icon in the Target Columns pane.
Parent topic: FAQs
How does Automap work?
Automap uses the following matches to suggest mappings:
-
Name
-
Alias
-
Data type
-
Partial name
-
Partial alias
If you select a target table that is already mapped, the existing mapping remains.
Parent topic: FAQs
Where are custom programs stored?
All custom programs for both validation checks and transformations are stored in the DMW_UTILS domain/namespace in the database. There may be subdomains to organize the programs by therapeutic area or other logical grouping.
Parent topic: FAQs
Can I use a side model like any other model?
Side models are intended for temporary use only and have limitations:
-
Side models cannot be used as source models for other transformations.
-
If a validation check raises discrepancies on data in a side model, lineage tracing is not enabled and the discrepancies do not appear in the source model.
-
Side models are not visible in the Study Configuration page.
-
Side models and transformations cannot have a higher validation status than Development.
Parent topic: FAQs
Why doesn't a data load automatically trigger this transformation?
Set up the source model(s) to trigger:
- In the main Transformation page, click the
Add or Remove Source Model icon.
- Select Can Trigger for each, and Save.
Parent topic: FAQs
Why can't I trigger other transformations when I run this one?
Set up triggering in the target model:
- Navigate to the target model.
- In the main Transformation page, click the
Add or Remove Source Model icon.
- Select Can Trigger for each, and Save.
Parent topic: FAQs
What does this transformation validation error message mean?
The validation error messages you may see are, in alphabetical order:
-
DME_XFMVAL_AUTH_YES_ERR: One or more source tables is blinded and the target table is not blinded. You must either set the target table's Authorize flag to Yes if you know that it will not contain any of the sensitive, blinded data from the source tables, or go back to the clinical data model and set the target table's blinding attributes appropriately. Special privileges are required for either action.
-
DME_XFMVAL_COL_DATATYPE_ERR: The data type of the source and target columns must be the same.
-
DME_XFMVAL_COL_LEN_TRUNC_ERR: To prevent data loss, the target column must have a length equal to or greater than the source columns.
-
DME_XFMVAL_COL_NOSRC_ERR: Mapping required. Add one or more source columns or specify a constant value or mark as Not Used.
-
DME_XFMVAL_COL_NOTRGT_ERR: Each column mapping must have one target column.
-
DME_XFMVAL_COL_SRC_TRGT_SAME: A column cannot be mapped to itself.
-
DME_XFMVAL_ERROR_NOT_FOUND: All mappings are valid.
-
DME_XFMVAL_MOD_CYLIC_TAB_ERR: This model has circular table mappings.
-
DME_XFMVAL_MOD_SRC_NOTFOUND: A model mapping must have at least one source model.
-
DME_XFMVAL_MOD_SRC_TRGT_SAME : A model cannot be mapped to itself.
-
DME_XFMVAL_MOD_TAB_INVALID: A model mapping must have valid table mappings.
-
DME_XFMVAL_MOD_TAB_NOTFOUND: A model mapping must have at least one table mapping.
-
DME_XFMVAL_MOD_TRGT_NOT_ONE: A model mapping must have one target model.
-
DME_XFMVAL_NOTNULLCOL_HARDCOD: Not null columns in the target table must be mapped to either a source column or a constant value.
-
DME_XFMVAL_NOTNULLCOL_NOMAPERR: Mapping required. Not null columns in the target table cannot be left unmapped.
-
DME_XFMVAL_PRMCOLS_HARDCOD: All primary key columns in the target table cannot be mapped to a constant value.
-
DME_XFMVAL_PRMCOLS_UNMAPPED: Mapping Required. All primary key columns in the target table are unmapped.
-
DME_XFMVAL_PRMCOL_HARDCOD_ERR: Primary key column in the target table cannot be mapped both to source column or to a constant value simultaneously.
-
DME_XFMVAL_PRMCOL_MAP_ERR: Primary key column in the target table must be either mapped to source column or to a constant value.
-
DME_XFMVAL_PRMCOL_NOMAPERR: Mapping Required. Primary key column in the target table cannot be left unmapped.
-
DME_XFMVAL_TAB_DIR_MULTSRC_ER: Table mappings of type Direct can have only one source table.
-
DME_XFMVAL_TAB_JOIN_ONESRC_ERR: Table mappings of type Join must have at least two source tables.
-
DME_XFMVAL_TAB_NOCOLMAP_ERR: Table mappings must have at least one column mapping.
-
DME_XFMVAL_TAB_NOSRC_ERR: Each table mapping must have at least one source table.
-
DME_XFMVAL_TAB_NOTRGT_ERR: Each table mapping must have one target table.
-
DME_XFMVAL_TAB_SRC_TRGT_SAME: A table cannot be mapped to itself.
-
DME_XFMVAL_TAB_UNION_ONESRC_ER: Table mappings of type Union must have at least two source tables.
-
DME_XFMVAL_XFORM_TYPE_ERR : Incorrect Table Map Type. It can be Direct, Join, Union, Pivot or Unpivot.
Parent topic: FAQs