Extract derived class properties from your application using BIX
When using Business Intelligence Exchange (BIX), you cannot select properties in your Extract rule that are not actually in the class hierarchy at design time. This is a known limitation in BIX that requires a local change when you want to extract data from properties of derived classes. For example, Customer Process Manager for Healthcare (CPMHC) extends Data-Party to classes including -Member, -Provider, -Customer, and -Contact. You cannot directly use BIX to extract the properties in the extended classes.
You can save the Extract rule to a file, manually add the required properties to the file, and run the Extract rule by using the -I parameter. With this approach, you can extract the data that you need from your application. You can use this approach with a simple property type as well as the Page, Page List, and Page Group properties.
Follow the steps of this example:
- Create an Extract rule for pyWorkParty.
- In the Extract rule, map any of the common Data-Party properties that you need.
- Determine the target output:
- Database Schema – Run the Extract rule to generate the DDL. Because you are extracting all of the pyWorkParty properties to the same target table, you need to edit this DDL file before applying it to your target database. It contains columns for all properties from each type of work party.
- XML or CSV – Skip this step, as well as Steps 6 and 7.
- Save the Extract rule to an XML file.
Edit the XML file to add properties for each of the types of Data-Party types:
The pyMapName and pyPrecision properties are only applicable when the target output is Database Schema.
- Update the REPEATINGINDEX, pyName (property name defined within PRPC), and pyMapName (Database column name).
- Update pyPropertyMode, pyType, and pyPrecision (column length) as needed.
- Specify the pyOutputFormat for the appropriate target output: Schema, XML, or CSV.
Here is an example:
- <rowdata REPEATINGINDEX="1">
<pyTreeNodes REPEATINGTYPE="PageList" />
For a Page, Page List, or Page Group, specify the following userData properties:
<pyPropertyMode>PageList</pyPropertyMode> Page, PageList, or PageGroup
<pyPageClass>PegaSample</pyPageClass> PRPC class
<pyType>PageList</pyType> Page, PageList, or PageGroup
<pyKeyName>pyPageList_id</pyKeyName> Key to index pagegroup or pagelist
<pyOutputName>PegaSample_pyPageList</pyOutputName> Name of database table (valid for pageList and pageGroup only)
Update the DDL file that you generated in Step 3 by adding columns for all properties that you manually added in the previous step.
With this approach, all the properties from the common Data-Party class and the extended classes go into the same database table, pyWorkParty.
If you want to separate the properties by class type, you can use the pyWorkParty table as a staging table.
To split the properties into separate output tables based on work party, add database triggers on INSERT into the pyWorkParty table to insert into PARTY_CONTACT, PARTY_CUSTOMER, and so on, the appropriate columns based on the pxSubscript property.