SR-B66932 · Issue 334833
Indexes created on a MT system automatically contain pzTenantID column
Resolved in Pega Version 7.4
When installing PDC on a multi-tenant system the pzTenantID column is automatically added to every application table (pegaam_*). This is expected. However, the indexes contained in the schema jar were not automatically extended to contain the pzTenantID, which created the need to manually update all indexes post-install to include the pzTenantID column on the first place. A similar problem existed when updating to a newer version of PDC that contains schema changes. This has been addressed by adding MultiTenantPolicy and Import/Default concrete classes that inform DatabaseSchemaGenerator.IndexElement whether or not to include pzTenantID in the column list. During Import, pzTenantID will be added to all indexes on shared context tables. In other utilities (UAS, clone table, etc.) the column will only be added to primary key and unique indexes/constraints (existing behavior).
SR-B83849 · Issue 337067
Exception handling added for XML with invalid characters
Resolved in Pega Version 7.4
When PDC receives an Exception alert in the form of a SOAP Message from one of its monitored nodes, it parses the XML and creates a work object from it. However, if the Exception was caused by an XML with invalid characters, the Exception SOAP Alert message carried the invalid characters when arriving on AES/PDC PRSOAPServlet, causing the engine to fail in parsing the XML and generate an exception. Logic has now been added to SOAP envelope parsing to catch the exception, sanitize the payload, and then re-feed it to the parser.
SR-C445 · Issue 344716
cluster rule watch lock expires on crash
Resolved in Pega Version 7.4
If the cluster rule watch was in progress and the browser / system crashed, the rule watch became locked until the system (cluster) was restarted. In this case, the disconnect command from Req1 has an encrypted requestor ID because it is an unauthenticated requestor, leading to all String-matches failing. A hook to delete all entries in the distributed rule watch map for a given requestor during its clean up has now been added to resolve this.
SR-B90037 · Issue 340248
pyFolderID honored for SaveFileContent
Resolved in Pega Version 7.4
After customizing the out-of-the-box Activity "SaveFileContent" by setting the property "pyFolderID," all attachments were stored in the Documentum root folder instead of the specified folder. This was traced to a code error that bypassed setting the parameter, and has been fixed.
INC-146098 · Issue 633722
Keyboard shortcuts work in Decision Trees
Resolved in Pega Version 8.3.6
Keyboard short cuts in Decision Trees used to copy/paste by holding ctrl button in Decision Trees were not working. This was an unintended side effect related to changing non-auto grid to an auto-generated hierarchical table to make the Decision tree rule form multi-browser compatible, and has been resolved by adding cut/copy/paste/insert-after/insert-before functionality to the decision tree context menu.
INC-151662 · Issue 626576
Handling added for application which includes production ruleset
Resolved in Pega Version 8.3.6
When creating the Email channel or Webchat channel, the Text Analyzer and its respective class (Data-Decision-Request-MCP-WebChat-xxxxx) was being saved in the ruleset of the built-on application while there were rulesets open in the top application. This was a missed use case, and has been resolved byupdating the logic to account for the scenario where an application includes a production ruleset.
INC-164944 · Issue 636290
Logic updated to handle decision trees over 64k
Resolved in Pega Version 8.3.6
An exception was thrown when decision trees reached the 64K size limit. This has been resolved by modifying the logic in the DecisiontableMethodBody Rule-Utility-Function where the split size PropRowLimit is based on the number of columns.
INC-169112 · Issue 647080
Decision Trees refresh after updating a new row
Resolved in Pega Version 8.3.6
Updating a decision tree row did not display the updated data until after save and refresh. This was traced to the first row not meeting the condition for refresh on change because the first row was created as part of the decision tree creation, so the data was not persisted and the update was not registered as a change. This has been resolved by adding explicit handling for the first row to persist its expression string and show the data as entered.