Question
Pegasystems Inc.
US
Last activity: 30 Nov 2023 9:08 EST
How to add Columns to Seed List
The columns on the seed list seem to pull from the Customer table but not all columns from the customer table are on the seed list. I currently have full name on the seed list and need first name. First Name is on the Customer table.
If I export and add the column to the .csv then import, pega shows all fields mapped correctly (green checks) and successfully validates but the column does not show on the seed list. If I add data(rows) and import it successfully validates but shows "a database exception occurred" and the rows fail.
How are the columns configured?
-
Reply
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
Pegasystems Inc.
US
There is a report definition SeedListPopulationRD that holds the columns. I can add the property to the column source there and it shows on all the seed lists so this appears to be how it is done. However, after adding the column, the previously created seed lists no longer show their rows of data. This seems to break the lists as the export function also no longer works. If I delete the updated rule all the data returns and everything works.
The ootb seedlist class is extended and updating with the desired property on the SeedListPopulationRD gives the warning the pyFirstName property already on the customer table needs to be optimized.
Seedlist class and seedlist table are built based on the External Mappings tab of the custom customer class. The client's customer table has a .pyFirstName column so reports in TDDB-Data-Customer can access .pyFirstName but no such column was created in table MKT_Seedlist / class PegaMKT-Data-SeedList-CE_Seedlist. We were able to create the column by opening a new ruleset version, adding .pyFirstName to the customer rule-obj-class, saving it, then manually running activity PegaMKT-Data-Seedlist*UpdateMappings which re-read the class definition and iteratively called pzOptimizeAProperty to create a column for every property listed on the external mappings of the class record.
This allowed the column to be saved on the RD without the error and the seedlist now works.
There is a report definition SeedListPopulationRD that holds the columns. I can add the property to the column source there and it shows on all the seed lists so this appears to be how it is done. However, after adding the column, the previously created seed lists no longer show their rows of data. This seems to break the lists as the export function also no longer works. If I delete the updated rule all the data returns and everything works.
The ootb seedlist class is extended and updating with the desired property on the SeedListPopulationRD gives the warning the pyFirstName property already on the customer table needs to be optimized.
Seedlist class and seedlist table are built based on the External Mappings tab of the custom customer class. The client's customer table has a .pyFirstName column so reports in TDDB-Data-Customer can access .pyFirstName but no such column was created in table MKT_Seedlist / class PegaMKT-Data-SeedList-CE_Seedlist. We were able to create the column by opening a new ruleset version, adding .pyFirstName to the customer rule-obj-class, saving it, then manually running activity PegaMKT-Data-Seedlist*UpdateMappings which re-read the class definition and iteratively called pzOptimizeAProperty to create a column for every property listed on the external mappings of the class record.
This allowed the column to be saved on the RD without the error and the seedlist now works.
There was a button that would add the columns to the seedlist by rebuilding the class structure and overriding the RD according to one version of documentation that was found but all inquires and searches for this button came up dry. I believe it was removed in somewhat recent versions.
Updated: 25 Oct 2023 10:51 EDT
Pegasystems Inc.
US
I have found the Report Definition SeedListPopulationRD and am updating the column and optimizing the property. This update seems to add the column to the seedlists but all the rows from all the seed lists will no longer show with the updated rule. If I delete it they all come back.
Updated: 25 Oct 2023 12:29 EDT
Pegasystems Inc.
GB
@AlexanderNelson For Pega 8.8 it is documented under Updating a seed list.
For 8.6 I did not find anything specific. I did find Known issues in Pega Customer Decision Hub for Financial Services 8.5
Updated MKTWithdrawRuleInGivenVersion to only call AddAuditResultsMessage if we have an AuditPage. When UpdateSeedListMappingsForContext is called directly (as we would instruct in this scenario), then this would fail. Also updated UpdateSeedListReportDefinition to handle the WARN activity status set by pxUpdateRecord when it is creating the RD. This known behavior from pxUpdateRecord was causing the manual run of UpdateSeedListMappingsForContext to fail even with the first fix because of this warning..
After updating from 8.5 to 8.8, that UpdateSeedListMappingsForContext can be run successfully to fix the SeedList class inheritance
@AlexanderNelson For Pega 8.8 it is documented under Updating a seed list.
For 8.6 I did not find anything specific. I did find Known issues in Pega Customer Decision Hub for Financial Services 8.5
Updated MKTWithdrawRuleInGivenVersion to only call AddAuditResultsMessage if we have an AuditPage. When UpdateSeedListMappingsForContext is called directly (as we would instruct in this scenario), then this would fail. Also updated UpdateSeedListReportDefinition to handle the WARN activity status set by pxUpdateRecord when it is creating the RD. This known behavior from pxUpdateRecord was causing the manual run of UpdateSeedListMappingsForContext to fail even with the first fix because of this warning..
After updating from 8.5 to 8.8, that UpdateSeedListMappingsForContext can be run successfully to fix the SeedList class inheritance
This might not be relevant for your scenario. You may also want to check details about BUG-802578 relating to the context dictionary save. For that example, issue seem to be InboundPrimaryData data flow which composes the OutboundPrimaryData.
If you feel that it is not behaving as documented I would suggest that you should lot a support incident via the MSP.
Please provide the INC id here to help us track it.
Pegasystems Inc.
IN
@AlexanderNelson When you say "First Name is on the Customer table", are you saying the column exists on the RDBMS table or is there a property with the name FirstName mapped to a column. This mapping needs to be present on the Customer Class definition's External Mappings tab. If the mapping does exist, then the SeedList report definition will not be able to pull the data for that column. Please check the customer class definition and add the mapping to External mappings tab and also save both the class definition and it associated Data-Admin-DB-Table instance for it to take effect.
After adding to the external mapping on the class definition, you can add the property to the SeedList report definition. Else you can run the activity UpdateSeedListMappingsForContext by passing in the needed params.
Accepted Solution
Pegasystems Inc.
US
There is a report definition SeedListPopulationRD that holds the columns. I can add the property to the column source there and it shows on all the seed lists so this appears to be how it is done. However, after adding the column, the previously created seed lists no longer show their rows of data. This seems to break the lists as the export function also no longer works. If I delete the updated rule all the data returns and everything works.
The ootb seedlist class is extended and updating with the desired property on the SeedListPopulationRD gives the warning the pyFirstName property already on the customer table needs to be optimized.
Seedlist class and seedlist table are built based on the External Mappings tab of the custom customer class. The client's customer table has a .pyFirstName column so reports in TDDB-Data-Customer can access .pyFirstName but no such column was created in table MKT_Seedlist / class PegaMKT-Data-SeedList-CE_Seedlist. We were able to create the column by opening a new ruleset version, adding .pyFirstName to the customer rule-obj-class, saving it, then manually running activity PegaMKT-Data-Seedlist*UpdateMappings which re-read the class definition and iteratively called pzOptimizeAProperty to create a column for every property listed on the external mappings of the class record.
This allowed the column to be saved on the RD without the error and the seedlist now works.
There is a report definition SeedListPopulationRD that holds the columns. I can add the property to the column source there and it shows on all the seed lists so this appears to be how it is done. However, after adding the column, the previously created seed lists no longer show their rows of data. This seems to break the lists as the export function also no longer works. If I delete the updated rule all the data returns and everything works.
The ootb seedlist class is extended and updating with the desired property on the SeedListPopulationRD gives the warning the pyFirstName property already on the customer table needs to be optimized.
Seedlist class and seedlist table are built based on the External Mappings tab of the custom customer class. The client's customer table has a .pyFirstName column so reports in TDDB-Data-Customer can access .pyFirstName but no such column was created in table MKT_Seedlist / class PegaMKT-Data-SeedList-CE_Seedlist. We were able to create the column by opening a new ruleset version, adding .pyFirstName to the customer rule-obj-class, saving it, then manually running activity PegaMKT-Data-Seedlist*UpdateMappings which re-read the class definition and iteratively called pzOptimizeAProperty to create a column for every property listed on the external mappings of the class record.
This allowed the column to be saved on the RD without the error and the seedlist now works.
There was a button that would add the columns to the seedlist by rebuilding the class structure and overriding the RD according to one version of documentation that was found but all inquires and searches for this button came up dry. I believe it was removed in somewhat recent versions.