In some cases a user may want the same Data Objects to be joined together differently. To accomplish this, Data Objects and Joins can be placed into Categories to create multiple data models. When an end user selects a Data Object from a Category it indicates which joins to use.
The following steps detail how to create multiple data models.
NOTE. Each xml tag must be closed (ex. <category> must be closed with </category>).
NOTE. The <category_name> tag - acts as a ‘folder’ to group Data Objects. Sub-‘folders’ can be created by entering the category name followed by a backslash then the sub-category name. Ex. ‘Sales\Clients’.
E.g.:
<category>
<category_name>Exago University\Advisors</category_name>
<category_id>advisorModel</category_id>
</category>
E.g.:
<entity> <entity_name>Professors</entity_name> <db_name>Professor</db_name> <category> advisorModel,classesModel</category> <datasource_id>7</datasource_id> <object_type>xmltable</object_type> <key> <col_name>ID</col_name> </key> </entity>
E.g.:
<join>
<entity_from_name>Professor</entity_from_name>
<entity_to_name>Student</entity_to_name>
<join_type>rightouter</join_type>
<relation_type>1M</relation_type>
<weight>0</weight>
<category>advisorModel</category>
<joincol>
<col_from_name>ID</col_from_name>
<col_to_name>Advisor</col_to_name>
</joincol>
</join>
The following configuration example demonstrates how three Data Objects are made available in two different relational models. In the advisorModel model Students are joined directly to Professors, while in the classesModel model Students are joined to Professors indirectly through Classes.
<category> <category_name>Exago University\Advisors</category_name> <category_id>advisorModel</category_id> </category> <category> <category_name>Exago University\Classes</category_name> <category_id>classesModel</category_id> </category>
<entity> <entity_name>Classes</entity_name> <db_name>Class</db_name> <category>advisorModel,classesModel</category> <datasource_id>7</datasource_id> <object_type>xmltable</object_type> <key> <col_name>ID</col_name> </key> </entity> <entity> <entity_name>Students</entity_name> <db_name>Student</db_name> <category> advisorModel,classesModel </category> <datasource_id>7</datasource_id> <object_type>xmltable</object_type> <key> <col_name>ID</col_name> </key>
NOTE. The Professors => Classes join is utilized by both Data Models because no <category> is set.
<join> <entity_from_name>Professor</entity_from_name> <entity_to_name>Student</entity_to_name> <join_type>rightouter</join_type> <relation_type>1M</relation_type> <weight>0</weight> <category>advisorModel</category> <joincol> <col_from_name>ID</col_from_name> <col_to_name>Advisor</col_to_name> </joincol> </join> <join> <entity_from_name>Professor</entity_from_name> <entity_to_name>Class</entity_to_name> <join_type>inner</join_type> <relation_type>1M</relation_type> <weight>0</weight> <joincol>