This appendix describes the app_segment_rule.xsd and mapping_rules.xsd XML schema files. XML files based on these XML validation schemas define mapping rules that control the physical to logical mapping behavior for ADF data source objects.
This appendix contains the following sections:
The XML schema file app_segment_rule.xsd contains mapping rules that define the physical table to logical table mapping. This section provides an annotated version of the app_segment_rule.xsd XML schema file.
Example H-1 app_segment_rule.xsd
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="alias_t"> <xs:attribute name="aliasTableName" type="xs:string" use="required" /> </xs:complexType> <xs:complexType name="aliasTableList_t"> <xs:sequence> <xs:element name="AliasTable" type="alias_t" minOccurs="1" maxOccurs= "unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="subjectArea_t"> <xs:attribute name="subjectAreaName" type="xs:string" use="required" /> <xs:attribute name="table" type="xs:string" use="optional" /> </xs:complexType> <xs:complexType name="subjectAreaList_t"> <xs:sequence> <xs:element name="OTBISubjectArea" type="subjectArea_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="columnmapping_t"> <!-- voColumnName specifies the ADF view object column name --> <xs:attribute name="voColumnName" type="xs:string" use="required" /> <!-- logicalDimColumnName specifies the logical column name --> <xs:attribute name="logicalDimColumnName" type="xs:string" use="required" /> </xs:complexType> <xs:complexType name="columnMappingsList_t"> <xs:sequence> <!-- ColumnMapping specifies the set of column mappings --> <xs:element name="ColumnMapping" type="columnmapping_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="tableName_t"> <xs:attribute name="name" type="xs:string" /> </xs:complexType> <xs:complexType name="relatedLogicalTablesList_t"> <xs:sequence> <xs:element name="LogicalTable" type="tableName_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <!-- Base VO to which DFF alias needs to be joined. --> <xs:complexType name="joinWith_t"> <xs:attribute name="voName" type="xs:string" use="required"/> </xs:complexType> <!-- Logical Dimension to which DFF alias needs to be mapped. --> <xs:complexType name="mapTo_t"> <xs:attribute name="logTabName" type="xs:string" use="required"/> </xs:complexType> <!-- Specifies DFF alias name. --> <xs:complexType name="createAlias_t"> <xs:sequence> <xs:element name="JoinWith" type="joinWith_t" minOccurs="1" maxOccurs="unbounded"/> <xs:element name="MapTo" type="mapTo_t" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> <!-- Specifies DFF alias name. --> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> <!-- Specifies set of LTSes. --> <xs:complexType name="ltsObject_t"> <xs:attribute name="ltsName" type="xs:string"/> </xs:complexType> <xs:complexType name="ltsObjects_t"> <xs:sequence> <xs:element name="Lts" type="ltsObject_t" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="labelToDimMap_t"> <xs:sequence> <!-- For mapping the _ and _c suffixed value and value set columns in the code, combine flattened fact view objectS corresponding to the segment mapped to the logical table --> <xs:element name="FlattenedFlexVOColumnMappings" type="columnMappingsList_t" minOccurs="0" maxOccurs="1" /> <!-- TableSpecificColumnMappingOverrides is for future use --> <xs:element name="TableSpecificColumnMappingOverrides" type="columnMappingsList_t" minOccurs="0" maxOccurs="1" /> <!-- TableSpecificOTBISubjectAreas specifies the Oracle Transactional Business Intelligence subjects areas. The unqualified segment Logical Tables Dim - GL Segment 1 - 10 are dragged to these subject areas. For other use cases, specify your own repository subject areas. --> <xs:element name="TableSpecificOTBISubjectAreas" type="subjectAreaList_t" minOccurs="0" maxOccurs="1" /> <!-- DFFBaseVOAliases specifies the alias view objects of the base view object mapped to the same logical table. For each of these view objects, the Administration Tool creates an alias of the DFF view object and joins it to the base view object alias. --> <xs:element name="DFFBaseVOAliases" type="aliasTableList_t" minOccurs="0" maxOccurs="1" /> </xs:sequence> <!-- RelatedLogicalTables specifies the list of logical tables to which the DFF view object must be mapped in addition to the logical table mentioned in the logicalDimTableName attribute. --> <xs:element name="RelatedLogicalTables" type="relatedLogicalTablesList_t" minOccurs="0" maxOccurs="1" /> <!-- Use this tag to create an alias of the VO, join it with several other VOs, and map to a specified set of logical tables--> <xs:element name="CreateAlias" type="createAlias_t" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- segmentLabelName is for future use --> <xs:attribute name="segmentLabelName" type="xs:string" use="optional" /> <!-- logicalDimTableName specifies the logical table to which the ADF view object is mapped. ADF database properties contain the mapping between the ADF view object ("BIObject_'ADF VO Name'") and logical table mentioned here. --> <xs:attribute name="logicalDimTableName" type="xs:string" use="required" /> <!-- In role playing dimensions, the logical table specified in the roleMasterLogicalTableName attribute is used as the master logical table. Whenever the master logical table is mapped to a view object, the alias of this view object is created and joined to the table referenced in the flattenedFlexVORoleAlias attribute. The alias table name is "{ADF_VO_Name}_{Role_Playing_Logical_Table_ Name}". Logical columns are mapped to the columns of this alias table. --> <xs:attribute name="roleMasterLogicalTableName" type="xs:string" use="optional" /> <!-- flattenedFlexVORoleAlias specifies the flattened view object alias that needs to be joined with the role playing view object alias table. --> <xs:attribute name="flattenedFlexVORoleAlias" type="xs:string" use="optional" /> </xs:complexType> <!-- The root element for the mapping rule document --> <xs:complexType name="mappingRules_t"> <xs:sequence> <!-- List of LTSes to be Disabled --> <xs:element name="LTSToBeDisabled" type="ltsObjects_t" minOccurs="0" maxOccurs="1"/> <!-- GlobalColumnMappings is for future use --> <xs:element name="GlobalColumnMappings" type="columnMappingsList_t" minOccurs="0" maxOccurs="1" /> <!-- GlobalOTBISubjectAreas specifies the Oracle Transactional Business Intelligence subject areas. The unqualified segment Logical Tables Dim - GL Segment 1 - 10 are dragged to these subject areas. The rules specified here apply to all logical tables. For other use cases, specify your own subject areas. --> <xs:element name="GlobalOTBISubjectAreas" type="subjectAreaList_t" minOccurs="0" maxOccurs="1" /> <!-- LabelToDimensionMappings specifies the rules for a logical table --> <xs:element name="LabelToDimensionMappings" type="labelToDimMap_t" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <!-- appName is the ADF Module Name from where the ADF view objects are imported. It is also used as a key for reading the properties from the ADF database. It is sometimes known as the Category or Module Name. --> <xs:attribute name="appName" type="xs:string" use="required" /> <!-- businessModelName specifies the business model in the Business Model and Mapping layer. The ADF view objects are mapped to the logical tables in this business model. The default business model is "Core." --> <xs:attribute name="businessModelName" type="xs:string" default="Core" use="optional" /> <!-- flattenedFlexLogicalTable specifies the logical table to which the flattened fact view object for the KFF needs to map --> <xs:attribute name="flattenedFlexLogicalTable" type="xs:string" use="optional" /> <!-- Determines whether VOs under this AM needs to be submitted for ETL extension --> <xs:attribute name="isETLSupported" type="xs:boolean" use="optional"/> <!-- Specifies the unqualified Dimension Prefix for the AM --> <xs:attribute name="unqualifiedDimensionPrefix" type="xs:string" use="optional"/> </xs:complexType> <!-- This is the actual element declaration for the entire Document. --> <xs:element name="document"> <xs:complexType> <xs:sequence> <!-- MappingRules specifies the set of rules. --> <xs:element name="MappingRules" type="mappingRules_t" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
This section provides an example of an app_segment_rules_*.xml file, based on the validation rules contained in app_segment_rules.xsd. Note that the actual file has been shortened.
Example H-2 app_segment_rules_*.xml example
<?xml version="1.0" encoding="UTF-8" ?> <document> <!-- Begin Finance --> <MappingRules appName="FscmTopModelAM.AccountBIAM" businessModelName="Core" flattenedFlexLogicalTable="Dim - GL Account"> <GlobalOTBISubjectAreas> <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" /> <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real Time" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time" /> ... </GlobalOTBISubjectAreas> <LabelToDimensionMappings logicalDimTableName="Dim - Balancing Segment"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Balancing Segment Code" /> <ColumnMapping voColumnName="_c" logicalDimColumnName="Balancing Segment Value Set Code" /> </FlattenedFlexVOColumnMappings> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" table="- Balancing Segment" /> <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time" table="Balancing Segment" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real Time" table="- Balancing Segment" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table= "- Balancing Segment" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time" table="Balancing Segment" /> ... </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Dim - Cost Center"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Cost Center Segment Code" /> <ColumnMapping voColumnName="_c" logicalDimColumnName="Cost Center Segment Value Set Code" /> </FlattenedFlexVOColumnMappings> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" table="- Cost Center Segment" /> <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time" table="Cost Center Segment" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real Time" table="- Cost Center" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table="- Cost Center" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time" table="Cost Center" /> ... </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Dim - Natural Account Segment"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Natural Account Segment Code" /> <ColumnMapping voColumnName="_c" logicalDimColumnName="Natural Account Segment Value Set Code" /> </FlattenedFlexVOColumnMappings> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" table="- Natural Account Segment" /> <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time" table="Natural Account Segment" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real Time" table="- Natural Account" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table= "- Natural Account" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time" table="Natural Account" /> ... </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Dim - GL Segment1"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Account Segment1 Code" /> <ColumnMapping voColumnName="_c" logicalDimColumnName="Account Segment1 Value Set Code" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Dim - GL Segment2"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Account Segment2 Code" /> <ColumnMapping voColumnName="_c" logicalDimColumnName="Account Segment2 Value Set Code" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> ... <LabelToDimensionMappings logicalDimTableName="Dim - AP Account Balancing Segment" roleMasterLogicalTableName="Dim - Balancing Segment" flattenedFlexVORoleAlias="Dim_FLEX_BI_ Account_VI_APAccount"> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real Time" table="- Distribution Balancing Segment Value" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table="- Distribution Balancing Segment Value" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Dim - AP Account Cost Center" roleMasterLogicalTableName="Dim - Cost Center" flattenedFlexVORoleAlias="Dim_FLEX_BI_ Account_VI_APAccount"> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real Time" table="- Distribution Cost Center Segment Value" /> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table="- Distribution Cost Center Segment Value" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> ... </MappingRules> <MappingRules appName="FscmTopModelAM.LocationBIAM" businessModelName="Core" flattenedFlexLogicalTable="Dim - Asset Location"> <LabelToDimensionMappings logicalDimTableName="Segment1"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Segment1" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Segment2"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Segment2" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> ... </MappingRules> <MappingRules appName="FscmTopModelAM.CategoryBIAM" businessModelName="Core" flattenedFlexLogicalTable="Dim - Asset Category"> <LabelToDimensionMappings logicalDimTableName="Segment1"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Segment1" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Segment2"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Segment2" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> ... <LabelToDimensionMappings logicalDimTableName="Major Category"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Major Category" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Minor Category"> <FlattenedFlexVOColumnMappings> <ColumnMapping voColumnName="_" logicalDimColumnName="Minor Category" /> </FlattenedFlexVOColumnMappings> </LabelToDimensionMappings> </MappingRules> ... <MappingRules appName="FscmTopModelAM.ExternalTransactionBIAM" businessModelName="Core" flattenedFlexLogicalTable=""> <!-- Use the below tag if you want any one of the following use cases for the "base logical table" your DFF is mapped to in ATG --> <!-- (a) need to expose the base logical table DFF attributes to specific presentation subject area and table --> <!-- (b) you have additional VO aliases mapped to the base logical table in addition to the base VO itself --> <!-- (c) you have additional "related logical tables" that you want automapped when the base logical table is mapped in ATG --> <LabelToDimensionMappings logicalDimTableName="Dim - CE External Cash Transaction Details"> <!-- Use the below tag to indicate the presentation subject area and table where the DFF attributes need to be exposed --> <!-- Repeat the OTBISubjectArea tag to expose them in multiple subject areas or tables --> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Cash Management - External Cash Transactions Real Time" table="External Cash Transaction Detail" /> </TableSpecificOTBISubjectAreas> <!-- Use the below tag to give the VO alias names, if any, that are mapped to the base logical table in addition to the base VO --> <!-- Repeat the AliasTable tag if you have multiple VO aliases --> <DFFBaseVOAliases> <AliasTable aliasTableName="Fact_ExternalTransactionsPVO_JournalEntryLine" /> </DFFBaseVOAliases> </LabelToDimensionMappings> </MappingRules> ... <MappingRules appName="FscmTopModelAM.CalendarTypeDFFBIAM" businessModelName="Core" flattenedFlexLogicalTable=""> ... <LabelToDimensionMappings logicalDimTableName="Dim - Date Fixed Assets Calendar"> ... <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Transactions Real Time" table="Transaction Effective Date" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> <!-- Use the below tag if you have any "role-playing logical tables" for the base logical table. --> <LabelToDimensionMappings logicalDimTableName="Dim - Date Placed in Service Fixed Asset Calendar" roleMasterLogicalTableName="Dim - Date Fixed Assets Calendar" flattenedFlexVORoleAlias="Dim_CalendarDayPVO_DatePlacedInService"> <!-- Use the below tag to indicate the presentation subject area and table where the DFF attributes from the role-playig logical table need to be exposed --> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Financial Information Real Time" table="Date Placed in Service" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> <LabelToDimensionMappings logicalDimTableName="Dim - Transaction Date Fixed Asset Calendar" roleMasterLogicalTableName="Dim - Date Fixed Assets Calendar" flattenedFlexVORoleAlias="Dim_ CalendarDayPVO_TransactionDate"> <!-- Use the below tag to indicate the presentation subject area and table where the DFF attributes from the role-playig logical table need to be exposed --> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Assignments Real Time" table="Transaction Date" /> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Financial Information Real Time" table="Transaction Date" /> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Retirements and Reinstatements Real Time" table="Transaction Date" /> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Transactions Real Time" table="Transaction Date" /> <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Transfer Real Time" table="Transaction Date" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> ... </MappingRules> ... <!-- Rule file for AP_TERMS_B --> <MappingRules appName="FscmTopModelAM.PaymentTermHeaderDffBIAM" businessModelName="Core" flattenedFlexLogicalTable=""> <LabelToDimensionMappings logicalDimTableName="Dim - AP Terms"> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table= "- Header Information" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> </MappingRules> <!-- Rule file for AP_PAYMENT_SCHEDULES --> <MappingRules appName="FscmTopModelAM.InstallmentsDffBIAM" businessModelName="Core" flattenedFlexLogicalTable=""> <LabelToDimensionMappings logicalDimTableName="Dim - AP Payment Schedule Details"> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Payables Invoices - Installments Real Time" table="Invoices Installment Details" /> </TableSpecificOTBISubjectAreas> <DFFBaseVOAliases> <AliasTable aliasTableName="Fact_InvoicePaymentSchedulePVO_Disbursement" /> </DFFBaseVOAliases> </LabelToDimensionMappings> </MappingRules> ... <!-- Rule file for DFF AP_HOLDS --> <MappingRules appName="FscmTopModelAM.HoldsDffBIAM" businessModelName="Core" flattenedFlexLogicalTable=""> <LabelToDimensionMappings logicalDimTableName="Dim - AP Hold Details"> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Payables Invoices - Holds Real Time" table="Invoices Hold Details" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> </MappingRules> <!-- End Finance --> <!-- Rule file for JobAM EFF --> </MappingRules> <MappingRules appName="HcmTopModelAnalyticsGlobalAM.JobAM.PER_JOBS_LEG_EFF" businessModelName="Core" flattenedFlexLogicalTable=""> <LabelToDimensionMappings logicalDimTableName="Dim - Job"> <TableSpecificOTBISubjectAreas> <OTBISubjectArea subjectAreaName="Workforce Management - Worker Assignment Real Time" table="Job" /> </TableSpecificOTBISubjectAreas> </LabelToDimensionMappings> </MappingRules> ... </document>
The XML schema file mapping_rules.xsd contains mapping rules that define the physical column to logical column mapping. This section provides an annotated version of the mapping_rules.xsd XML schema file.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- This XML validation schema defines data extensibility rules that determine how objects imported at the Physical layer are mapped to the Business Model and Mapping layer. --> <xs:simpleType name="yes_no_t"> <xs:restriction base="xs:string"> <xs:enumeration value="yes" /> <xs:enumeration value="no" /> </xs:restriction> </xs:simpleType> <!-- Description of one mapping --> <xs:complexType name="mapping_t"> <!-- The source attribute specifies the physical ADF view object column --> <xs:attribute name="source" type="xs:string" use="required" /> <!-- The target attribute specifies the target logical column suffix or complete name --> <xs:attribute name="target" type="xs:string" use="required" /> <!-- The addprefix attribute specifies whether or not the prefix specified in the "rule" must be prefixed with the target to get the logical table column name before performing the mapping --> <xs:attribute name="addprefix" type="yes_no_t" default="no" use="optional" /> </xs:complexType> <xs:complexType name="rule_t"> <xs:sequence> <!-- List of mappings that define the rule --> <xs:element name="mapping" type="mapping_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> <!-- The name attribute specifies the rule name. This name is used by the instance to specify which rule to apply. --> <xs:attribute name="name" type="xs:string" use="required" /> </xs:complexType> <xs:complexType name="rules_t"> <xs:sequence> <!-- Each rule defines the source (physical) to target (logical) mapping. It is used by the Import Metadata Wizard during the Physical to Logical Mapping phase. Each mapping in a rule can specify whether the default prefix for an instance should be added. --> <xs:element name="rule" type="rule_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="apply_t"> <!-- The rule attribute specifies which rule to apply for the logical table mentioned in the instance. --> <xs:attribute name="rule" type="xs:string" use="required" /> <!-- The prefix attribute specifies the string that might or might not be prepended when performing the mapping between the ADF view object column and the logical table column. --> <xs:attribute name="prefix" type="xs:string" default="" use="optional" /> </xs:complexType> <xs:complexType name="instance_t"> <xs:sequence> <!-- apply specifies what rule to apply to the logical table --> <xs:element name="apply" type="apply_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> <!-- The logicaltable attribute specifies the logical table to which the rule is applied --> <xs:attribute name="logicaltable" type="xs:string" use="required" /> </xs:complexType> <xs:complexType name="instances_t"> <xs:sequence> <!-- Each instance is associated with a single logical table. It applies any number of rules, with an optional prefix. The rules are applied in order. Note that the prefix includes a space at the end. It merely concatenates with the target logical column to determine the right logical column to map to. --> <xs:element name="instance" type="instance_t" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> <!-- appName is the ADF Module Name from which ADF view objects are imported --> <xs:attribute name="appName" type="xs:string" /> </xs:complexType> <!-- The document element is the element declaration for the entire document --> <xs:element name="document"> <xs:complexType> <xs:sequence> <!-- The rules element specifies the set of rules --> <xs:element name="rules" type="rules_t" minOccurs="1" maxOccurs="1" /> <!-- The instances element specifies the set of instances related to a single ADF module. --> <xs:element name="instances" type="instances_t" minOccurs="1" maxOccurs="1" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
This section provides an example of a mapping_rules_*.xml file, based on the validation rules contained in mapping_rules.xsd. Note that the actual file has been shortened.
Example H-4 mapping_rules_*.xml
<?xml version="1.0" encoding="UTF-8" ?> <document> <rules> <!-- Each Rule defines the source (physical) to target (logical) mapping. It is used by the Import Metadata Wizard during the Physical to Logical Mapping phase. Each mapping in a rule can specify whether it should add the default prefix for an instance. --> <rule name="GL Segment Tree Rule"> <mapping source="TreeCode" target="Tree Code" addprefix="no" /> <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> <mapping source="VersionName" target="Tree Version Name" addprefix="no" /> <mapping source="Dep0Pk2Value" target="Segment Value Set Code" addprefix="yes" /> <mapping source="Dep0Value" target="Segment Code" addprefix="yes" /> <mapping source="Dep0Description" target="Segment Description" addprefix="yes" /> <mapping source="Dep1Value" target="Level 1 Code" addprefix="yes" /> <mapping source="Dep1Description" target="Level 1 Description" addprefix="yes" /> <mapping source="Dep2Value" target="Level 2 Code" addprefix="yes" /> <mapping source="Dep2Description" target="Level 2 Description" addprefix="yes" /> <mapping source="Dep3Value" target="Level 3 Code" addprefix="yes" /> <mapping source="Dep3Description" target="Level 3 Description" addprefix="yes" /> ... <mapping source="Distance" target="Fixed Hierarchy Level" addprefix="no" /> <mapping source="VersionEffectiveStartDate" target="Effective From" addprefix="no" /> <mapping source="VersionEffectiveEndDate" target="Effective To" addprefix="no" /> </rule> <rule name="GL Segment Non-Tree Rule"> <mapping source="Value" target="Segment Code" addprefix="yes" /> <mapping source="ValueSetCode" target="Segment Value Set Code" addprefix="yes" /> <mapping source="Description" target="Segment Description" addprefix="yes" /> </rule> <rule name="Qualified Segment Tree Rule"> <mapping source="TreeCode" target="Tree Code" addprefix="no" /> <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> <mapping source="VersionName" target="Tree Version Name" addprefix="no" /> <mapping source="Dep0Pk2Value" target="Value Set Code" addprefix="yes" /> <mapping source="Dep0Value" target="Code" addprefix="yes" /> <mapping source="Dep0Description" target="Description" addprefix="yes" /> <mapping source="Dep1Value" target="Level 1 Code" addprefix="yes" /> <mapping source="Dep1Description" target="Level 1 Description" addprefix="yes" /> <mapping source="Dep2Value" target="Level 2 Code" addprefix="yes" /> <mapping source="Dep2Description" target="Level 2 Description" addprefix="yes" /> <mapping source="Dep3Value" target="Level 3 Code" addprefix="yes" /> <mapping source="Dep3Description" target="Level 3 Description" addprefix="yes" /> ... <mapping source="Distance" target="Fixed Hierarchy Level" addprefix="no" /> <mapping source="VersionEffectiveStartDate" target="Effective From" addprefix="no" /> <mapping source="VersionEffectiveEndDate" target="Effective To" addprefix="no" /> <mapping source="Dep0FlexValueAttribute6" target="Group Account Number" addprefix="no" /> </rule> <rule name="Qualified Segment Non-Tree Rule"> <mapping source="Value" target="Code" addprefix="yes" /> <mapping source="ValueSetCode" target="Value Set Code" addprefix="yes" /> <mapping source="Description" target="Description" addprefix="yes" /> <mapping source="FlexValueAttribute6" target="Group Account Number" addprefix="no" /> </rule> <rule name="Role Playing KFF Tree Rule 1"> <mapping source="TreeCode" target="Tree Code" addprefix="no" /> <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> <mapping source="Dep0Description" target="Description" addprefix="yes" /> <mapping source="Dep0Pk2Value" target="Value Set Code" addprefix="yes" /> <mapping source="Dep0Value" target="Code" addprefix="yes" /> <mapping source="Value" target="Code" addprefix="yes" /> <mapping source="ValueSetCode" target="Value Set Code" addprefix="yes" /> <mapping source="Description" target="Description" addprefix="yes" /> </rule> <rule name="Role Playing KFF Tree Rule 2"> <mapping source="TreeCode" target="Tree Code" addprefix="no" /> <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> <mapping source="Dep0Description" target="Desscription" addprefix="yes" /> <mapping source="Dep0Pk2Value" target="Value Set Code" addprefix="yes" /> <mapping source="Dep0Value" target="Code" addprefix="yes" /> <mapping source="Value" target="Code" addprefix="yes" /> <mapping source="ValueSetCode" target="Value Set Code" addprefix="yes" /> <mapping source="Description" target="Desscription" addprefix="yes" /> </rule> ... </rules> <instances appName="FscmTopModelAM.AccountBIAM"> <!-- Each instance is associated with the a single logical table. It applies any number of rules, with an optional prefix. The rules are applied in order. Note that the prefix includes a space at the end. It merely concatenates with the target logical column to determine the right logical column to map to. --> <instance logicaltable="Dim - Balancing Segment"> <apply rule="Qualified Segment Tree Rule" prefix="Balancing Segment" /> <apply rule="Qualified Segment Non-Tree Rule" prefix="Balancing Segment" /> </instance> <instance logicaltable="Dim - Cost Center"> <apply rule="Qualified Segment Tree Rule" prefix="Cost Center" /> <apply rule="Qualified Segment Non-Tree Rule" prefix="Cost Center" /> </instance> <instance logicaltable="Dim - Natural Account Segment"> <apply rule="Qualified Segment Tree Rule" prefix="Account" /> <apply rule="Qualified Segment Non-Tree Rule" prefix="Account" /> </instance> <instance logicaltable="Dim - GL Segment1"> <apply rule="GL Segment Tree Rule" /> <apply rule="GL Segment Non-Tree Rule" /> </instance> <instance logicaltable="Dim - GL Segment2"> <apply rule="GL Segment Tree Rule" /> <apply rule="GL Segment Non-Tree Rule" /> </instance> <instance logicaltable="Dim - GL Segment3"> <apply rule="GL Segment Tree Rule" /> <apply rule="GL Segment Non-Tree Rule" /> </instance> ... <instance logicaltable="Dim - AP Account Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" /> </instance> <instance logicaltable="Dim - AP Asset Account Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" /> </instance> <instance logicaltable="Dim - AP Pay Account Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" /> </instance> <instance logicaltable="Dim - Asset From Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 3" prefix="Asset From Balancing Segment" /> </instance> <instance logicaltable="Dim - Asset To Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 3" prefix="Asset To Balancing Segment" /> </instance> <instance logicaltable="Dim - Asset Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 3" prefix="Asset Balancing Segment" /> </instance> <instance logicaltable="Dim - Distribution Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 3" prefix="Distribution Balancing Segment" /> </instance> <instance logicaltable="Dim - SLA Balancing Segment"> <apply rule="Role Playing KFF Tree Rule 3" prefix="Balancing Segment" /> </instance> <instance logicaltable="Dim - CE Asset Balancing Segment Value"> <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" /> </instance> <instance logicaltable="Dim - CE Offset Balancing Segment Value"> <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" /> </instance> ... </instances> </document>