Select the Root Tables to Map to the Global Entity
The starting point for the abstraction layer in a GetMetadata response is the root object which is mapped to the Global entity in the policy model.
Whether a table is available for mapping to the Global entity is determined by the value of the can-be-input and can-be-output attributes of that table:
- When
can-be-input="true", the table can be input-mapped to the Global entity in the policy model. This means that:- the policy modeler can select the table for mapping in to the Global entity via the Mapping Settings dialog in Policy Modeling, and
- once mapped in, data is loaded into the interview from this table and from any child entities which are also mapped via links from this table.
- When
can-be-output="true", the table can be output-mapped from the Global entity in the policy model. This means that:- the policy modeler can select the table for mapping out from the Global entity via the Mapping Settings dialog in Policy Modeling (as either Update or Create New), and
- once mapped out, all attributes and child entities which are also mapped via links from this table will have their values sent out in save requests from the interview.
It is possible for a table to have both can-be-input="true" and can-be-output="true". In other words, the same table can be input-mapped to the Global entity and output-mapped (as Update) to the Global entity.
In the following example, there are only two tables which can be mapped at the global level: 'Vehicles' and 'Car Request':
<get-metadata-response xmlns="http://xmlns.oracle.com/policyautomation/hub/12.2.13/metadata/types">
<Table name="Vehicles" can-be-input="true" can-be-output="false" accepts-attachments="false">
<Link name="Cars" target="Car" cardinality="C_1M"/>
</Table>
<Table name="Car" can-be-input="false" can-be-output="false" accepts-attachments="false">
<Field name="Model" type="STRING" can-be-input="true" can-be-output="false" is-required="false"/>
<Field name="Price" type="DECIMAL" can-be-input="true" can-be-output="false" is-required="false"/>
<Field name="Color" type="STRING" can-be-input="true" can-be-output="false" is-required="false"/>
</Table>
<Table name="Car Request" can-be-input="false" can-be-output="true" accepts-attachments="true">
<Field name="Request ID" type="DECIMAL" can-be-input="true" can-be-output="false" is-required="true"/>
<Field name="Selected Model" type="STRING" can-be-input="false" can-be-output="true" is-required="true"/>
<Field name="Contact Name" type="STRING" can-be-input="false" can-be-output="true" is-required="true"/>
<Link name="Customer's Phone Numbers" target="Customer's Phone Number" cardinality="C_1M"/>
</Table>
<Table name="Customer's Phone Number" can-be-input="false" can-be-output="false" accepts-attachments="false">
<Field name="Phone Number" type="STRING" can-be-input="false" can-be-output="true" ="true" is-required="true"/>
<Field name="Is Preferred Number" type="BOOLEAN" can-be-input="false" can-be-output="true" is-required="true"/>
</Table>
</get-metadata-response>
In this example, the 'Vehicles' table can be input-mapped to the Global entity in the policy model because can-be-input=true, and the 'Car Request' table can be output-mapped to the Global entity because can-be-output="true". The 'Car' table and 'Customer's Phone Number' table cannot be input or output mapped to the Global entity because can-be-input="false" and can-be-output="false".