Pega Infinity™ includes an industry-standard release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.8 Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-188469 INC-203595 |
714843 702360 |
Updated retainLock for DoClose activity | After sending an external email notification from a case, attempting to use the "close" button resulted in an access denied error. This was traced to a missed use case for recent security improvements which resulted in not setting the required parameter retainLock for the DoClose activity, and has been resolved. | Case Management |
INC-192673 | 689552 | Tab highlighting updated | Not all elements were indicated with yellow highlighting when tabbing through the screen. This has been resolved. | Case Management |
INC-194180 | 704636 | GetChildcases handling updated for large numbers of cases | When a very high number of child cases being processed contained a wait shape that was dependent on the movement of a parent case, some of the cases were moved to the next step of the flow automatically while others required a manual command to ResumeFlow. In extreme cases where many child cases were waiting, a node crash could occur. This was traced to the pzGetChildcases report having a maximum value of 500 lines, and has been resolved by increasing the maximum number of rows to retrieve to 9999 in the Data Access Tab of the pzGetChildCases report definition. In addition, the pxCheckFlowDependencies activity has been modified to perform with a higher number of cases, and DSS(MaxRecords) logic has been added to split the child cases into multiple queue items for each access group to decrease load on each thread process. | Case Management |
INC-201723 | 719854 | Audit message displays correct parameter value | The Audit message showed "{1}" instead of displaying the parameter value dynamically. This was traced to the pyInstructions field value which contained the message "Please approve or reject this {1}", and has been resolved by updating the pzInstructionsForApproval rule so the correct value is displayed. | Case Management |
INC-207218 | 706367 | Check added to prevent duplicate approval by single agent | When using a cascading Approvals process supported both by a web access button or by responding via email, a single agent could use both methods and advance a case an additional step as if they were the next approval level. This was due to the system only checking the pzInsKey when processing the approval while the assignment key will be the same for the cascading approvals assignments. This has been resolved by introducing a datetime check to validate if the email approval assignment creation datetime and the one in the database have same value; if yes the approval process will proceed and if not it will exit. | Case Management |
INC-207996 | 709665 | Check added for parent case dependency if deferred-save is used | After updating the status of a parent case to "Pending-ChildCaseDependency", the wait shape for the child case that should have been triggered by the status did not work and the child case remained on hold. This was a missed use case for the pxCheckFlowDependencies activity where defer-save operations on Index-AssignDeps class was not considered, and may happen when the Queue Processor is evaluating the dependencies while instances to Index-AssignDeps are not committed yet. To resolve this, code has been added to check the entry of the parent case dependency in deferred-save if its not present in Index-AssignmentDeps table. | Case Management |
INC-208394 | 713553 | Error handling updated for Data-Work-Attach-File | If a file is uploaded which has the same name as an existing case attachment or if any issue happens during file attachment, the attachment will fail and an error message is displayed with an option to cancel the operation. However, even if the upload was not successful the related Data-WorkAttach-File instance was created and persisted in the Workattach table. Investigation showed this was caused by the process for persisting the Data-WorkAttach-File record occurring prior to the process that returns the errors, and this has been resolved. | Case Management |
INC-209404 | 710408 | MultiFilePath supports file upload with leading special character | Updates have been made to the pzMultiFilePath control in order to support uploading a file with a special character such as "%" at the beginning of the name. | Case Management |
INC-210680 | 712073 | Updated logic for setting param.PrimaryPage in transfer | TransferAssignment was failing intermittently when doing routing either by background processing or manual transfer. Investigation showed this was caused by a null param.PrimaryPage value which resulted in a NullStepPage exception. This has been resolved by adding a Property-Set method just before calling the activity pxTransferAssignment. In addition, the "Require authentication to run" check box in the pxTransferAssignment activity has been set to on. | Case Management |
INC-212896 | 711190 | Resume Flow will print Flow Action Label in audit history | After calling Resume Flow for processing the assignments, when the Assignment was processed the Flow Action Name was printed on the Audit History instead of Flow Action Label. Investigation showed that in the Complete assignment activity, there was no code in the 'if' loop to set the value of actionLabel. If the value was null, the property set in the next step sets actionLabel to flowActionID and the audit history result is FlowAction ID instead of FlowAction Label. To resolve this, logic has been added in the CompleteAssignment Activity step 5 to set ActionLabel with Flow Action Label. | Case Management |
INC-214360 | 732123 | SimpleQuestionDisplay honors readonly mode | On the Review screen, some of the survey questions were displaying in edit mode even after resolving the case. This was due to SimpleQuestionDisplay not honoring the section readonly condition, and has been resolved by updating the SimpleQuestionSection section rule and the SetSurveyQuestionText activity to set Edit option as Auto for section include. | Case Management |
INC-215354 | 712666 | Data- flow actions working in Bulk Process | When trying to render a flow action whose 'applies to' class was inherited from Data-, an error was generated indicating that the flow action could not be found. This was traced to non Work- flow actions not being correctly populated, and was an inadvertent side effect of work done to set class for inheritance if Work- is not present. This has been resolved by updating the pzPreBulkProcessModal activity to set the TempWorkPage class to Work- only if .pyActionName is pyTransferAssignment. | Case Management |
INC-215499 | 714488 | Assignment routing updated for swimlanes | Routing options were not working for workbasket routing when using swimlanes. Investigation showed that when an assignment was added inside the swimlane, the assignment type value was defaulting to Worklist on submit of the assignment property panel. Manually changing it to workqueue did not make the routing section visible. This has been resolved by adding a 'visible when' condition to the "Route To" field to check if the assignment is not in the swimlane. The same check has been added to a 'disable when' condition for the 'Assignment type' drop down. | Case Management |
INC-216406 | 723286 | Attachment preview works for filenames with special characters | Attempting to preview attachments from the file and attachments view was not working if the file name had special characters. The browser console showed errors complaining that an unrecognized character was present. This has been resolved by adding crossScriptingFilter to sMemo to allow special characters in the attachment preview filename. | Case Management |
INC-222388 | 731651 | Handling updated for custom flow bulk actions | If the first assignment in a bulk queue failed validation of the flow action, the other selected assignments with same validations also failed without going to queue. This occurred when custom flow actions were configured on the standard bulk processing section, and caused the incorrect email template to be sent. To resolve this, Activity ProcessMultipleAssignments has been modified to add jump conditions to address the errors in PerformFlowAction and handle exception scenarios and ensure the proper template is sent. |
Case Management |
INC-224299 | 736466 | CaseTypeClass property created in @baseclass for better upgrade compatibility | When trying to use page-validate on pyWorkPage the error "The page contains an undefined property: pyWorkPage.pyAddableWorkList(1).caseTypeClass\nValidation failed: Errors Detected" was generated. This was traced to the difference in handling for old casetypes from earlier versions of Pega, and has been resolved by creating the caseTypeClass property in @baseclass. | Case Management |
INC-224548 | 725323 | Case Wide Actions do not trigger assignment arrow mark to progress | Given a case type with two assignments in first stage, if the first assignment is completed and then a case-wide action is performed before beginning the second assignment, the the chevron arrow mark was shown pointing to the second assignment even though the user was performing a case-wide action. This was traced to the activity pzLoadStageStatusDP step 10 java step where pxFlow page is taken from the pyWorkPage and the pyLastFlowStep property holds the next step that will be performed. As pxFlow holds the flow parameters of current flow being performed, pxIsCurrent ends up set on the wrong step. To resolve this, a "when" condition has been added in the pyStageStepList section for the arrow mark to be visible only if it is not case-wide local action. | Case Management |
INC-224726 | 730543 | Resolved drag and drop duplicate entries | Including files with Drag and Drop control was resulting in duplicate file entries. This was traced to run visibility on client being enabled by default on layout in the section pzAttachContentScreen, and has been resolved by modifying the default to be that run visibility on client is disabled on layout in this section when pyDescription is null. | Case Management |
INC-226400 | 731712 | Adhoc case creation repaired | Adhoc case creation was not working. The adhoc case creation flow action uses a page called "newWorkPage" for case creation: this parameter page which is used by the pySaveAdHocCase activity in the pyCreateAdhocCase flow action has a naming conflict with page name in activity pzShowConflicts, resulting in the system removing both the pages in step 11 of pzShowConflicts activity. To resolve this, the page created and used in pzShowConflicts has been renamed from newWorkPage to showConflictsWorkPage. | Case Management |
INC-228513 | 736683 | Operator ID recorded in pxStageHistory | In order to support capturing, reporting, and extracting the operator ID of the users starting and completing the stages and steps in the case lifecycle, an update has been made which will store the operator ID in pxStageHistory. |
Case Management |
INC-230662 | 738959 | Security updated for AttachmentInnerDetails | Cross-site scripting protections have been updated for AttachmentInnerDetails. | Case Management |
INC-230826 | 733552 | Legacy hardcoded WorkPage removed from ReassignAssignment | When there was a child case Task available, attempting to transfer the case caused the system to update the Parent case .pxFlow(CreateTask) instead of the Task case .pxFlow(CreateTask). This was traced to the pyReassignAssignment activity having a legacy hardcoded page pyWorkPage defined, and this hardcoded page has been removed to resolve this issue. | Case Management |
Cloud Services
8.8 Resolved Issues for Cloud Services
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-218457 |
713987 | Updated debug logging | Debug logging within IndexReferenceSynchronizer and FastLoader has been updated. With this update, IndexReferenceSynchronizer debug logging will indicate what the action is for each instance, FastLoader will include information about the keys being loaded and statements being executed, and duplicate logging has been removed from BatchSQLExecutors. | Cloud Services |
INC-202004 | 692353 | Hotfix documentation updated to point to Hotfix Manager page | The readme file attached to hotfix downloads contained an outdated reference to use "PRPC Hotfix Installer on the Update Manager landing page." This has been updated to point to the Hotfix Manager landing page. | Cloud Services |
INC-205453 | 706569 | Pega Keystore supported for hotfix signature verification | In order to support custom trust managers which require an alternate method for supplying the root certificate via a platform trust store, an enhancement has been added to allow Pega Keystore to be used as a hotfix verification source. Detailed information on this can be found in https://docs.pega.com/keeping-current-pega/87/verifying-hotfix-authenti… | Cloud Services |
INC-208516 | 705098 | Patchdate values made unique | The hotfix manager was incorrectly indicating that a previous hotfix was not installed or was partially installed and should be reinstated. This scenario was created during security updates where the missing/incomplete hotfix had been deliberately deleted from the database, and has been resolved by adding an update which will force patchdate to be unique when adding duplicate code resources during tests. | Cloud Services |
INC-209435 | 707374 | Column population error downgraded to warning | A Column Population job run after deployment for some classes was logging the error "Class does not exist", but no property was identified and no impact to the system was seen. This error has been downgraded to a warning. | Cloud Services |
INC-210513 | 710344 | Added handling for clustered index on the pr4_rule table during migration | When attempting to migrate the rules schema to RULES85 and temp data schema DATA85, the upgrade was becoming stuck in a loop while working to generate declarative indexes for Rule-HTML-Paragraph. Investigation showed the infinite looping happened only for classes mapped to the pr4_rule and with instance count of more than (num of threads * batch size). This was due to the presence of a clustered index on the pr4_rule table causing the resultset to return an infinite number of records in SQLServer, and has been resolved with an update to leverage the total record count to iterate the resultset instead of depending on the resultset.next(). | Cloud Services |
INC-211299 | 706316 | Handling updated for rule export errors | After exporting the rules from E2E, the import to the production mirror failed. Investigation showed that the process encountered a time out from an Adaptive Decision Manager table when exporting the product rule, resulting in the product file not containing the mandatory jar files. This has been resolved by updating the handling of errors during export, and suppressing auto-chaining when generating app JSON. | Cloud Services |
INC-215877 | 715234 | Handling added for Oracle "NUMERIC" type | When a product rule was created in an environment using Oracle, importing the product into the cloud environment with database table schema changes resulted in errors. This was traced to a change in Oracle's JDBC driver which was reporting Number as a JDBC "NUMERIC" type instead of the previous "DECIMAL". Pega uses the NUMBER data type and expected a type=DECIMAL for an Oracle number, causing the errors. This has been resolved by adding a check for flex numbers if column is NUMERIC. | Cloud Services |
INC-217855 | 731911 | Uncommitted hotfix able to Rollback All after install | A security hotfix was installed through Hotfix manager and left as uncommitted. When new hotfixes for the same files were received, the process required the uncommitted hotfixes to be rolled back, but attempting to do so generated exceptions in the logs reading "Exception in rolling back the archive PegaRULES Process Commander: code: 0 SQLState: Message: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (PRPC_RULE_ADM_P7.PR_ENGINECLASSES_PK) violated". The issue was caused by the Date field only accepting dd/mm/yyyy HH:MI:SS, so attempting to insert two records of the same jar in the pr_engineclass generated this error from pr_data_restore in Oracle. To resolve this, an update has been made to insert rolled-back jar removals with their original patch date to avoid PK conflicts. | Cloud Services |
INC-222835 | 721065 | UI messages updated for hotfix catalog issues | Here is the issue/enhancement request that was seen and can be a more general issue. After the restart there is not a catalog available and for environments that cannot access the internet this means they cannot actually do anything like commit all or rollback all. When clients tried this they clicked on the button and nothing happened. If you look in the PegaRules log you see a message that tells you that the catalog is not available. | Cloud Services |
INC-223074 | 720454 | Fallback handling improved for import synchronization | Upgrade to CRM 8.7 was failing during the import of the CRM jar. There are some rare edge cases where instances may be in the database, but not visible to the engine until the import is already underway, such as when rollback has deleted a class definition and mapping but not the instances of the class itself. To mitigate the risk of PK constraint violations when this happens, the process has been modified to mark all the instances that cannot be directly synchronized as updates so that the data layer will upsert them. | Cloud Services |
INC-229641 | 739454 | Enhanced logging related to rule skimming | In order to assist with diagnosing issues related to skimming of a ruleset, an update has been made which will log the complete stack trace along with the pzinskey being processed in debug mode. |
Cloud Services |
Conversational Channels
8.8 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-192935 | 688463 | Added deferred loading for email cases | When there were a significant number of email interactions on an email case, delays were seen when loading the case in the UI. Investigation traced this to a high number of database calls along with the BLOBs also being open. To improve performance, the new rule pyDeferLoadEmails has been added which toggles the UI and loads emails faster. In addition, the button label has been modified to read "View all emails" in place of "Show all" while defer load is enabled. | Conversational Channels |
INC-199790 | 700647 | GetAllEmailWork temp page renamed to avoid conflict | The default Email manager portal was not displaying new email triage cases. Investigation showed that because the GetAllEmailWork and CaseBreadCrumbPopulate activities were using a common name for the clipboard page "TempPage", when CaseBreadCrumbPopulate removed the TempPage clipboard page as one of its steps a null pointer exception occurred for GetAllEmailWork. To resolve this, an update has been made to rename "TempPage" to "TempPageET" for GetAllEmailWork so the names will not conflict. | Conversational Channels |
INC-202878 | 713791 | Handling updated for social messaging items with very large embedded images | Job scheduler was running out of memory while handling large/multiple files, causing nodes to crash while handling Social Messaging items. Inline images were also not being sent in the ACK email. Investigation traced this to a custom job scheduler and activity used to create PDFs from email communication and send the PDFs to a third-party system. This used the standard Email Triage/PegaSocial functionality for the emails, which were stored as instances of PegaSocial-Message. The custom Job scheduler and activity then leveraged the Data Page D_pxEmailPosts to retrieve the emails in order to harvest the text from the emails. The issue occurred when a number of the emails had multiple or large embedded images in them, meaning the PegaSocial-Message instances are very large. This resulted in the node running out of memory and crashing. To resolve this, code has been added to support inline images in ACK email and the complete message from Pulse will be used instead of the original message as the email body for the ACK email. | Conversational Channels |
INC-208818 | 704708 | Corrected intelligent routing in email channel | Intelligent language-based routing in the email bot channel was not working as expected when given a condition to direct messages to a different operator based on language. Messages were placed in the Inbound Correspondence work basket instead. This was traced to the getRoutingActions API using the incorrect property from .pxAnalysis, and has been resolved. | Conversational Channels |
INC-211417 | 711612 | Updated URL construction for inline images for better performance | System slowness was seen, and inline images were not getting displayed when the case was opened. This has been resolved by modifying pyExtractHtmlFromAttachment to ensure the image source URL is built in a consistent way whether or not there is a cache to call from. | Conversational Channels |
INC-212549 | 706072 | HTML attachments conditionally shown in email listener cases | When Rich text/html (non-plain text) emails were ingested in email, the original mail was not getting added to the case. Investigation showed that the pzCreateTriageWork activity had an explicit delete step to remove any attachment that started with 'email-content'. Since the HTML attachment name starts with 'email-content', it was deleted in above activity. This has been resolved by adding a when rule named 'pyLinkEmailTriageContentHTML' which will conditionally show email-content.html. | Conversational Channels |
INC-212966 | 713956 | Support added for email attachments stored in repositories | Attachments sent through email were received as corrupted. To resolve this, support has been added for retrieving content attachment file content from external repositories using data page D_pzGetExtStorageContent[ContentLocation:.pyContentLocation,RepositoryName:.pyStoredInRepository].pyFileSource |
Conversational Channels |
INC-214294 | 710828 | PopulateEmailClientWorkFilter correctly resolves field value | The first item in the Email manager queue selection dropdown was 'DefaultWorklist', instead of 'Default worklist' or other formatted text. Investigation showed the New Page was not created for the temp results in pzPopulateEmailClientWorkFilter Activity, preventing it from resolving the customized/available field values, and this has been resolved. | Conversational Channels |
INC-218361 | 737014 | AttachmentEmbededInHtml flag works with Microsoft Graph | When an email was received with inline attachments such as images in the signature or an attached file like a Word or Excel document, the attachments were saved into Data-WorkAttach-File but the flag "pyAttachmentEmbededInHtml" used to differentiate whether these attachments were inline attachments or not was not being set consistently when the email was sent from an external domain. This was was missed use case related to Microsoft Graph where pyAttachContentDisposition was not being set to inline for inline images, and has been resolved by updating pzCreateInteractionReply. | Conversational Channels |
INC-228963 | 740547 | Null check added for blank CSS style | After a case was created from email, opening the case did not display the email body. This was traced to the styles found in the content of the email body, specifically to a style starting with ":root" that was causing the issue. In pyGetHTMLMessage, the email processing does not happen if the CSS selector is blank, which happened due to a null check not being performed when changing the internal CSS styles to inline CSS styles. To resolve this a null check has been added on the selector. | Conversational Channels |
INC-229423 | 729987 | forcemigratetriagecases added to allow check migration status query skip | The IsMigrationDone query was taking around 20 seconds to run on a very large amount of data in pc_work table. To address this, a new 'when' rule pyforcemigratetriagecases has been added to allow skipping checking migration status for on-demand migration. |
Conversational Channels |
INC-230368 | 735187 | Handling added to prevent empty interaction identifier | The pxInteractionAggregator queue processor was trying to aggregate data periodically but failed with the error "Unable to open an instance using the given inputs: pxObjClass = "Data-Conversation-Summary", pyInteractionId = "". Investigation showed the interaction aggregator could not find the interaction or could not get an ID from the interaction, causing the number of broken records to grow because Obj-Open failed each time it could not find a record in the database. To address this, the pxInteractionAggregator has been updated to better handle the Obj-Open step and empty interaction IDs. | Conversational Channels |
INC-232672 | 742205 | PreChatQuestions correctly captured in history | When a chat was escalated to the agent, an internal error message was shown after the queue position and wait time message. The PreChatQuestions flow was executed, but the questions were not captured in the pyHistory of BotCase. This was traced to an incorrect reference relating to inbound and outbound messages and has been corrected. |
Conversational Channels |
INC-234503 | 745906 | Corrected PrimaryTopic detection | Using natural language processing (NLP) to detect a topic worked as expected, but the list in the clipboard was unordered and an incorrect value was set as the primary topic. This was traced to the system not sorting pyTopics after aggregating the topics from the body and attachments, and has been corrected. | Conversational Channels |
INC-239086 | 746010 | Menu titles allow HTML formatting | Attempting to format line breaks and hyperlinks within the menu titles was not taking effect. This was due to the system only accepting a string and stripping out HTML tags in menu titles. To support this formatting use, an update has been made which will not strip the tags on the platform side but will instead send the formatted text all the way to the messaging layer for the menu title inside a menu message type. | Conversational Channels |
Data Integration
8.8 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-219233 |
716176 | ReportStats delete query performance improvements | A database connection spike was maxing out the allowed database connections, causing login delays and termination of stream nodes. Investigation traced this to the delete query on pr_log_reportstats, which was a full table scan generated from SQLGeneratorPostgres.purgeTableContainingClass. To improve performance, the full table scan sub-query has been removed and 'limit' syntax has been added to run the necessary deletion in batches. | Data Integration |
INC-176138 INC-198555 INC-225788 INC-226764 |
723084 720899 728057 745051 |
Performance improvements for save-as | Performance issues were seen when using save-as for rules such as Declare expression, When rules, activity, etc. This was traced to a very large number of extra database queries that were being executed while building the Declarative Cache. To resolve this, an update has been made so the queries used for the Declarative Cache will only be executed when required. | Data Integration |
INC-187857 INC-223240 |
700855 723230 |
Added debug logging and exception recovery for unexpected data object | When rules were complied in lower environment and deployed into production, they later became corrupted and system behavior changed. The error "Java generation failed: caught exception while expanding property pyGetCasePredictionsByClassName on page CurrentRecord" was generated. Investigation showed the auto-populate property pyGetCasePredictionsByClassName was attempting to get the metadata property "pzDataObjectParams": this was a string value in this scenario instead of the expected java object, and caused the exception. To resolve this, a debugger has been added which will check if the property is a java object or not. If it is not, the system will skip the processing and then display an error message with a stack trace. | Data Integration |
INC-189772 | 718591 | Prconfig added to control declarative behavior during page merge/copy | Declare-on change was getting triggered multiple times even though there was no change in the watched property. Investigation showed this happened when properties had the same value in source and target page. To resolve this, a prconfig has been added which may be used to disable declaratives while performing page merge operations for these properties. The setting name is clipboard/putAllKeepNew/doNotFireDeclaratives: when true, it will disable declaratives when there is no change in property value while performing page merge/copy operation with merge strategy PUTALL_KEEPNEW. The default value is false. | Data Integration |
INC-193485 | 695841 | REST authentication settings use fully qualified name for resolution | The application setting used in REST connectors for authentication was resolving to similarly-named rules instead of matching the exact name of the rule. This has been resolved by enhancing pzGetSettingID to use both parts of the fully qualified name (name and category) provided by the pzSettingsORA control when determining which setting from the report to return. | Data Integration |
INC-197479 INC-202183 INC-212729 |
695023 699682 699682 |
ClusterAndDBCleaner updated to with with Oracle query limits | The pzClusterAndDBCleaner job scheduler was not able to cleanup data in pr_op_data session table due to the delete query formed to clean up this table throwing "ora-01795 maximum number of expressions in a list is 1000 oracle 19c" exception. This has been resolved by splitting requestor IDs into batches of 1000. | Data Integration |
INC-199076 | 703302 | Revalidate of class rules successful after major version skimming | When performing a major ruleset version skim and revalidating all rules, most class rules were failing during the revalidation. This was a gap in how Ruleset List and Major Version Skim work together. When calling getRuleSetPrerequisites(“rulesetA:01-01-01”), the API uses uses the current application context to return a ruleset list from an application which owns rulesetA and its compatible version, but if no owning application was found from the current application context, a list of rulesetA and PegaRULES:XX-XX-XX was returned. This caused a conflict between what the system was trying to validate and the ruleset versions returned. To resolve this, an update has been made which will exclude the version number for this comparison if no owning application is found. | Data Integration |
INC-199320 INC-229930 |
700082 739980 |
Corrected duplicate record error message | When inserting a duplicate record in a grid, the error was shown at the harness level instead of the record level. This was traced to the error messages being removed from the step page, and has been resolved by updating the system so messages will not be cleared if the same value is being set. | Data Integration |
INC-202739 | 713764 | Handling added for eml attachments | After being sent from a Pega activity, an email with a file attachment using the .eml format showed special characters instead of the text when viewed in Outlook. This has been resolved by updating the system to skip Content-Transfer-Encoding for eml attachments. |
Data Integration |
INC-203040 | 721055 | Null value handling added for CBU | After update, changes made to the Operator record were not reflected and the Actions menu in Operator record did not show all available actions after the Operator was saved. This has been resolved by adding handling for null values passed as String for arguments from cbu.xml for the PegaCBU utility. | Data Integration |
INC-204552 | 724716 | Error handling exception resolved | An update has been made to address a "Poor Error Handling: Return Inside Finally" exception by removing the return statement. | Data Integration |
INC-204897 INC-209387 INC-210059 INC-212169 INC-212753 INC-212754 |
696150 706150 712588 710515 707309 708690 |
Log4j file security vulnerability issue addressed | A zero-day vulnerability was identified in the Apache Log4j logging software which could potentially allow malicious actors to take control of organizational networks. Pega has immediately and thoroughly addressed this issue. More information can be found at https://docs.pega.com/security-advisory/security-advisory-apache-log4j-… | Data Integration |
INC-204998 INC-205774 INC-211599 INC-224034 INC-226762 |
705628 721818 708544 735692 727390 |
Data page definition reload made more robust | The data page was intermittently being removed from the cache. This was traced to the use of a thread from ThreadContainer to reload the data page definition: a null thread could be returned if the request came from a master agent, which would then cause the definition reload to fail. This has been resolved by updating the system to use the current thread in context to reload the data page definition. | Data Integration |
INC-207009 INC-225696 |
718286 736797 |
Explicit expiration added to avoid searching for expired requestor | A login page was taking long time to display. This was traced to pre-authentication cookie in the browser pointing to the requestor object on the server which triggered a lookup across the entire cluster of servers to find the requestor. This was not only taking time, but the attempt to find the requestor in the cluster would always fail to return results as the requestor was not passivated but instead removed after two minutes. To resolve this, an expiration has been added to the Pega-RULES cookie when the value is pre-authenticated. The time to expire is derived based on the short-lived requestor time for unauthenticated requestors + 1 minute, and will be 2 minutes by default. This will avoid searching for a requestor across all nodes in cluster when the requestor has already timed out and been destroyed by server. | Data Integration |
INC-207159 | 707618 | Localization added for delegated datatype tab | Localization was not working for the title of a thread which opened when attempting to edit the delegated datatype. This has been corrected. | Data Integration |
INC-208424 | 707613 | Custom header character encoding for Subject added | Case correspondence that contained a Subject with accent characters such as "Invitation à être" was being rejected by MailJet on the basis of encoding issues on the "Thread-Topic" when using custom headers. The error "BAD HEADER SECTION, Non-encoded non-ASCII data (and not UTF-8)" was generated. This was traced to the Send Email Smart Shape handling when using custom headers, and has been resolved by encoding the Subject before appending it to the Thread-topic header while adding custom headers. | Data Integration |
INC-210475 | 705370 | JVM check added for memory allocation metrics collection | After update, frequent errors were logged regarding "ThreadMXBean) ERROR - Cannot get memory allocation data for thread". This was due to the collection of memory allocation data only being available for SUN based JVMs while the system experiencing the error runs IBM JDK. To resolve this, checks have been added to determine whether the thread memory allocation metrics collection attribute is supported by the JVM or not, and if not the collection will be disabled. | Data Integration |
INC-210771 | 708813 | Updated access group handling for CurrentWorkPool property | After update, the pxThread.pxCurrentWorkPool property was not properly populated in App Requestors when the activity was called from Rest service. This was caused by a difference in the authentication check after a security modification, and has been resolved. | Data Integration |
INC-210855 INC-216381 |
715821 716614 |
BigDecimal handling updated for @ sum function | The @ sum function was not behaving correctly. This was traced to the java code in the 'sum--(ClipboardPropertyCollection)' function which was not properly converting the double to Bigdecimal for some of the inputs like 500, 500, 600.11. This has been resolved by modifying the function to convert input properties to BigDecimal, add BigDecimal values, and return the result. | Data Integration |
INC-211101 | 709880 | ClipboardPageImpl handling updated for virtual list variable mRepresentativeRow | A Concurrent Modification exception was seen after update. This was traced to the ClipboardPageImpl use of a virtual list variable "mRepresentativeRow" in the "InMemoryStringTable" class's method where it was iterating the "InMemoryStringTable" while the same list("InMemoryStringTable") was being modified by another thread at the same time. This has been resolved by modifying the Java file InMemoryStringTable to create a copy of the variable mRepresentativeRow to make sure that while iterating over it, the application will iterate only on a copied variable and not the original variable to prevent the concurrent modification exception. | Data Integration |
INC-211178 | 704591 | Decimal parameters retain null value instead of being set to 0 | When mapping any data in 8.6+, if the source is a decimal property rule and the target is a parameter defined as decimal, the decimal parameter's value will be 0 if the source property is null. This was a behavior change from previous versions of Pega where the target parameter would be null. This has been resolved by changing the code generation for the read operation on the parameter decimal type assignment to use resolveToString() instead of calling resolveToBigDecimal() so a null value is retained. | Data Integration |
INC-211292 INC-216730 |
705884 716206 |
Updated handling for last_access to improve backwards compatibility | After update from Pega 8.3 to Pega 8.6, many errors were seen in the logs regarding the call of the Pega API /api/v1/nodes/all/requestors. In 8.3, the API was responding with the field last_access populated properly, but this field was blank in the new version. This was an unintended consequence of work done to resolve inconsistencies with the date format in Admin Studio, and has been resolved. | Data Integration |
INC-211480 | 712420 | Handling added updates involving Oracle descending column | The build was failing when attempting to update to Pega 8.6, and an error indicating an issue with Oracle columns was generated. Investigation showed that when a column changed that belonged to an index which had a 'desc' column (even if the changed column was not specified as desc), an Oracle restriction was triggered. This occurred with any column size increase if the column participated in an index containing a descending column or a function index. This has been resolved by adding a step to drop the index before altering the column if a Descending index is involved, and to catch the case where the resized index is part of an index that has a descending column but is not necessarily a descending column itself. | Data Integration |
INC-211655 | 714060 | Removed extra space in Malaysian locale | For the ms_MY locale, an extra space was being appended to Number formats, such as " 0", " 1". This has been corrected. | Data Integration |
INC-211977 INC-219697 |
713460 727794 |
Handling added for large BIX Postgres data sets | BIX extracts were causing timeouts or JVM out of memory errors. This was traced to the Postgres JDBC driver ignoring fetch size in auto-commit transaction mode, which led to everything being loaded into memory at once. To resolve this, changes have been added to support fetch size for large results when using PostgreSQL database for BIX Extraction. | Data Integration |
INC-212251 INC-220076 INC-220789 |
720198 | Editable data page properly refreshes after interaction | A data page using editable mode was adhering to the "Reload once per interaction" option used for readonly mode. This led to issues such as tables not refreshing after sorting or applying filters. To resolve this, refreshReloadInteraction has been updated to false when mode is not readonly. | Data Integration |
INC-212433 | 724512 | Clarified SLA calendar error message | If a calculated SLA date is out of calendar end date range, the error "Perhaps the business calendar of year XXXX is missing" is generated. When the provided start date is not the business day and the SLA was calculated by using a custom activity using addTime, isBusinessDay and pxGetSpecifiedTimeOnDate function, this message showed the current year calendar. When checked in the tracer the exception was thrown with the correct year calendar, but when the exception was written as an alert the message was changed and provided the misleading error on the screen. This has been resolved by addressing the misleading error message. |
Data Integration |
INC-212900 | 711003 | ADLS/File listener support added | Azure Data Lake Storage type support has been added for file listener usecases. | Data Integration |
INC-213124 | 724632 | AWS file type added for S3 uploads | The correct content type was not getting set when uploading images to S3 using the "pxPublishArtifacts" activity. This has been resolved by adding the content type for AWS files while uploading to S3. | Data Integration |
INC-213308 | 712076 | Fallback added for missing fileName in MultipartHTTPResponse | Given a multipart/form-data response with multiple attachments, when there was no explicit fileName header provided for a body part, the engine skipped processing the part and no data was present on pyRequestAttachmentPage. This has been resolved by adding a fallback in HTTPClientUtils#handleMultipartHTTPResponse() so that if no fileName is present, the 'name' parameter of the Content-Disposition header field will be used. | Data Integration |
INC-214451 | 734925 | Rest connector passes RequestAttachmentPage to child requestor | While invoking the Rest Connect from a data page, the error "InboundMappingException: Exception occurred while mapping incoming response" was generated. Requests with "Content-type:multipart/form-data" require "pyRequestAttachmentPage" or "pyResponseAttachmentPage" to be populated with correct values. When Rest-Connector was executed in parallel, those pages were not copied to the child requestor and the rest call executed from the child requestor did not have correct header and body. To resolve this, MethodConnect.java has been updated to correctly pass pyRequestAttachmentPage to the child requestor. | Data Integration |
INC-215572 | 712389 | SOAP integrations documentation updated | The documentation for dynamic system settings used to modify SOAP integrations has been updated to list all available DSS for SOAP connectors and services, with a clear purpose for each setting. https://docs.pega.com/data-management-and-integration/87/dynamic-system… |
Data Integration |
INC-215671 | 719074 | Support added for special characters in XML stream rules | When using an XML Stream rule, node values were encoded for a broader set of characters than was required to create properly formed XML. Special characters were converted to ASCII characters when setting the XML to a property with Property-Set-XML. When the mode of the element was changed from Standard to Literal XML, the special character was retained but the element tag itself was missing. This has been resolved by adding a new "XML" encoding format in StreamBuilder. In ResponseTag.appendUnformattedValue(), use the XML mode when resolving to "NORMAL" format and the JSP base class is "Rule-Obj-XML". In StreamBuilderTools, the system will not encode '+' symbols when in XML mode. | Data Integration |
INC-215953 | 719060 | Added index check to avoid unnecessary error message | After updating from Pega 8.3 to Pega 8.6, the post upgrade task "Upgrade application schema" unexpectedly listed that the PegaDATA "pr_history_idx3" entity was missing under the "Missing Pega Platform shipped schema" section. This was traced to a change in Pega 8.4 which renamed pr_history_data_idx1 to pr_history_data_idx3, causing the error due to normal operation skipping the creation of an index with the same keys. To resolve this, the update logic has been modified such that before dropping an index, a check will be performed to see if there are any other indexes in pegarules-master that are not marked for deletion but have the same composite key as the index to be dropped. If there is a matching index, the index will not be dropped and the error will not be seen. | Data Integration |
INC-216261 | 714414 | Cases processed during archiving | Cases were not being properly processed during archiving. This was traced to a missing pxObjClass in the clipboard page when the work index was being deleted, and has been resolved by adding pxObjClass to the clipboard page before sending the request for deletion. | Data Integration |
INC-216313 | 713526 | Server push DSS name corrected | Server push was not working. This was traced to an error in the specified name in the DSS, and has been resolved by modifying "prconfig/server-push/websocket/max_text_size/default" to the correct "prconfig/server-push/websocket/max-text-size/default". | Data Integration |
INC-216380 | 722700 | Update impact for Pega Call | Log4j-1.2.14.jar and Log4j-1.2.17.jar have been removed to address the security concerns with these versions, and logger jars have been upgraded to 12.7.2 version (from 12.7.1 version) to make Pega Call compatible. This change will impact Pega Call customer environments due to Avaya or Genesys, which are part of Pega Call, having an internal dependency on Log4j1.x version jars. As a result, the SDK logging for Avaya or Genesys will not be available in the 8.8 release unless the Log4j-1.x jar files are reimported locally. Please refer to https://docs.pega.com/pega-call-release-notes/87/changes-update-impact | Data Integration |
INC-217029 | 713143 | Improved performance for Agile Studio web nodes | Large data pages configured as queryable or searchable were unexpectedly getting added to the cache and not cleared, causing some performance issues. To resolve this, the caching logic has been modified to skip adding queryable and searchable data pages if they contain pyImplicitParameter. | Data Integration |
INC-217159 | 721071 | German locale preserves semicolon as CSV separator | When manually importing CSV files in the German locale which has special characters, special date format and the semicolon as a separator, the staging environment worked as usual and separated the imported records, but attempting to import the same CSV file to the staging clone did not split the records into the separated fields. This was traced to the pzGetLocaleListSeparator decision table returning a comma for the separator instead of semicolon for the de_DE locale, and has been corrected. | Data Integration |
INC-217904 INC-218802 INC-220251 |
730432 736911 732073 |
New prconfigs added to handle lob closed error | BIX extraction was encountering the SQL error "Invalid operation: Lob is closed" while reading the BLOB, but the rest of the records were able to be extracted. This was traced to previous work done to resolve an issue where Oracle temporary space used to write the LOB was not freed up after writing records to Log-Service-File when using OJDBC8 or OJDBC10 versions. This change caused an issue for DB2 where the freed BLOB was still trying to be extracted. To address this, new prconfig settings have been introduced to control freeing BLOB memory. If the error is seen regarding the lob being closed, add and disable these settings (set value as false) in the pronfig.xml file. DATABASE_MANAGEMENT_FREELOB: settingName: database/management/freeLOB description: If this flag is set to false, it controls the free memory calls defaultValue: true DATABASE_MANAGEMENT_FREEPAGEDBMAPPERLOB: settingName: database/management/freePageDBMapperLOB description: If this flag is set to false, it controls the free memory calls. defaultValue: true Following this change, restart the server. |
Data Integration |
INC-218234 | 734687 | DSS added to skip 'Has Purge Happened Since Startup' | The Purge Agent did not finish execution, exiting with the error "skipping purge because HasPurgeHappenedSinceStartup == false". This was traced to the local site policy of restarting their nodes every week, which was not aligned with the system default purge policy. To address this, a new DSS "skipHasPurgeHappenedSinceStartupCheck" has been added to the Pega-RulesEngine ruleset. When set to true, the check for 'Has Purge Happened Since Startup' will be skipped. | Data Integration |
INC-218463 | 726502 | Common TransformerFactory method added for greater compatibility | In Service-SOAP, mapping request headers and parameters to the clipboard (instead of mapping to a Parse XML rule) resulted in blank values on the primary page of the service activity when using the IBM WebSphere Liberty app server. In this case, instantiating the JAXP TransformerFactory object using the com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl parameter resulted in a transformer that serialized the XML to an empty string instead of the correct XML. To resolve this, an update has been made to make a common TransformerFactory method to ensure IBM JDK in WAS deployments function as expected. |
Data Integration |
INC-218532 | 742524 | File listener error recovery resumes from failure point | When file listeners were unable to parse a file due to exception, the automatic error recovery did not start parsing from the correct location. Investigation showed the segment was not tracked during file listener run, so during error recovery the file listener always started processing from the first segment instead of the segment from which it failed. This was a missed use case and has been resolved by tracking the active segment and utilizing it during the error recovery run of the file listener. | Data Integration |
INC-219341 | 715051 | Check added to ensure StepPage generation for Top keyword | A ClassCastException was thrown when top page is used, indicating "com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl cannot be cast to com.pega.pegarules.pub.clipboard.ClipboardPage". This has been resolved by adding a check which will generate a myStepPage for Keyword "Top" as necessary. | Data Integration |
INC-219453 INC-219995 INC-220031 |
715999 717157 717167 |
Security update enhanced to support custom implementations of InvokeAxis2 | The QueueProcessor activity indirectly invokes a Connect-SOAP. After installing the Security A22 patch, custom implementations on InvokeAxis2 reported runtime failure. This has been resolved by replacing reflection library use with explicit type checking and casting to get the array length in step 14 of InvokeAxis2. | Data Integration |
INC-219627 | 715995 | InvokeHTTPConnector security updated | "Allow invocation from browser" has been disabled for InvokeHTTPConnector, and "Require authentication to run" has been enabled. In addition, an unsafe reflection used to load JCIFS libraries for NTLM operations has been removed, which removes support for custom JCIFS libraries in Connect HTTP. | Data Integration |
INC-220137 INC-229608 |
721896 732636 |
UpdateDateTime casing corrected in filters | When using Job Scheduler with MS/SQL, the error "Cannot find either column 'mktdata' or the user-defined function or aggregate 'mktdata.pr_read_from_stream', or the name is ambiguous." This was traced to a casing issue and has been resolved by updating the pxupdatedatetime property to pxUpdateDateTime in Filters F1 and F2. | Data Integration |
INC-220616 | 718051 | maxConsecutiveViolations default set to 5 | Attempting to make API calls using the PegaMKTContainerV2 REST service resulted in an IllegalArgumentException. This was traced to the MaxViolations under Application Settings for "Development" (the current environment) production level being set to 0, which caused the exception because the value must be a positive number higher than 0. This has been resolved by setting the value to default to 5. | Data Integration |
INC-220652 | 721384 | Added explicit clearing for AsyncServiceManager cache | Heap size for multiple JVMs increased after update. Investigation showed data pages loaded via Load-DataPage during service processing using requestor pools were cleared after each service interaction but the AsyncServiceManager cache was not cleared. To resolve this, an update has been made that will clear the async cache when the requestor is returned and when flush all is called. | Data Integration |
INC-220837 | 729122 | Number formatting a separator corrected for Greece | When the locale was set to el_GR, number formats for currencies in monetary digit grouping was using 3;2 formatting instead of 3, causing errors such as 10,00,000.00 being displayed instead of 1.000.000,00. This has been corrected. | Data Integration |
INC-221950 | 720052 | SendEmailNotification activity updated for forgotten password flow | The "Trouble logging in?" mechanism was not working after update due to the verification code not being sent to the user. This was an issue with security policy, and has been resolved by disabling the checkbox "Require authentication to run" for the SendEmailNotification activity in this scenario. The SendEmailNotification activity is used to send mails to the user during the forgotten password flow and requires the provision to run in an unauthenticated context for this usecase. |
Data Integration |
INC-224268 | 724023 | Cleaned up outdated prprivcommon class references | After update, an exception was generated related to FirstUseAssembler. This was a missed use case for the WriteEFormToFile activity from previous work which restricted loading classes from prprivcommon.jar, and has been resolved by removing references to the following classes which were made inaccessible by the changes to prprivcommon: com.pega.pegarules.storage.FileStorageManager com.pega.pegarules.storage.fs.resadaptor.RAFile com.pega.pegarules.storage.fs.resadaptor.OutputStreamWrapper |
Data Integration |
INC-225687 | 739708 | Handling added to avoid incorrect true value for DateTimeisPastOrFuture | When the Function pxDateTimeisPastOrFuture() was called with the arguments "" (the empty String) and "false", it sometimes returned "true" instead of "false". This function internally calls the Function CompareDates() which takes two Strings as arguments. In this case, one is provided by the caller of pxDateTimeisPastOrFuture, the other one is generated at runtime, as the current date/time. As the second argument of pxDateTimeisPastOrFuture, the generated date/time will be the first parameter, while the second one is the date/time argument for pxDateTimeisPastOrFuture. If that argument is the empty String, is will be replaced by the current date/time. This means that the value for the second parameter is determined after the first parameter and that can result in a gap in time by a few milliseconds. This in turn results in "true" as the return value for pxDateTimeisPastOrFuture. This has been resolved by adding handling for a blank string so "false" is returned correctly. | Data Integration |
INC-226830 | 727154 | Case Archival hierarchy updated for multiple occurrences of a child case | Case Archival did not correctly discover hierarchy when child case appeared multiple times in the hierarchy. This was due to the CaseAssociationsProvider class having a check to skip performing the discovery when the case type had already been processed, and has been resolved by updating the handling for this scenario. | Data Integration |
INC-227988 | 736463 | Corrected unnecessary declare trigger firing | The crmAuditStage declare trigger was activated whenever the views mentioning the properties were accessed even though the values for the mentioned properties were not changed or updated. This resulted in a row inserted in the audit table. The audit data was in turn read by other processes to determine the age, health status of opportunity, etc, causing several reporting issues. To resolve this, if the target and source pages have the same property(same value), while invoking the Page-Merge-Into with Keep value 3(PUTALL_MERGE), then it will not create changeElements and the Declare Trigger and Declare On Change Rules should not fire unnecessarily. | Data Integration |
INC-228622 | 739122 | Month names localized correctly for "CZECH" | Localization for the country "CZECH" has been updated to correct the month names displayed in calendar control. | Data Integration |
INC-229907 | 734305 | SOAPAppenderPega includes namespace in ClusterName and Signature fields | After update, the Predictive Diagnostic Cloud (PDC) was not not logging the events, servers status, etc, and was indicating it was blocked by the IBM DataPower Gateway due to the SOAP message format. This was traced to the namespace not being included in the ClusterName field, and has been resolved by updating the sendEvent method in SOAPAppenderPega.java to add the namespace to the ClusterName and Signature fields in the header. |
Data Integration |
INC-229921 | 738629 | Corrected duplicate repository delete request | The delete request to remove a document from the repository was duplicated. This was caused by the 'pzDeleteFromRepository' activity instantiating the D_pxDelete in its own thread and then again in the current thread due to the D_pxdelete data page being loading asynchronously, and has been resolved by making the calling activity synchronous when loading the data page. |
Data Integration |
INC-229992 | 735014 | SOAP TLS version will be dynamically set | Using the "Create SOAP connection" wizard resulted in an error no matter what WSDL was imported. The original implementation of the SOAP wizard relied on a hard-coded TLS level when invoking the HTTP call to the WSDL URL. The hardcoded value was never updated past TLSv1, and had to be manually updated by developers for new TLS versions. This was insufficient when the WSDL URL provided did not support lower TLS versions. To resolve this, the logic has been updated to source the TLS version from the system setting "Pega-IntegrationArchitect pyLowestAllowableTLSVersion", which will match the generated rules and stay up to date as Pega security standards update. The value will default to v1.2 if the system is unable to get a value from setting. To make the best use of this, do not use hardcoded values for version specification in dynamic flows where possible. | Data Integration |
INC-230929 | 743824 | Corrected memory leak related to CLOB cleanup | Excessive CPU use was seen even under normal traffic. Investigation identified an edge case where CLOBs were not all being cleaned up, causing memory leakage. This has been resolved by ensuring unused objects are freed. | Data Integration |
INC-231195 | 734205 | Additional logging for businessCalendar.CalendarUtility.java | Enhanced logging has been added in order to assist with identifying issues related to the Business Calendar. | Data Integration |
INC-232338 | 739258 | Data_views Pagination in v2 DX API working as expected | When attempting to use the pagination features available with the v2 DX API '/data_views/{data_view_id}", all results were returned and no pagination was performed. This has been resolved. | Data Integration |
Decision Management
8.8 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-174785 | 651461 | Flow connector attachment point control updated | Previously, attempting to change the target point for a connector in the flow modeler to a different point on the same shape did not work without placing the point on an intermediate connector first. An enhancement has now been added to support moving the connector directly to a different constraint point on the same shape. |
Decision Management |
INC-179727 | 704543 | Modified batch requestor handling to ensure cleanup | A large buildup of batch requestors was seen, and restarting the node did not clear it. Investigation showed that in the case of one class reading a DSS value, a Pega requestor was being created when it was unable to retrieve any Pega context, and this requestor was not cleaned up afterwards. To resolve this, an update has been made to the way the requestor and Pega context is being created along with ensuring it will be cleaned up properly after use. | Decision Management |
INC-180246 | 664948 | Support for apostrophe added to keyword tokenization | A keyword containing an apostrophe was not detected properly in Text extraction model. This has been resolved by updating the annotator used in the tokenization. | Decision Management |
INC-180762 | 666291 | Calendar gadget correctly displays event of >31 days | When using the pxCalendar gadget to display a hotel reservation of duration > 31 days, the entire bar was not displayed on the PEGA calendar. Investigation showed that eventslist was not considering the month value, and this has been resolved by updating the pzEventPreProcessing activity to check for month. | Decision Management |
INC-194348 | 682339 | Resolved multiple copies of Pega0050 alerts | The PDC alert Pega0050 was seen multiple times for the standard pxgetoperatordetails activity, step 6.This has been fixed by removing the pagecopy and updating the data page properties. | Decision Management |
INC-198914 | 686938 | PMML updated for nested 'if' | Running a model on the openscoring API and the Pega PMML model gave different results. This has been resolved by updating the handling for nested 'if' in PMML. | Decision Management |
INC-200802 | 699966 | Line break handling added for setting required question asterisk | If a survey question was formed in multiple sentences, the asterisk marking it as required was not displayed in screen. The asterisk displayed as expected if the question was one sentence. This has been resolved by updating the setMandatoryIconforQP script handle linebreaks and set the required symbol as expected. | Decision Management |
INC-202111 | 710107 | Logging extended for PRPCPropertyInfoProvider | In order to assist with diagnosing issues with Kafka and JSON, additional logging has been added for PRPCPropertyInfoProvider. | Decision Management |
INC-206109 | 706236 | Delayed Learning works correctly with Volume Constraints | When running an outbound campaign using NBA Designers predictions and delayed learning in conjunction with volume constraints, the adaptive models ended up with incorrect feedback if the prediction had an Alternative label configured with a defined waiting window. This has been resolved with the addition of a new flag 'isVolumeConstraintEnabled' during dataflow creation which will check for volume constraint, and a filter in HandleResponses for that flag. | Decision Management |
INC-208709 | 710810 | Added handling for new requestor in previously authenticated Voice AI group | When attempting to pilot the new Voice AI feature set provided recently in the Customer Service framework, the error "You lack access required to execute RULE-OBJ-ACTIVITY WORK-CHANNEL-INTERACTION-VOICEAI TRANSCRIPTDISPATCHER" was logged. The same was seen for the ConnectToAudioProcessor activity. Investigation showed this could happen when a new requestor that's not authenticated yet gets created with currentAccessGroup already equal to the desired access group, causing the authentication step to be skipped. This has been resolved with an update to address the dataflow thread authentication edge case where the default requestor access group is equal to the dataflow run's access group. | Decision Management |
INC-208976 | 719164 | Enhanced SSA metrics made available | In order to better diagnose delays related to the time when a Campaign is scheduled to start and the time when the Dataflow actually starts to run, an update has been made to introduce detailed metrics to cover some of the strategy execution key performance intensive areas including invocation of other non-strategy modules like adaptive model scoring and interaction history summaries. These Level 1 diagnostics are enabled by default. Additional lower level internal metrics related to SSA engine execution have also been made available by way of a DSS to collect more runtime insight for diagnosis. To enable the collection of these Level 2 SSA internal metrics, set the dataflow/shape/strategy/detailed_metrics/level2 DSS in the Pega-DecisionEngine rule set to 'true'. | Decision Management |
INC-210126 | 708784 | Timeout added for Cassandra writes | When using Customer Decision Hub with external C* deployment, attempting to stop a data flow run which was reporting stale threads for some partitions resulted in some of the partitions continuing to run while threads were waiting on the Cassandra save operation. This has been resolved by adding configuration for a timeout when waiting for the results of the save operation, with a default of 300 seconds. | Decision Management |
INC-210639 | 705345 | Query limit removed from Scenario Planner | Scenario Planner was not correctly finding or opening some Audience Simulations. Investigation showed that when there are 500+ completed data flows, the system was failing to load next 500 records from pegadata.pr_data_decision_ddf_runtime. This has been resolved by removing the query limits, and additional debug logging has been added. | Decision Management |
INC-210892 | 706288 | Handling corrected for CSV formatted output from CDH | After upgrade, the Output Templates with File output (.csv file extension, comma delimiter) for Customer Decision Hub did not work as expected. Creating an Output Template for use in an action flow with defined fields containing commas for output previously resulted in the individual fields containing commas being enclosed in double quotes, but the output after upgrade instead was enclosing each of the comma-delimited fields in quotes, causing an issue with the original format of the data. This has been corrected. | Decision Management |
INC-211251 | 706540 | Handling added for Model level Data type empty values | After update, the Email Intelligent Virtual Assistant™ (IVA) was not able find the proper response for the real-time incoming emails but was able to find the topic and response when running it from Dev Studio and Prediction Studio. This was due to an edge case where the model datatype page list property was present on the text analyzer rule and a page was present in it, but the property pyName which actually holds the data type (body, attachment, all) was not present in the page. This has been resolved by updating the system to add 'all' as the datatype if the pyName is blank (null or empty). | Decision Management |
INC-211349 | 709607 | Service API called directly in CDH simulation | Running a simulation from the Customer Decision Hub with strategy and dataflow that used customer data resulted in with either a failed run or blank explain detail reports. Investigation showed synchronization was not triggered due to the pxVBDAvailable call returning false, and this has been resolved by directly calling the service API without additional checks. | Decision Management |
INC-212354 | 711210 | Scenario Planner performance improvements | Scenario planner runs were causing out of memory errors on the dataflow nodes. To resolve this, updates have been made to improve performance. Only relevant information will be kept for decision funnel simulations out of SR pages, the memory footprint of data structures used to aggregate and rollup counts has been reduced, and temporary objects will be released as soon as they are not needed anymore. | Decision Management |
INC-212704 | 707114 | Explicit lock release added for Cassandra threads | Customer Decision Hub was not responding for realtime request REST service calls, and thread dumps during start up were showing all HTTP request threads were stuck in CassandraSessionCache.getSession. If an error is thrown while invalidating an old Cassandra session, the system may fail to unlock the write lock. This results in subsequent threads being blocked on the session cache's ReadWriteLock when they attempt to retrieve the session from the session cache. To resolve this, an update has been made to ensure that invalidate session is wrapped in a finally block that releases the write lock and log any thrown errors. | Decision Management |
INC-213176 | 709976 | Data flow stability improvements | All nodes were showing as active and running in the cluster, including background, stream, web nodes, but the queue processor would not start. Log entries indicated "IllegalStateException: Invalid run transition found [PENDING_NODES->COMPLETED] on run [DF_OutboundPreProcessing_SMS] by [EventDescription{originator=CheckNodeAvailabilityTask, reason=Restoring previous state." Due to this, all dataflows were moved to queued state. As soon as the corrupted dataflow was deleted the other dataflows were resumed. To resolve this, data flow stability improvements have been added along with better handling of runs in Queued state. | Decision Management |
INC-213189 | 707343 | Addressed performance issues for classless DSMClipboardPage | The DSMClipboardPage implementation handles Page Group access as a classless page (i.e. pxObjClass = ""), creating potential performance issues in implementations where the page group is used with a very large number of distinct AccountIDs in a short period. This has been resolved by updating the system to not cache keys for page group classless page. | Decision Management |
INC-213217 INC-220642 |
714193 717032 |
Updated context handling for executing data transforms in dataflows | When performing a sort operation in a data transform on a pagelist and invoking the Data transform through a Data flow, a java.lang.UnsupportedOperationException was generated on the sort step even though the data was correct. Investigation showed that the dataflows were using a different execution context than the context used for regular activity execution. An update has been made to ensure the correct context is being used while executing data transforms in dataflows. | Decision Management |
INC-213945 | 709367 | Additional logging and executor work for Adaptive Decision Manager | The Adaptive Decision Manager Pulse operation stopped running on some of the ADM nodes, causing an impact on the model update. To address this, some additional protections have been added for pulse operations running in a scheduled executor, and ERROR logging has been enabled. | Decision Management |
INC-216490 | 713634 | pxIdentifier dynamically set for DecisionData while using GOS | When using a Decision Data component in a strategy which was wrapped with Globally Optimized Strategy (GOS), no results were generated from the DataJoin shape under optimized execution. Investigation showed this was caused by a missing .pxIdentifier for the DecisionData shape during GOS execution. There was a workaround of unselecting the checkbox on the Advanced tab in the Decision Data component, but this has been resolved by updating the strategy kernel service so it will dynamically construct the pxIdentifier based on the skills assignment module (SSA). | Decision Management |
INC-217290 | 721374 | Added support for creating predictive models in Production | While creating a new predictive model rule in Prediction studio, the case was going into broken process after selecting the template with the error message "Error loading D_ProjectList , Reason : No databases defined in properties file:/databases.properties". This was an unexpected use case for creating models in Production level, and has been resolved by updating the flows to turn off the draft mode in this scenario. | Decision Management |
INC-217991 | 714332 | Display of 'check all' check box made configurable | A new overridable 'when' rule pyShowSelectAllCBInSurvey has been added to allow customizing a survey to hide the 'Select all' checkbox in the ComplexQuestionCheckboxTemplate section. | Decision Management |
INC-218145 | 715679 | DSS introduced to control DSM clipboard page serialization | When using a Kafka dataset to consume a message from an external topic that had an attribute name with a special character contained in a page list structure, using a JSON data transform for the mapping in a realtime dataflow resulted in the error "Exception in stage: KafkaDS; LegacyModelAspectInvokableRuleContainer.invoke-Exception encountered a :java.lang.UnsupportedOperationException." To resolve this, a new DSS dataset/CLASS_NAME/DATASET_NAME/JSONDataTransform/deserialization/useDSMPage has been introduced. When the value is set to true, the process will follow the previous behavior of DSM clipboard pages being generated when Kafka records are deserialized using JSON data transform. When the value is set to false, the JSON data transform will generate regular clipboard pages and convert them later to DSM clipboard pages. This would avoid errors when a JSON data transform calls methods from the Clipboard API that are not implemented by DSM pages. This DSS is set per data set instance. CLASS_NAME and DATASET_NAME are placeholders which should be replaced by data set's pyClassName and pyPurpose property values. In addition, a similar DSS, dataset/CLASS_NAME/DATASET_NAME/JSONDataTransform/serialization/useDSMPage, has been introduced for serialization. | Decision Management |
INC-218757 | 714552 | AESRemote updated to be asynchronous | The Autonomic Event Services (AES) agent PushCDHMetrics became stuck and was not pushing metrics to the console. This has been resolved by updating AESRemote to be asynchronous. | Decision Management |
INC-220622 | 680790 | Deprecated Libraries | The following library dependencies have been deprecated, excluded, and/or removed: - ant - bsh - commons-compress - gson - htmlunit - io.netty - jackson-mapper-asl - jdom - jdom2 - jdom-legacy - jetty-http - jetty-io - jetty-server - jetty-util - junrar - logback-core - netty-handler - plexus - plexus-utils - xercesImpl - xstream |
Decision Management |
INC-220622 | 695948 | Updated Libraries | The following libraries have been updated to the most recent version: - commons-collections - cxf-rt-rs-security-oauth2 - derby - dom4j - esapi - google-oauth-client - groovy - h2database - jackson-databind - java-sdk-s3 - Jcommander - json-smart - nekohtml - netty-handler - postgres - snakeyaml - spring - spring-core - underscore - woodstox - xmlsec |
Decision Management |
INC-220893 | 728488 | Errors persisted for single case runs using a custom error handler | Single case processing (SingleAccountData) had failed records when opening the SubscriptionData dataset, but it was not possible to see the failed record details for further investigation. Investigation showed that when running a single case run with a custom error handler, errors were persisted as part of the dataflow metrics, but not written to the database. To resolve this, an update has been made to ensure errors are persisted for single case runs configured using a custom error handler. | Decision Management |
INC-222561 | 721041 | Check added for destination type for distribution test reports | When there were two output destinations in the system, one of type VBD and another of type Database table and both had the same name, an incorrect class was set for distribution test reports and an error was generated when trying to open the report. Investigation showed the system was only checking for the name of the destination and not its type; this has been resolved by adding a pzSetSimulationOutputClass data transform to check for the destination type in addition to the destination name when setting the class for reports. | Decision Management |
INC-225257 | 730293 | Pega DateTime supports pre-1970 timestamps | The function getTimeStampAsDateStamp from Pega DateTime class was not working correctly for dates before Jan 1st, 1970. Support has now been added for this use. |
Decision Management |
INC-228430 | 738822 | Enhanced diagnostics for NLP | Apache Rule-based Text Annotation (RUTA), support has been added for runtime metrics that will allow benchmarking and debug test scenarios over a set amount of time. NLP diagnostics have been introduced which will capture the text analyzed for all incomplete executions in Data-NLP-Report-Summary table. Every text analyzer execution will insert a record into summary table with text and text analyzer details and at end of execution the row is deleted. On system crash, texts with incomplete executions will be present in the table to help identify any special patterns that could cause issues. This summary record insert/delete will occur only if DSS(PEGANLP!ENABLENLPDIAGNOSTIC) is set to false. Currently the DSS is shipped with true. To enable/disable, change the value in DSS and then re-validate and save for the changed DSS to reflect (Configure > System > Release > Upgrade > Validate > click on re-validate and save - Type:rule-NLP-PredictiveModel dropdown and ruleset: give the application ruleset - ruleset in which the text analyzers are created. Click on list and then Click on run.) Additional support: * The activity "pygetdiagnosticnlpsummaryrecords" has been added to retrieve the summary diagnostic records present in summary table whose NLP analysis has not been completed. * The "pyDumpNLPProcessTimersInRepository" activity has been created to dump process timers to a repository. This activity must be called from a job scheduler configured to run on background processing nodes to dump process timers. This will be done on-demand to analyze the performance(time taken) for RUTA execution etc. Before running this JS, configure the repository in prediction studio settings to dump the CSV in that repository. As soon as 1 CSV is dumped, the JS can be disabled. * Debug logs have been enabled for com.pega.nlp.ner.command.RutaCommand (system>operations>log level settings) which prints the RUTA entity type start and end. |
Decision Management |
INC-228430 | 744988 | RUTA handling improved in Prediction Studio | Out of memory errors were seen when using natural language processing (NLP). Investigation showed that certain Apache Rule-based Text Annotation (RUTA) scripts had disjunctive rules which were not able to handle certain types of texts having base64 characters which were introduced in emails via attachments, images, logos etc, and which caused excessive system loads. This has been resolved by modifying the RUTA handling in the Prediction Studio settings to better manage the scenario. | Decision Management |
INC-228935 | 731524 | Writes to movie data set made optional in Delayed learning flow | In order to prevent the Cassandra event store from accumulating excessive tombstones, an option has been added on the movie landing page to disable writes to the event store dataset. |
Decision Management |
INC-229319 | 739145 | Service registry queries optimized | Full table scans were being performed by queries running against pr_sys_serviceregistry_kvs and pr_sys_serviceregistry table. This has been resolved by optimizing service registry queries to avoid full table scans. | Decision Management |
INC-229371 INC-235876 |
730011 741896 |
Corrected Schema inconsistency in pxDR after update | After running make decision and capture response data flows using delayed learning and populating the pxDecisionResults data set, updating the system to Pega 8.7 and running capture response data flow with interactions from before the update resulted in the error "DataStoreConnection$InconsistentTableSchemaException: Inconsistency in table [data.pxDecisionResults_Pega_DecisionEngine_ab5de04587] schema between data store and schema repository". This was traced to a difference in DDS Data Sets pre- and post- introduction of DDS SDK and Data-Admin-DDS-Table. To ensure better backwards compatibility, an update has been made to ensure DdsDataSetFactory checks for Data-Admin-DDS-Table record existence in the dataabse, and if found uses tableName from that D-A-D-T. This resolves inconsistencies of the case of the table name. | Decision Management |
INC-229682 | 731965 | Repository schema updated for DdsDataSetFactory | After update, running the CDH NBA Scheduler resulted in the error "UnsupportedOperationException: This operation is not supported by NonVersionedJDBCJarReader". This has been resolved with an update to use the explicit construction of PRPCSchemaRepository in DdsDataSetFactory rather than loading SchemaRepository via SPI ServiceLoader. | Decision Management |
INC-229717 | 730669 | Cassandra startup calls reordered to avoid deadlock | Nodes received a service request but it became stuck. This was traced to a deadlock related to CassandraSessionCache.getSession, and has been resolved by reordering the method calls used to initialize the Cassandra session to delay adding the session change listener and avoid a deadlock scenario. | Decision Management |
INC-230327 | 738104 | Updated DDS table migration handling | In order to prevent data loss during update, Data-Admin-DataSet-DDS activities have been modified so that an existing pyCorrespondingTableName is not overwritten on subsequent save calls for data sets already saved to the database. |
Decision Management |
INC-230436 | 733943 | PropositionFilter logic updated | In order to reduce processing overhead and better handle custom code, new LogicStringParser has been added for evaluating complex logic in PropositionFilter. | Decision Management |
INC-231505 INC-237193 |
733974 744028 |
Error handling improved for NBA run | The data flow partition on a node was sporadically becoming stuck during a Next Best Action Campaign outbound run when it encountered an issue such as a NoClassDefFoundError, requiring the node to be restarted to clear the problem. This has been resolved by explicitly making sure the flow partition is failed when an input thread dies or there is an error in the dataflow. | Decision Management |
INC-231704 | 741219 | Email template fragment updated to correct footer handling | After creating a new Email correspondence rule and configuring the place holders as per the selected template, when the preview was rendered the "Footer" verbiage was being displayed irrespective of the footer region configurations. This has been resolved by updating the template fragment. | Decision Management |
INC-231808 | 735286 | Heuristics moved from individual Annotator to Operations for consistent tokenization | Because tokenisation heuristics were part of annotator and not part of operations, rule-based taxonomy loaded token operations directly, bypassing these heuristics and resulting in different tokenization outcomes for taxonomy keywords and analysis time text. Due to this discrepancy, emails were getting tokenized and not matching analysis time content. This has been resolved by moving heuristics from individual Annotator to Operations for tokenization to be consistent. | Decision Management |
INC-231889 | 736490 | Email Parser updated with entity models and datatype casing | When the email bot receives a message, all of the content plus the appended disclosure statement added by the mail server is considered. This was causing issues when words in the disclosure matched words added in the actual email body as keywords, causing the email bot to pickup multiple categories matching these words and not routing the service case appropriately. This has been resolved by adding AnalysisType.ENTITY in the analysisType list for pre-processing models and updating the logic to find out if entity extraction is selected or not (without using the analysisType list). In addition, an issue where pxEmailParser model was not running in the email channel due to an issue with preprocessing model datatype casing has been resolved by updating ExecutePredictionInPRPC to lowercase the datatype after reading from the text analyzer rule page, and then perform the comparison. | Decision Management |
Low-Code Application Development
8.8 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-191371 | 684481 | Security update for GetAssignmentDetailsInternal errors | Error handling for pzGetAssignmentDetailsInternal has been updated to return a 403 (forbidden) HTTP status code in place of potentially sensitive information when access is denied. | Low-code app development |
INC-193700 | 685077 | Support added for calling Strategy rule from When Rule | An enhancement has been added to support manually referencing Strategy rules in the When rules using Dev studio. | Low-code app development |
INC-194330 | 708712 | Added special character handling for DecisionTable column-label | The label of a decision-table column was being appended to the original decision-table return-value. The column label and comparator were handled differently for columns containing special characters (+, -, *,...), causing the data after the special character to be trimmed and appended to the row output value. This has been resolved by adding handling for special characters so the output and the label are rendered properly. | Low-code app development |
INC-195793 | 697920 | Enhanced ruleset validation for portal creation | Attempting to create a new portal (web channel) from the app studio using the Creation Wizard with "Branch development preferences" enabled resulted in the error message "No valid rulesets in application preferences". Investigation showed this occurred due to CPM-Portal being specified in the application as the UI class: when attempting to create the portal, the system was evaluating the class against ruleset candidates. The class was not visible to the rulesets in the stack and thus the portal could not be created. This has been resolved by adding validation on UI pages, Int and Data classes in the application to ensure that they exist in user rulesets, and by adding an allowance for classes to exist only in branched rulesets and not the base ruleset during check if the ruleset is present in application stack. | Low-code app development |
INC-202249 | 693323 | Corrected doubled ampersand passed to message rule | In drop down the ampersand "&" symbol was displayed correctly, but passing that value as a parameter to a message rule used in the page-set-messages method doubled the "&" symbol. This has been resolved. |
Low-code app development |
INC-205666 | 702935 | Database table correctly prevents deletion if there are descendant classes | When deleting a concrete class with descendant classes via an activity (Rule-.Delete), the Rule-Obj-Class.ValidateDeleteInternal activity was throwing an error message indicating the class could not be deleted due to descendant classes. However, the corresponding database table rule was deleted anyway. Investigation showed this was caused by ValidateDeleteInternal not reaching the Obj-Save-Cancel step. This can be fixed by modifying step 11, the post when conditions, to jump to END and set the END label at the Obj-Save-Cancel step instead Exit-Activity, but this issues has been resolved by updating all failure states to run end step. In addition, security has been updated to disallow "Allow invocation from browser". | Low-code app development |
INC-207210 INC-227714 |
704137 730395 |
Empty check added to OpenRuleAdvanced | A blank screen was displayed when attempting to open a requirement set rule in Dev Studio. This was a missed use case while updating the OpenRuleAdvanced control to handle BAC compatibility, and has been resolved by adding an empty check in addition to the existing null check along with an 'if' condition to check for pyActivity input. | Low-code app development |
INC-209158 | 722414 | Loop handling updated for Decision Table OR conditions | The system was crashing when saving or checking in a decision table with 21 columns and 20 rows where each cell contained 1, 2, or 3 OR conditions. Investigation showed this was caused by an indefinite number of loops when 'or' conditions were used in the test consistency activity, and this has been resolved with an update which ensures only the specified number of loops are performed. | Low-code app development |
INC-209426 | 706803 | GetFunctionsForLibrary retrieves 10,000 rows | Some functions were missing from the expression builder browser and search results when pyShowInternalLibrary was set to true for including internal functions in the results. To resolve this, the default value for "Maximum number of rows to retrieve" in pzGetFunctionsForLibrary has been increased to 10,000. | Low-code app development |
INC-211248 | 713157 | Survey navigation type set for use with complex CB refresh | After upgrade from Pega 7.1 to Pega 8.5, creating a legacy survey used in pxSurveySection with a complex CB question page that contained a refresh option had collapsed tree navigation, the survey name was blank, and duplicate labels were found in picklist questions. To resolve this, an update has been added which will set the navigation type in parameters after a complex CB refresh and skip page copy while upgrading survey work objects. | Low-code app development |
INC-213502 | 711798 | Updated context handling for DxAPI Perform Assignment lock | The DxAPI Perform Assignment was generating the error "ValidationMessage:Unable to unlock GROUP-DISPUTES-WORK". This has been resolved by adding an update to ensure proper context is set for getting an additional lock handle. | Low-code app development |
INC-213625 | 712298 | Corrected null values being set to 0 in GenerateExcel | The pxGenerateExcelFile activity was loading $0.00 in place of a null value for decimal columns. This has been resolved by updating the logic for GenerateExcel.java to skip double properties default value for non-existent clipboard props and extend the same fix to the integer class. Safety checks have been added before setting cell type to check if property exists, and handling has been added for a specific exception instead of generic exception for both decimal and integer use cases. | Low-code app development |
INC-213918 | 714453 | Discard button works consistently | After check out, the discard button was not working consistently for decision tables or MapValue. Investigation showed this occurred when an exported file was being downloaded in the same window, as the thread would be busy with the file and not able to perform the discard action on the window. To resolve this, the configuration for the download on the same window has been removed, exportToDecisionTable has been modified to handle an iframe, and a runScript action has been added to register the exportToExcel activity and download in iframe. | Low-code app development |
INC-215785 | 722555 | Corrected logic for parsing imported Excel formula cells | Integers specified as cells with formulas in Excel were getting an additional ".0" in them due to them being parsed internally as doubles during the floating point arithmetic of the Apache POI library. This has been resolved by modifying the logic in ExcelUtils.java to apply DataFormatter to get the string value instead of an integer by default for a formula cell. | Low-code app development |
INC-216935 | 714048 | Corrected decision table scroll bar display in resized section | Resizing a decision table window was causing the horizontal scroll bar to move out of the section while scrolling. This has been resolved by updating the HTML and adding the needed CSS. | Low-code app development |
INC-218119 | 726326 | Warning added for Production ruleset included in Application rulesets | The configuration where the same ruleset exists under both Application > Advanced > Production rulesets (customization) as well as Application > Application rulesets is not expected. Therefore, if any Production ruleset name equals any Application ruleset name, the following severe guardrail message will be generated: "Production rulesets should not also be included in Application rulesets. Ruleset <Ruleset name> is found in both. This configuration is not supported." | Low-code app development |
INC-218309 | 722157 | Helper text added to X icon in Theme Cosmos delegated rules | There was no helper text on the X icon in delegated rules when using Theme-Cosmos. This has been resolved by updating the close icon in Rule-Obj-Class!pzDataTypeActionsnow with the text "Click to close". |
Low-code app development |
INC-218543 | 729993 | Control added for Deployment Manager guardrail evaluations | When using the Deployment Manager merge pipeline to merge branches from a development system, an exception was raised raised by the pzQueueProcessRuleForGuardrails activity of the Standard Queue Processor after every merge was completed even if it compiled successfully. As a result, after every branch merge a new broken queue item remained in the queue of this processor. Investigation showed the Deployment Manager creates and deletes Rule-Admin-Product instances faster than they can be queued for processing, resulting in this error. This has been resolved by creating pyIsApplicationGuardrailsEvaluationEnabled in Rule-Admin-Product that always resolves to false so that Product rules created by Deployment Manager do not create errors in pzQueueProcessRuleForGuardrails. |
Low-code app development |
INC-218935 | 728229 | Keyboard access added for delegated decision tables | Delegated decision tables were not accessible by keyboard, interfering with editing the table. This has been resolved by adding the tabindex and appropriate event handler of keyboard actions for the grid cells that are clickable/editable so the content of the popup to select the properties is accessible by the keyboard TAB and ENTER, and the decision table grid cells are now accessible via keyboard tab. |
Low-code app development |
INC-219656 | 717375 | Null check added for Application/AccessGroup system pages | In some scenarios the Application/AccessGroup system pages used by the Choose Best RuleSet API to group/cache the user's ruleset could be null, resulting in a null pointer exception when using the pxCreateRecord Activity for the data instance creation. A null check has been added to avoid the exception, and a complete resolution for the null pages will be available in a future release. | Low-code app development |
INC-220166 | 724348 | Declaratives processing temporarily disabled for DX API request | After update, trying to navigate from one assignment to another assignment by using the DX API post assignment request displayed a date format error due to rule changes that caused the declare trigger to be called at the time of getting the response. This caused validation to fail. To resolve this, an update has been made to temporarily disable declaratives processing when processing DX API request content. | Low-code app development |
INC-220293 | 726323 | Operator ID ruleform "Reporting To" supports large number of users | In a site with more than 10,000 operators, the "Reporting To" field in the operator ID rule form did not display operators beyond 10,000. This has been resolved by updating the Reports To component to an autocomplete in the Data-Admin-OperatorID!pzRoutingSettings, which is using the new data page D_pzGetOperatorsAndFilterByID and report pzGetOperatorsAndFilterByID. |
Low-code app development |
INC-220385 | 720008 | Corrected Branch Code Score / Unit Test Rule count issue | When reviewing branch quality, the "Rules with Test Cases" indicated 5 out of 7 rules were covered, but no rules were listed in the "rules without unit tests" tab and all rules within the branch had unit tests where applicable. Investigation showed the filter for withdrawn rules was not working correctly and they were shown as not having test cases. In addition, when a test case was in a branch but its tested rule was not in the branch, the test pass percentage calculation was being skipped and displayed as 0%. These issues have been corrected. | Low-code app development |
INC-220472 | 729744 | Circumstance template list correctly populated | While creating the Circumstance definition, templates were populated on hit of the down arrow but the same configuration was not working for the dropdown for creating the circumstanced rule to select the template. Investigation traced this to an issue with the query generated in pzGetCircumstanceTemplateRules, and this has been corrected. | Low-code app development |
INC-220770 | 718026 | Null check added to getBaseRef | When using a customized Cosmos portal that included tabs, some of the Pega APIs were not available in the child frame and javascript errors were generated when calculating the clipboard path for live UI elements. This was traced to invalid references to "pega.api.ui.util.getBaseRef", and has been resolved by adding null checks to the getBaseRef API call to make sure javascript errors are not thrown. | Low-code app development |
INC-222791 | 721370 | GET API will skip case locking | After update, performing a GET call on an assignment was unexpectedly locking the case. This was traced to a difference in handling: Pega 8.3 performed an Obj-Open-By-Handle of the workobject without acquiring a lock, while Pega 8.6 calls Assign-.acquireWorkObject which acquires a lock on the work object thereby affecting the other requestors from accessing the case. An initial fix for this issue enabled optimistic locking, however this did not resolve the issue in scenarios where there were concurrent calls and optimistic locking was not used. This additional update will skip locks on the work object for V1 GET assignments/{id}, GET assignments/{assignmentId}/actions/{actionId} and GET cases/{caseId}/actions/{actionId} and corresponding action refresh APIs. | Low-code app development |
INC-224487 | 729466 | Security test status message includes assignment | After update, the error message generated during a security test returned Status OK 200 but without any content. This was traced to a skipped step in pzGetAssignmentActionDetails activity and has been corrected. | Low-code app development |
INC-225615 | 725299 | BAC updated for delegated circumstanced decision table rule | An unregistered request error was encountered while launching the DelegatedRulesPage harness when pyBlockUnregisteredRequests >=1. This was traced to a delegated circumstanced decision table rule which caused a request error for the @baseclass.pzLookupCircumList activity, and has been resolved by updating the BAC handling for this activity. | Low-code app development |
INC-227819 | 735349 | Improved browser compatibility for ContentDisposition header | When files were downloaded from a Sharepoint repository by clicking on the link, the filename was appended by a unique case instance ID or a sequence number to avoid duplicates. This caused a workflow disruption due to the reupload considering the file to be new rather than updated. This was traced to an issue with the usage of the ContentDisposition header which should have set the default file name: as created, the method was not compatible with Google Chrome on Microsoft Windows and was ignored. This has been corrected by updating the ContentDisposition header to set the default file name correctly when using supported browsers. | Low-code app development |
INC-229440 | 734024 | isRulesetLocked updated for efficiency | When trying to access some access roles, the error "The number of database bytes input for this interaction has exceeded the ERROR level for Requestor" was generated. Investigation showed there were many read-BLOB events being triggered by the when rule pzRuleInLockedRuleSet. To address this, isrulesetlocked has been modified to not open every version of a ruleset, but instead perform a simple count and check if the ruleset exists. | Low-code app development |
INC-233264 | 743670 | Rule updated to "Refactor Copy Move Merge" | The Pega-RulesRefactoring:08-01-01 agent rule "Refactor Copy/Move/Merge" has been updated to remove the '/' character as it was interfering with the agent name validation. | Low-code app development |
Mobile
8.8 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-183485 | 699787 | ClientCache performance optimization | In order to improve performance for the mobile app, updates have been made to optimize the ClientCache list interations. | Mobile |
INC-190053 | 680232 | Mobile attachment count corrected | Parametrized data pages were not being populated as expected, causing an incorrect attachment count when opening a case in Mobile. This has been corrected. |
Mobile |
INC-192649 | 706132 | Basereference context available for attach content control | An "undefined" error occurred when attaching a file using the attach content control in the mobile harness. To resolve this, support has been added to run attachcontent in basereference context. This can be enabled by setting pega.attachToCtxPage to true. | Mobile |
INC-194932 | 686277 | Handling updated for offlineWorkIDs map | Intermittent failures were seen when deleting attachments on Mobile. These were traced to pega.ui.DCUtils being undefined, and has been resolved by populating the offlineWorkIDs map for attachment-related actions. | Mobile |
INC-198193 | 723626 | Error correctly shows for each attempt to upload an oversize file | The error message indicating an uploaded file exceeded the permitted file size was only shown on the first try on Android. Subsequent attempts to upload the same oversize file did not generate any error. This was due to a persisting value, and has been resolved by explicitly clearing the input value for the mobile browser upload. | Mobile |
INC-198249 | 705091 | Security updates for packaging mobile app | Unsafe properties such as password and userId are now explicitly filtered from the Operator object during the mobile app packaging process. | Mobile |
INC-201633 | 706557 | Reload icon disappears when refresh is ready | After updating the Field Service Mobile App from Pega 8.3 to Pega 8.6, the wait icon continued to be visible even after the refresh was completed. This has been resolved. | Mobile |
INC-205683 | 702563 | Data transform actions supported in offline app | Support has been added for pre- and post-processing data transform functionality and validation in the local actions of the offline app. | Mobile |
INC-210526 | 705638 | Mobile supports icons for file attachment | Attaching a file to a case in a mobile browser generated a script error popup. This has been resolved with code to support using icons to attach files on mobile. | Mobile |
INC-211208 | 709648 | Added fallback handling for missing Google Maps marker value | The Google maps location position control was not showing the marker if the marker source was a Property. No issues were seen if a data page was used as the marker source. This was due to the pega.util.Dom.getElementsByName(markerPropertyHandle) being returned as null. Since the property value was not found in DOM, the latitude and longitude values were not resolved for the marker object. This has been resolved by relying on the markerPropertyValue as a fallback in case the property bound to the marker is not part of the DOM. | Mobile |
INC-214160 | 709283 | Access group context handling updated for Mobile | After update, a new mobile application for a specific access group was not applying the correct access group for an operator with multiple access groups but instead used the default access group. This has been resolved by moving the logic responsible for switching access groups for Pega Mobile Client from the Authorization.getInitialAccessGroup class to the SessionAccessgroupInfo class to ensure Authorization/SessionAuthorization gets the information about the default access group for the current context. | Mobile |
INC-220749 | 719942 | Optimizations added for large data pages | Attempting to download a material master which has 2 million records timed out after 5 minutes. This has been resolved by adding optimizations that include the batching of large data pages. | Mobile |
INC-222126 | 721902 | Improvement for mobile display error related to harness timing | After updating from 8.1 to 8.6, working very quickly on mobile to create a case and refresh it resulted in a "Display error" screen that included the message "Failed to find instance @baseclase.pyCreate of type Rule-HTML-Harness". This was caused by the system not being initialized with the needed content and some target parameters therefore being evaluated as null. A preliminary fix for closeDocCallback when WebView is not loaded has been added which has significantly reduced the frequency of this issue. Additional work will be done towards a complete resolution in a future release. | Mobile |
INC-224923 INC-226156 |
735843 735745 |
Autocomplete field loads in offline iOS | After converting large data sets to the Large Data Page Structure, some data pages were working in the Android app but not in iOS when Offline Support was enabled. This was traced to the autocomplete field of type 'text' not loading correctly, and has been resolved. | Mobile |
Project Delivery
8.8 Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-201109 | 701941 | Servlet management documentation updated | The documentation for Servlet management has been updated to clarify that before you can move URL patterns using the Servlet Management landing page, you must remove the web.xml file from your Pega Cloud environment. If the * URL pattern is still available in the web.xml file, it remains in read only mode and cannot be edited using the indicated steps. More information is available at https://docs.pega.com/security/87/moving-url-pattern-between-servlets | Project Delivery |
INC-205525 | 699064 | Documentation updated for Samesite settings | The documentation for enabling and configuring cross-site scripting settings has been updated to clarify the definitions of the Samesite settings Lax, Strict and None: https://docs.pega.com/security/88/enabling-and-configuring-cross-site-r… None – If you select this option, Pega Platform offers no protection. The browser attaches the cookies in all cross-site browsing contexts. Lax – If you select this option, Pega Platform provides a reasonable balance between security and usability for websites that want to maintain logged-in sessions after users arrive from an external link. The browser does not send cookies in requests from non-originating sites. Strict – If you select this option, Pega Platform prevents the browser |
Project Delivery |
INC-209744 | 703275 | Documentation for job schedulers updated | The documentation for how job schedulers use System Runtime Context (SRC) has been updated to specify that at run time, any application-specific metadata such as work ID prefixes, in any of the applications in the SRC stack, is not available to the job activity. | Project Delivery |
INC-214974 | 721179 | Documentation updated for accessing D_pyUserInfoClaims | When logging in using Org Credentials, trying to get the user details from D_pyUserInfoClaims did not return any information. This was due to the D_pyUserInfoClaims datapage being available only after authentication, so the claims information was not available during operator provisioning. The documentation located at https://docs.pega.com/security/88/mapping-operator-information-openid-c… has been updated to include the following note: "This page becomes available and can only be accessed post authentication." | Project Delivery |
INC-217942 | 716932 | BIX article updated for XML extract rules | The BIX article "Creating and running an Extract rule" has been updated to reflect that the "Get all properties" option fetches basic properties only, and that properties must be selected manually for non-BLOB tables. | Project Delivery |
INC-223851 | 722732 | Property encryption documentation updated | Documentation on encryption has been updated to clarify that Property Encrypt policies can only be created in Work- Data- , and Index class descendents. | Project Delivery |
INC-225373 | 737824 | Documentation updated to clarify enabling "Application data encryption" cannot be undone | The documentation regarding encrypting application data has been updated to clarify that once "Application data encryption" is enabled, it is only possible to change the platform cipher from one provider to another standard or custom provider but it cannot be disabled or returned to default data settings. "Caution: After you enable application data encryption, you cannot disable it and restore the default settings. However, you can change the initial encryption type to another encryption type as necessary." "Caution: If you delete the KMS master key or the KMS master key expires, Pega Platform cannot decrypt the previously encrypted data, which can result in data loss." |
Project Delivery |
INC-226047 | 726468 | Upgrade from Pega 6 documentation updated | The documentation for "upgrading from Pega Platform version 6.3 SP1 or earlier: Starting from a single-schema configuration" has been updated to clarify that a new rules schema should be specified as the target rule schema. |
Project Delivery |
INC-234290 | 742941 | Conversational Channel training model documentation updated | Documentation for Conversational Channels has been updated with additional information about the process of creating training data based on CSR actions such as 'create a case' or 'send a reply using suggested/other replies'. | Project Delivery |
Reporting
8.8 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-185824 | 676628 | Corrected filtered column list sorting in Report Browser | Sorting was not working in Report Browser for a column list when a filter category was selected. This has been resolved by modifying the pzReportListSort activity to set the correct parameters in step-1 and setting pzSetCategoryParam to retain the sortTitle parameter in step 1 with an added step -2 to call the pzReportListSort activity. | Reporting |
INC-198725 INC-216416 |
707483 713848 |
Elasticsearch will split queries to avoid URL length limits | Elastic Search Functionality was not working and showed the status as Offline. Investigation showed that when an external Elasticsearch setup had an index prefix length = 200 and a large number of dedicated indexes, the error "too_long_frame_exception, reason: An HTTP line is larger than 4096 bytes" was generated. In this case, the system was working with approximately 87 dedicated indexes and the name for each of them was sent over the URL, resulting in this error message. This has been resolved by updating the system to split queries so as to not exceed the HTTP line limit in Elasticsearch. | Reporting |
INC-201219 | 696610 | Updated chart button markup | Some of the buttons were incorrectly displayed while clicking "Edit Report" from the Cosmos report browser. This was due to the buttons generating markup that was used to support older browsers in pzChartButtons, and has been resolved by updating the button markup. | Reporting |
INC-202447 INC-205075 INC-215209 |
698658 698740 714621 |
Updated variable handling for filter logic to avoid reuse | When adding the property "ItemStatus" as a filter for a report, the validation message: "This property does not exist or has no column mapping" appeared. This was traced to an empty caption for a class join property used in the filter due to RRFilters_Logic reusing the strFieldName variable, and has been resolved by updating the variable handling to use a unique name, strPropName. | Reporting |
INC-202480 | 699081 | Resolved report filter section freeze | When opening a report with a count column, changing the order of one of the report columns resulted in the report freezing and requiring the report to be closed and re-run. This was traced to a double filter popup appearing that did not close after the column sorting, which happened if the report definition was configured as a summary with an aggregated column such as "Count” combined with a "Do not display group headings" setting on the Report Viewer tab. To resolve this, a new step has been added in the Activity pzPopulateSortOrder to call the pzCancelFilterLogicChanges activity. | Reporting |
INC-205464 | 721605 | Performance improvements for KYC query | The GetApplicationKYCTypes report definition was exceeding the default maximum elapsed time of 30 seconds, causing all cases which were part of the due diligence milestone in Client Lifecycle Management framework to be auto-completed. This has been resolved by improving the KYC Items query logic by removing mergeJoin and adding HashJoin Hints. | Reporting |
INC-209399 | 708572 | Handling added for indexing items exceeding Kibana max size | Indexing cases was generating errors from Kibana indicating "Failed to index document: java.lang.IllegalArgumentException: Document contains at least one immense term in field="_m_MailBody" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped." To resolve this, if an embedded property exceeds the max length defined by Kibana, it will be truncated at 32k bytes in order to allow indexing to proceed. | Reporting |
INC-210837 | 707178 | DateTime property correctly formatted in Report Editor | When a list report was created via the Report Editor, dragging and dropping a date time property which was embedded inside another page and choosing the format as Date and Time resulted in the property taking pxTextInput instead of pxDateTime. This has been resolved by updating the pzMergeAutoGenForProp activity to get the correct class name for embedded page properties. | Reporting |
INC-210989 | 713050 | Extremely long properties will be trimmed for export to Excel | After creating a report definition that contained a column of more than 33,000 characters, exporting the report to Excel resulted in an exception. This was due to an Apache limit on xlsx files, and has been resolved by updating the ExcelDataGridGenerator.java file to trim more than 32767 characters of a property when exporting to Excel. This recreates the previous behavior of the export seen in Pega 7. | Reporting |
INC-212157 | 721530 | Report filter values correctly displayed | The data page name was being displayed in report filters instead of actual values. This was traced to a missing step in the activity pzResolveCopyFilters which was needed to get the data page values in the report filter prompt, and has been resolved. | Reporting |
INC-215062 INC-218491 |
722018 717433 |
Removed ORDER BY clause duplication when using MSSQL | After updating from Pega 8.4 to Pega 8.7, executing the query for the report definition generated the error "SQLServerException: Incorrect syntax near the keyword 'ORDER'." Investigation showed the ORDER BY clause was added to the Native SQL query from the standard dataflow background task and from the native SQL API as well when using an MSSQL database. This has been resolved by adding changes to restrict the order by clause if the SQL query has order by clause already for MSSQL. | Reporting |
INC-217475 | 719041 | Corrected duplication of records in Elasticsearch | After creating a dedicated index for a data class, modifying any data record for external Data/Work classes caused duplicate documents to be created in Elasticsearch. This has been resolved by updating the Reindex _id field to use the pzInsKey value instead of an auto-generated string. Once this update is in place, re-index is required to remove already created duplicates from the index directory. | Reporting |
INC-217656 | 722530 | Elastic Search honors case sensitivity for custom data | Case-insensitive search was not working for custom data dedicated indices which had the "Enable search results for all properties" option enabled in the Report Definition. Investigation showed that in the CustomSearchPropertyDefinitionFetcher class for all index properties, new SearchPropertyDefinition objects were created with caseInsensitive field set to false. This led in some cases to incorrect merge where it was expected the caseInsensitive field would be set to true. To prevent this, the CustomSearchPropertyDefinitionFetcher class has been updated so the caseInsensitive field for new SearchPropertyDefinition objects is set based on existing instances with the same pyPropertyName if such exists. | Reporting |
INC-217974 | 715428 | Handling added BIX extraction failure when called from custom activity | After update, BIX extraction was failing but email from the schedulers indicated success. Investigation showed that when extract was called from a custom activity by calling pxExtractDataWithArgs, the stepStatusFail 'when' rule in the custom activity was not capturing all the exceptions specific to database extracts. This has been resolved by adding the necessary handling. | Reporting |
INC-220663 | 724471 | BIX -J usage for DST can be used in Pega 7 mode | After upgrade, there was a difference in the handling for a time zone with DST when executing a BIX extraction rule through command line arguments like -J with short form. In Pega 8.5+, -J CST6CDT always displays Date time to CDT; In Pega 7, -J CST6CDT displays Data Time based on CST or CDT (i.e. before daylight savings or not). This was due to changes made to set the time zone to address a different issue. While there is a workaround of using -J America/Los_Angeles, modifications have been made to support DST in the PEGA 7 format while running the BIX extraction rule from command line or with a "pxExtractDataWithArgs" activity with "-J" option. |
Reporting |
INC-222237 | 727705 | Handling updated for space in Pulse search report filter value | The Report filter was not working correctly if there was a space in the Pulse search filter value. To correct this, an update has been added which will add parentheses so the filter value is treated as a single value if pyUseTokenizer is set to false, the filter is not a security filter, and the filter value contains whitespace. | Reporting |
INC-223448 | 722481 | Documentation updated to clarify a complete reindex is required for search landing page after cleanup | The "Rebuilding search indexes from the user interface" article has been updated to indicate that after the index directory cleanup, the search landing page reindex will only be available once the complete reindex is completed. If individual classes are reindexed, the state will still be incomplete. | Reporting |
INC-230454 | 732407 | Corrected Custom Search Property handling with embedded properties | While using full text search, Enter Action set was not passing data entered in the search property. Investigation traced this to an issue with the Custom Search Property (CSP) transformer combined with the enabled DSS indexer/srs/includeCSPEmbeddedPropertiesInDataModel, and this has been resolved. | Reporting |
INC-230911 | 740100 | Apply filter option handles passed data page reference | The GetGridColUniqueValues activity was failing on step 3 when the data page reference was passed as a parameter of source report definition in a grid. This was traced to missing filter parameters for this use case and has been resolved. | Reporting |
INC-231721 | 741742 | Dataview API correctly returns value for embedded fields | n QueryableDataViewTransformer, pxObjClass is populated when the payload has no embedded fields and special processing is not required. Because of pxObjClass being present, the values are parsed as per the property type and correctly populated on the clipboard and a boolean is generated correctly in the response. However, when the payload has embedded fields and special processing is required, the response body was not populated with pxObjClass and hence all fields on the clipboard were treated as strings and the data view API responded with the values in as a string irrespective of type. To resolve this, page properties have been enabled in the aggregation validator and the transformer in QueryableDataViewTransformer.java has been refactored to link the property definition. | Reporting |
INC-231797 | 738503 | Restored Export to PDF for summary view | Clicking the Export to PDF button from Summary view did not create the document and no events were generated in the tracer or logs. This was traced to a naming error in "appendSecurityTokens" on the SummaryViewHeader and has been corrected. | Reporting |
INC-232010 | 740693 | Report filter error message persists on the screen | When attempting to use an invalid report filter such as "past 14 days" when that timeframe was not available, the error message appeared briefly and then disappeared. Investigation showed the runReport activity pzResolveCopyFilters activity was called and caught the “Invalid value” exception, however the system continued to proceed so the error message did not persist in the screen. This has been resolved by adding a jump condition to step 2 of pzResolveCopyFilters on StepStatusFail to preserve the error message. | Reporting |
INC-232127 | 741807 | View history export updated for BAC | A 403 error was generated when trying to click Export to Excel in view history. Investigation traced this to the Export to Excel activity not being registered with basic access control, and this has been resolved by modifying the URL formation to pass the necessary parameters to register the activity in the menu harness. |
Reporting |
Security
8.8 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-173596 | 673104 | Apache Commons HttpClient dependency removed | As part of moving from the Apache Commons HttpClient project (which is at end of life and no longer being developed) to the Apache HttpComponents project, openws dependencies on the commons-httpclient jar have been removed. | Security |
INC-188127 | 678350 | Updated cache key generation for ROPC | After configuring outbound email functionality using MSGraph with OAuth 2.0, sending the emails failed consistently following passivation. Running "Test connectivity" in the Email Account data instance then seemed to restart the functionality and the automation "Create And Send Email" subsequently worked. This was traced to a missing username in the cache key generation for the Resource Owner Password Credentials (ROPC), which caused the same token to be fetched when attempting to dynamically generate different usernames, and has been resolved. | Security |
INC-194865 | 695620 | Corrected report definition save-as-image option | Attempting to save a report definition as an image resulted in an access denied error stating "Browser fingerprint validation failed : A request was received with an invalid or missing browser fingerprint. The request was denied", and the user session was closed. The security SECU0017 alert is generated when a request is sent to a Pega application and the browser fingerprint is either missing or does not match the expected value. The system tries to check the type of request for every requestor ID and fetch the CSRF token, but in this case it was not matching with the token present on the requestor thread. This has been resolved by adding scripts to send the hidden input value needed. | Security |
INC-198571 | 708634 | SSO update | In order to ensure shared SSO direct links are used as intended, an update has been made which will explicitly require re-authentication for each use of a direct link. | Security |
INC-202702 | 713725 | Ruleset creation process updated to maintain thread scope | On creating a ruleset, the system generated the error "There has been an issue. Please consult your system administrator." If browser cookies and site settings were cleared and the browser was relaunched before logging in and creating a ruleset, the issue did not occur. Investigation showed that the Application page was at the Requestor scope for some of the threads due to handling in the ruleset creation process that removed the Application page and recreated it in the default scope of the thread with the latest state. To resolve this, the process for deleting the Application page and recreating it on the Requestor page has been removed. | Security |
INC-210168 INC-220928 |
732069 739155 |
Added handling for Node Level Data Pages not loading automatically | After update, the MQ listeners were not starting. This was traced to the Global Resource Setting references in the listener rules that utilize data page lookups; MQ listeners started as expected when they were hard-coded with the values present on the data page. Investigation showed this was caused by the activity running in an unauthenticated context, and has been resolved by allowing the app requestor to skip authentication. | Security |
INC-211426 INC-216053 |
706059 716445 |
UI and code changes to support Client Assertion in Open ID Connect | In order to support private_key_jwt, an enhancement has been added which will pass the “Client ID” and “Client assertion” (in the form of a signed JWT) as part of the authorization code grant flow for an IDP-initiated SSO. The Authorization Server will then authenticate Pega (the client) to verify the signature and payload of assertion by retrieving the public key via Pega’s JWKS endpoint. | Security |
INC-212265 | 714014 | at+jwt header type support added | After upgrading from Pega 7 to Pega 8, using JWT validation in the REST service package with type "at+jwt" resulted in the JSON web token being rejected during signature verification with the error "header "typ" (type) "at+jwt" not allowed". Pega uses the third-party Nimbus jar to generate and verify JWT tokens, and this issue was traced to a difference in the versions of that jar: Pega 7.3 uses the nimbus-jose-jwt 5.1 version jar, while Pega 8.6+ uses the 8.20 jar version. Nimbus rejects at+jwt header types by default from the 8.0 jar version. To resolve this and improve backwards compatibility, at+jwt header type support has been added. | Security |
INC-215343 | 711143 | Security updates | Security updates have been made relating to rulesets using allow lists, checks for Java code injections, SAML-based SSO code, and supporting SFTP as part of the validation in the pxValidateURL rule. | Security |
INC-216154 | 718234 | SMTPPort parameter will be passed to ForgotPasswordUtil | When a user triggered the "Trouble Signing in" function, the SentEmailNotification activity connection was trying to use port 25 even if the SMTP Port was configured as 587 in the Email Account instance. This was due to the SMTP Port not being passed to the SentEmailNotification activity, causing a fallback to port 25 for non-SSL connections. In order to ensure SendEmailNotification uses a specified port if configured, pySMTPPort will be passed to ForgotPasswordUtil.java. | Security |
INC-217461 INC-225840 |
714309 730754 |
Key ID made optional for JWT | After update, Connect-REST services were failing with a Admin_Security_Token.Action error. This was traced to kID (key ID) being mandated following previous work done to address an issue. To resolve this and better support backwards compatibility, the kID has been made optional in the JWT header. | Security |
INC-219054 | 718871 | Data key rotation update | After creating a new Azure vault keystore, attempting to force data key rotation produced the error "Unable to save keystore metadata". This has been resolved with an update to use the same master key ID as the old keystore in cases where the master key ID is the same. | Security |
INC-219086 | 724268 | Keypair handling updated | Rest API calls were failing with invalid token error in production due to the keypairs used to encrypt the access token being different for each node. This happened when the keypair cache was maintained at node level instead of being retrieved from a database each time; when a keypair expired, a new keypair was created for each node instead of sharing one because the updates to keypair were not properly communicated among the nodes. To resolve this, a check has been added to see if a new keypair is already available in the database before creating a new keypair, handling has been added for any DuplicateKeyException that might occur while saving a keypair to the database, and a pxCreateDateTime has been added while storing the new keypair in the database. Please also note that the default key rotation period is now 180 days and can be adjusted through the setting AccessToken/KeyRotationInterval. | Security |
INC-222213 | 722509 | Updated support for Client Assertion in Open ID Connect to generate unique JTI | Following an update with an enhancement which added UI and code changes to support Client Assertion in Open ID Connect, the token expiry and issue dates were not getting set properly and the JTI was not getting generated. This has been resolved by adding code to generate a unique client_assertion on OIDC login with private_key_jwt so the JTI in client assertion will be be unique for every login. | Security |
INC-222404 | 727870 | AccessToken can be used for both OIDC SSO and Connect-REST | When trying to specify the AuthenticationProfile with grant_type ‘authorization_code’ in the Connect-REST rule, the AccessToken was not being retrieved, and the error "services.OutboundMappingException: Caught Exception while creating OAuth2 client, Caused by: PRRuntimeException: Unable to obtain access token for client details in authentication profile configured for connector" was generated. The usage case desired is to use the same token for both OIDC SSO and Connect-REST. This worked when the scope was the same, but the key was constructed with a space between the scope and the operator ID while saving the token to the cache. The constructed key did not have this space when fetching the token during Connect-REST. To support the desired use, logic has been added to make the appropriate trim for scope in cache key generation in oauth2clientimpl. | Security |
INC-225503 | 737019 | DSS added to configure outflow signature digest method algorithm | After update, a change was seen in the digest method of a SOAP response. The site was configured to use WS-Security Profile SHA-1 as the digest algorithm, but the warning from the testing tool WCF (Windows Communication Foundation) indicated this was not being followed with the message "the algorithm 'xmlenc#sha256' is not accepted for operation 'Digest'". For better compatibility, the DSS outflowSignatureDigestAlgorithm has been added to support configuring the outflow signature digest method algorithm. | Security |
INC-226479 | 727465 | Cross-site scripting filters added to redirect parameters | Cross-site scripting protections have been added to Param.redirect to improve security. |
Security |
INC-227736 | 744475 | Added polling lock to handle CDK Key rotation issues | An error was generated when attempting to open existing encrypted contacts created in the Sales Automation application. This was traced to multiple nodes generating CDKs simultaneously, leading to a race condition, and has been resolved by refactoring the CDK generation code so it will acquire a lock when polling the database to avoid a race condition. | Security |
INC-227769 | 731726 | ReloadHarness security updated | Security handling has been updated for ReloadHarness to ensure proper CSRF validation. | Security |
INC-228169 | 729003 | Login error messages updated | Exception response messages have been updated in order to improve security around attempts to bypass operator authentication. | Security |
System Administration
8.8 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-163791 | 704030 | Simplified default reference time calculations | After a job scheduler was configured to run at Start time = 21:00:00 for Time zone = Europe/London, the scheduler determined 20:00:00 as the next start time. This was due to the calculation for the next start time using the time zone offset calculation pattern for the date and time stored in System-Runtime-Context.pxCreateDateTime, which had difficulty with changes to the time zone definition implemented in the time between the given date and today (meaning the current time) such as daylight savings time. To resolve this, the default reference time from System Runtime Context will be 'now' instead of Date(0). | System Administration |
INC-184964 | 705932 | TextMask_Encrypted rule added for use with Oracle | When a property was being encrypted by propertyEncrypt access control policy and masked by propertyRead access control policy, it showed a "@@getMaskedValueOfText" error. This has been resolved with the addition of a new rule pxTextMask_Encrypted for Oracle product type which will remove extra spaces from the SOURCE string to handle ORACLE specific usecases. | System Administration |
INC-186897 | 681030 | DSS DisableAutoComplete setting honored | Setting DisableAutoComplete DSS was not working as expected. This was traced to the system not being able to read the DSS value due to timing related to database startup, and has been resolved by directing the system to read the setting in PREnvironment.java instead of from the prconfig. | System Administration |
INC-191404 | 689095 | Tracer settings made configurable for queue processor | An enhancement has been added to allow configuring tracer settings for the Queue Processor module. | System Administration |
INC-200030 | 698955 | Handling added for external Kafka authorization exception | When using external Kafka for stream service, the dataflow was failing with the error 'QueueProcessorDataSubscriberException' when topic create permission was missing. As a workaround, the topics could be pre-created, though a "Topic already exists" warning was generated. To resolve this, the cluster-wide right that a producer needs, IdempotentWrite, has been added. For more information please refer to the link https://docs.confluent.io/platform/current/kafka/authorization.html | System Administration |
INC-202865 | 709921 | Shared partition operations performance improvements | A significant performance degradation was seen in queue processor overhead related to maintaining the partition table. This has been resolved by adding an update which will improve partition operations in a shared context. | System Administration |
INC-205938 | 721198 | Improved handling for heavy use of PushDailyUserData | The PushDailyUserData agent was causing utility node performance issues due to the amount of data it was fetching from pr_hourly table. To resolve this, an update has been made which will run the agent once per day and chunk large data. | System Administration |
INC-206288 | 705267 | Addressed intermittent Issues with OAuth2 | Issues with logging in to a node by way of the access token endpoint were related to the error "JSON web token is rejected during signature verification due to bad signature". This has been resolved by adding clock skew value to the JWT processor bean during validation. | System Administration |
INC-207307 | 709716 | Corrected OAuth jar version for custom Keystore rule | Attempting to create a custom JKS and Keystore rule so it could be pointed to the Pega cipher and use the encrypt and decrypt functionalities failed with an error indicating it was not a valid KMS keystore. This was traced to an issue with a jar version mismatch: upon checking the dependencies for the nimbus-oauth-sdk jar, even though version 6.18.1 was specified the system picked the 8.27 version through transitive dependencies, and the 8.27 version doesn't have the needed CommonContentTypes class. This has been resolved by reducing the version to 6.18.1 in conflicting build.gradle. | System Administration |
INC-210346 | 709712 | Check added to ensure Job scheduler executed only once | When Node A and Node B woke up at the same time to start executing the job scheduler, both were attempting to update the "now processing" node ID with their ID but only Node A succeeded. This caused Node B to generate a "lock already held" exception, then Node B would try to release the lock and update "now processing" node ID. If Node A released the lock before Node B tried to, then Node B updated the "now processing" nodeID and executed the scheduler, causing it to be run twice. This double-run has been resolved by adding a check for whether the job scheduler has been executed recently before starting it. | System Administration |
INC-211100 | 708302 | QueueProcessor timeout made configurable | Queue Processor timeouts were causing thread interruptions, causing items to be processed more than once. To resolve this, the QueueProcessor kafka-write timeout has been made configurable via the DASS Pega-Engine:queueprocessor/dataset/write/timeoutMs | System Administration |
INC-211917 | 709324 | Scheduled-item operations performed in shared context | Scheduled items were not getting processed either by DelayedItemsDataFlowService data flow or by reverting to the pzDelayedQueueProcessorSchedule Job Scheduler, and the number of scheduled items in the pr_sys_delayed_queue table continued to grow even though DelayedItemsDataFlowService showed the processed record count to be increasing. Because the Admin Studio portal was not equipped to show the scheduled record count for the tenant layer in a multi-tenant environment, only the scheduled record count for the shared layer was shown. This has been resolved by updating the system to perform scheduled-item operations in shared context. | System Administration |
INC-213595 | 709694 | Hazelcast documentation updated | The documentation for configuring Hazelcast servers has been updated to clarify how to implement the settings needed to support multiple servers. https://docs.pega.com/configuring-client-server-mode-hazelcast-pega-pla… |
System Administration |
INC-213610 INC-213763 INC-229192 |
708115 708111 729614 |
Job Scheduler explicitly unlocked after nodes restart | If a job scheduler was in running state and the utility nodes were restarted, the background processing nodes were not coming up and resuming as expected and PersistentJobCleanupFactory:PresentMembersJobCleanup was throwing a stale execution exception. Investigation showed locks were not being removed from the database for the job scheduler when the restart was performed (noted in pegadata.pr_sys_locks table), preventing further runs. This has been resolved by adding an explicit lock removal process for this condition. | System Administration |
INC-213808 | 710300 | Stability enhancement to improve platform reliability and resiliency | During a NBA campaign run, the data flow partition became stuck in the in-progress status and the campaign run did not complete. NoClassDefFoundException errors were logged, indicating a connectivity issue with the database after which the node was not able to recover successfully. This has been resolved by adding an enhancement to better handle situations where a database outage is detected. | System Administration |
INC-215005 INC-217728 |
713192 712732 |
Made CommitLog messages more resilient to class change | Persistent class mismatch exceptions were seen while refreshing the ADM models after updating from Pega 8.5. This was caused by changes to the Cassandra adm_commitlog message schema which caused the commit log messages generated to be incompatible with the deserialisation logic present in higher versions of Pega, but as the commit log messages had a time to live of 24 hours the issue self-resolved. However, this has been resolved by setting serialVersionUID for the ModelParameters class so CommitLog messages are now compatible with future minor and patch releases. | System Administration |
INC-215847 | 712003 | Support added for trimming job log for queries | In order to make heavily-used job scheduler queries more performant, this update introduces the ability to trim job logs by max-count using the pzTrimLog activity. | System Administration |
INC-215937 | 713772 | Added exception handling for PageGroup alerts | Queue items were going to the broken queue if there was an issue fetching the alert configuration from the Queue Processor rule. The error "java.lang.IllegalArgumentException: Alert id cannot be blank" was seen. This has been resolved by adding exception handling while gathering alerts from PageGroup so that a malformed alert configuration will not cause overall failure of a processed message, but instead an empty alert will be returned if configuration-data is corrupted. | System Administration |
INC-217781 | 714184 | JobScheduler updated to better handle DST change | If a job scheduler was set to run on a weekly basis between 1 AM CET and 3 AM CET, the DST time change caused the job scheduler to skip that week. During DST, there is one 23-hour day in the year, and if execution time is set to that missing hour the system was throwing an IllegalArgumentException for the non-existent date. This has been resolved by adding a check that verifies whether a given date does exist; if it does not exist, the system will postpone execution time by one hour. | System Administration |
INC-218001 | 719920 | Error text revised for parameterized data page used for token generation | While trying to add a claim in the header of a Token Generation Profile instance, selecting Map From as "Clipboard" and trying to give any DataPage(parameterized) as the source property failed to be saved and the error "JWS Alias— Please provide correct algorithm key with correct key length." appeared. Changing the "Map From" to a Constant and giving a dummy value worked as expected. Tracer showed the error "declare page parameters not supported by PropertyReference", indicating the actual issue: at this time, the Token profile does not support using a parameterized data page. This has been addressed by ensuring an appropriate error message is shown on save of the token profile rule form when a parameterized data page reference is configured. The error will now read "The reference D_pzPreferenceStore[PreferenceOperatorID:"[email protected]"].pxObjClass is not valid. Reason: Parameterized data page reference is not supported." Support for a parameterized data page used with Map From will be taken as an enhancement for a future release. | System Administration |
INC-218340 INC-218909 INC-223376 INC-226163 |
714662 715281 736082 731632 |
Override added to delete records for a stream dataset after processing | Kafka data was accumulating for a Stream data set due to huge volume of inbound calls. This has been resolved by adding support to override pyDeletedProcessed through a DASS in order to remove the records for a particular stream dataset (topic) as soon as they are processed by Pega. | System Administration |
INC-219161 | 724834 | OAuth token handling updated for integrated service | After implementing Webex integrations (appointments & spaces), authorization issues were seen with the error "Cannot retrieve tokens for [email protected] as the logged session is with [email protected]". This was an issue relating to operator validation from requestor page, and has been resolved. | System Administration |
INC-219566 | 721288 | Handling updated for CSRF in queue processor trace | The field level audit on properties was intermittently not being shown on the Audit history table for the first time for some users. This has been resolved by modifying the queue processor trace to better handle CSRF tokens. | System Administration |
INC-221019 | 725148 | Modified timestamp query used by ClusterAndDBCleaner | The job pyClusterAndDBCleaner was failing with the error "ORA-01861: literal does not match format string". This was traced to the sub-activity pzClearOldQueueProcessorBrokenMessages which was not able to remove broken items with encryption in an upgraded environment due to an incorrect timestamp format passed to the Oracle database. This has been resolved by modifying the query to use a timestamp built using INativeSqlBuilder which will include only the information necessary for the deletion of the item. | System Administration |
INC-222107 | 732995 | Trim added to refresh token request to handle extra spaces | The request was failing when attempting to obtain an access token using refresh token when the previous access token was expired. This issue was due to an extra space in the scope in AuthenticationServiceOIDCSource.java, which has been corrected with an update which will trim the scope. |
System Administration |
INC-223376 | 723996 | JMX authentication enabled by default for embedded Kafka and Cassandra | For on-premises clients, a potential vulnerability for a Remote Code Execution using the JMX interface on Cassandra and Kafka using exposed network ports has been mitigated by enabling JMX authentication by default for embedded Kafka and Cassandra. | System Administration |
INC-224954 | 727045 | Enabled turning off general metrics when queue processing metrics are disabled | A memory leak related to QPGeneralMetrics was consuming heap and causing performance issues. Investigation showed queue processor metrics were gathered even when disabled. To resolve this, turning off "General Metrics Handler" while turning off the QPGeneralMetrics has been enabled. Queue processors should now skip the process of collecting general metrics while running activities. This will prevent storing unused (and uncleared) metrics in memory and prevent heap exhaustion. | System Administration |
INC-225519 INC-232137 INC-234016 |
724399 734414 738327 |
Improved handling for thread resolution issues | Queue Processor/Dataflow was moving to STOPPED state due to failed records in its execution. Investigation showed there was a minor logic issue in the queue processor activity which allowed the Page-Remove step to be called even before the pages were actually created, and this has been resolved by improving the recovery from a cleared ThreadContainer which might cause thread resolution issues. | System Administration |
INC-227812 | 733965 | Service SOAP outflow response supports RSA_SHA256 & RSA_SHA384 | When service SOAP was configured in Pega WS-Security Profile with with outflow as signature and the signature method selected as RSA_SHA256, the response from service SOAP was still RSA_SHA_1 and the digest method was SHA_256. This has been resolved by updating WS-Security Profile to support RSA_SHA256 & RSA_SHA384 in service SOAP outflow response. |
System Administration |
INC-232079 | 741121 | Clipboard page instance resolution simplified | Previous work related to removing duplicate clipboard page creation from the pyInstanceInfoForUpdate list in order to resolve out of memory issues has been further updated to address a missed use case. While finding a matching instance with same className during instance list resolution, fault logic was leading to the same java object instance being updated N times and added N times to a linked list. This caused unnecessary complexity and has been resolved by removing the matching instance logic and instead creating items for each entry individually. | System Administration |
INC-234134 | 742477 | Connection list API call will be skipped when not configured | An exception was appearing as part of Robotic Desktop Automation (RDA) flow whenever message service host was not configured. This has been resolved by skipping the connection list API call when the message service host is not configured. A specific Pega log and console log messages have also been added. | System Administration |
User Experience
8.8 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-194446 |
691352 | Mobile app validates collapsed layouts | Validation did not fire in the offline app when the fields were in collapsed layouts. This has been resolved by removing the validateHiddenFieldsInOffline flag for Offline. | User Experience |
INC-220411 |
724062 | Handling updated for BPF in FinishAssignment | After update, executing Wrapup resulted in a 403 error and the operator being logged out of the system with a SECU0017 alert. This was traced to pzBFP being removed from the headers as part of the FinishAssignment activity, and has been resolved with an update to conditionally add/remove pzBFP by checking its value. If it is empty, it will not be added to the form. | User Experience |
INC-178831 | 680984 | Ensured correct context for multi-select | When using multi-select controls, there was an intermittent issue with selecting values using a mouse click. Using the tab key worked as expected. This was traced to the focus being event triggered multiple times so pega.ctx.dom returned undefined values in the second call.This has been resolved by focusing the target element before creation of capsule to ensure the context remains the same. | User Experience |
INC-180100 | 699838 | Scrollbar persists for multiselect | Selecting more than 20 values in the multiselect control caused the scrollbar to disappear. This has been resolved by removing a custom popover height calculation. | User Experience |
INC-183966 | 676560 | Corrected duplicated select file label reading | When using a screen reader, the select file button label was announced twice on focus. Investigation showed this was caused by the helper text and tooltip having the same content which sounded like a duplicate reading. To resolve this, the text is now differentiated. | User Experience |
INC-183996 | 669645 | Step name given heading level for better accessibility | When using the JAWS shortcut for navigating through headings, the Step name was not announced as expected. This was due to the Step name not containing the necessary code for a heading, and has been resolved. | User Experience |
INC-184307 | 673228 | Improved accessibility for overflow menu tab | When a tabbled layout group has more tabs than will fit horizontally on the screen, icons appear to the left and right of the visible tabs to scroll through the available tabs along with a drop down list to select from all available tabs. Running the accessibility tool generated an error message for the down arrow button on the right. This was traced to a set tabindex 0 for unfocusable items, and has been resolved by adding tabindex="-1" for the overflow menu. |
User Experience |
INC-186072 | 677409 | Updated ClientDynamicData HTML Rule | After upgrading from Pega 7 to Pega 8, attempting to open an assignment on the staging environment showed a blank page. This was traced to the system trying to open a declare expression of "PegaComm-" class, and has been resolved by updating the pzClientDynamicData HTML Rule handling for the top level page and enabling the expression calculation checkbox in the Advanced tab of the pyCaseManger7 harness. | User Experience |
INC-186081 | 707804 | Report filter popup displays correctly | The filter popup was not displayed on the report column for which the filter was intended. This has been resolved by updating the popover js to fix the overlay issue. | User Experience |
INC-187756 | 671837 | Corrected close button screen reader accessibility | The screen reader was reading 'close button' as 'close modal button'. This was traced to a lack of a visual focus indicator, and has been resolved by using the pyFlexModalTemplate for local action which uses close button and has the capability to set default focus on close button. This change affects all local actions in pyWorkCommonActions. |
User Experience |
INC-188029 | 691100 | Rich Text Editor will pause until instance is ready for interaction | Outbound email was intermittently appearing blank creating replies using pyReply section. This was traced to the Rich Text Editor not loading completely before the interaction, and has been resolved by adding a brief pause that will temporarily disable the Rich Text Editor until the instance is ready. | User Experience |
INC-188141 INC-199137 INC-211743 INC-229167 |
678159 708167 711670 734199 |
PD4ML upgraded | Issues with PDF generation have been resolved by upgrading PD4ML to version 4.0.13. | User Experience |
INC-188644 | 708960 | Autocomplete cancel closes correctly | Clicking on an autocomplete field and navigating to the next tab without selecting any values caused the autocomplete results to be displayed in the next screen until there was a click or an action was performed in that screen. This was due to the autocomplete not closing correctly, and has been resolved by removing the event.cancelBubble setting. | User Experience |
INC-189413 | 701847 | Moment timezone library updated | After the Volgograd, Russia, timezone was changed, SA-103080 errors began to appear. This has been resolved by updating the moment timezone library to version 0.5.34. | User Experience |
INC-190708 | 688135 | Save works on Ajax container without Dynamic container | After opening a work object and making changes to a required field, pressing the save button did not give any visual indication that the save was performed. Hitting cancel generated a dirty pop up saying changes will be discarded, indicating no save was done. When an Ajax container is configured without a Dynamic Container, all the content is rendered inside a fieldset tag instead of a form tag. While performing the save, the API was looking for the form element in the document and could not find any, and the save failed. This has been resolved by updating the submitWhenFail() API to handle both fieldset and form elements in the dom. | User Experience |
INC-190855 | 718483 | Duplicate items resolved for questionnaires | When there was only one question page for a questionnaire, the question page title was being displayed twice and the breadcrumb showed duplicate steps. When there was only one step in the screen flow, the survey navigation was hidden. This has been resolved. | User Experience |
INC-191756 | 718549 | Corrected dashboard focus highlighting | Dashboard links like "My activities"/"My cases"/"Recent"/"Search” were displayed with a yellow focus highlight even though the user was not currently in those screens. Investigation showed the data-menu-id for control_menu was being appended with the workid until selecting another tab caused it to reset to its original value without workid. This change in menu-id was responsible for the issue with focus, and occurred only when render as single checkbox was unchecked. This has been resolved by removing workid from menuid and adding a unique id for the outside menu and inside case same menu. | User Experience |
INC-194415 INC-211253 |
710825 711280 |
Improvements for dirty popup | Multiple issues have been addressed for dirty popups. 1) While working on an assignment, making a change and then clicking on the left navigation (Home, Dashboard) did not show the dirty pop up as expected, and the change was lost. The dirty pop up did appear on the Cancel button and Actions within the case. This has been resolved by improving the context switching for visibility of the dirty pop up. 2) Attempting to work around the previous issue by clicking "Do not display dirty warnings" only worked the first time it was tried. With this change in place, opening the assignment, making a change, then clicking Home, caused the pop up to appear as desired, but opening the assignment again and making a change, then clicking Home again did not prompt the dirty pop up. This was due to the click handler getting hit twice, leading to the already open dirty dialog being closed during the second call to the function 'isFormDirty' in pzpega_ui_doc_actionRouter.js file, and this has been resolved. 3) When attempting to close the case as a draft, clicking the save button caused the system to keep loading for a few minutes without sign of completing the save process and eventually the browser had to be closed. The content was saved, but the system was not able end the loading screen. This was caused by an incorrect harness context which caused the "SubmitInProgress" flag to be true on the incorrect harness context so the modal was not dismissed. To resolve this, on clicking the "Save" button, after the confirmation modal is closed, the pega.u.d.isDirtyDialogOpen will be reset to false. | User Experience |
INC-194564 | 700782 | Cancel button shown as expected in modal dialog on Mobile | A modal dialog in a mobile app used to show all the phone numbers of a customer did not display a Cancel (close) button after update even though the cancel button was defined on the underlying PhoneNumbers section. This has been resolved by adding a check to assess if the button is visible when calculating modal height. | User Experience |
INC-195683 INC-232970 |
687954 742011 |
Security update for MashUp | Cross site scripting protections have been updated for the LoadMashupPage activity and RedirectTo parameter. | User Experience |
INC-196186 | 725413 | Check added for repeating dynamic layout submit context | The postprocess of a local action was not executing when the local action was in a table that contained a repeating dynamic layout, and a null pointer exception was generated. Investigation determined that when a repeating dynamic layout was used inside a grid, the submit action on the layout was incorrectly happening in the context of the grid. To resolve this, a check has been added to determine whether the repeating dynamic layout is inside a grid so the correct context is used. | User Experience |
INC-199469 | 707514 | PDF margins made available as parameters | After update, margins were different in exported PDFs. This was due to upgraded jar files: PD4ML v3 used setPageInsets(new Insets(top, left, bottom, right)) , but the v4 jar uses setPageMargins(new PageMargins(left, top, right, bottom)) . Because the order of values (20, 10, 10, 10) were not changed this produced a different result. To resolve this, PD4ML margins are now available to be set as parameters: Param.pyMarginLeft, default value 20 Param.pyMarginTop, default value 10 Param.pyMarginRight, default value 10 Param.pyMarginBottom, default value 10 When standard activities like HTMLToPDF / pyViewAsPDF / pyAttachAsPDF are used, add a Property-Set step before calling the activity to add the necessary margin parameters. When CreatePDF smart shape is used, set the parameters via the connector of the CreatePDF. |
User Experience |
INC-200340 INC-220715 INC-222800 INC-225046 |
719090 726415 725125 729892 |
Currency Code updates | A Section configured with an editable currency input using auto-formatting failed to render at runtime if configured using Type -> Number, Symbol -> Currency, Other currency, and Currency -> "USD". The error "Invalid Locale : USD" was logged. This was an unintended side effect of work done to configure currency codes for the Number control, and has been resolved by accounting for the locale settings and handling the condition for the error "Invalid local-USD" so that the the UI rendering appears as expected. In addition, when the Currency control was configured with editable mode "Editable" and "Display value using read-only formatting" checked, read-only formatting generation did not happen for the control. Entering a value and tabbing out caused the ReloadCell activity to return empty content, which resulted in the server returning full HTML markup with a message "Operation Successful". Because the ReloadCell activity handler expected only control markup with formatted value to be returned, the HTML markup containing inline CSS styles in it appeared in the Currency input field on tab out. There was a workaround of unchecking "Display value using read-only formatting" on the control's presentation tab, but this has been resolved by using Post value infrastructure to get the formatted value from the server. | User Experience |
INC-200936 | 703687 | SFTP support added to ValidateURL rule | SFTP has been added to the list of schemes which are accepted as part of the validation in the pxValidateURL rule. | User Experience |
INC-201929 | 692849 | Removed incorrect field validation errors | When integer controls in a section were configured as required field, clicking on the field but not entering any value resulted in the prompt for the required field validation "Value cannot be blank", and any attempts to add a positive integer using number keypad after that resulted in the repeated validation error. This has been resolved by updating pzpega_control_textinput. | User Experience |
INC-202210 | 740665 | Resolved blind transfer error in Pega Call | Attempting to do a blind transfer to another agent using Pega Call generated the run time exception message "Unable to perform ConvertStringToPage, due to invalid inputs." Investigation traced this to the event details not being passed to the UpdateCallFromEvent activity due to the Blind transfer event formatting received from Avaya. To resolve this, an 'if' condition has been added to inpzpega_ui_doc_ajaxengine_js in the PostData function. | User Experience |
INC-202218 | 697349 | Input from Microsoft Windows keyboard numpad enabled | After entering a currency amount using the right side number pad keys on a Microsoft Windows keyboard, a mandatory field validation was being thrown on what appeared to be a correct input. This was due to an if condition in the keyup function that caused entries from the right side number keys to not be considered as input, and has been resolved by removing the condition from the pzpega_control_textinput file. | User Experience |
INC-202793 INC-210760 |
698055 708532 |
Corrected malformed URL | The function used in the session timer to log off the user was not working consistently, and attempting to discard a checked-out delegated Rule did discard the rule. Both issues reported the error "HTTP Status 400 - Bad request". This was traced to a badly formed URL, and has been resolved by wrapping the URL with SafeURL_createFromURL. | User Experience |
INC-204256 INC-233058 |
701949 739763 |
Helper Text displays for radio buttons with 'when' condition | The helper text overlay was not displaying on radio button fields that were conditionally visible using a 'When' rule, though it displayed as expected if a visible expression had "Run visibility condition on client" checked. This has been resolved by adding support for a helper text overlay on radio button with visibility condition (when rule). | User Experience |
INC-204349 | 704561 | Updated check for portal name with search | After update, using search from a Cosmos portal landing page launched the results in a new tab, and the logoff menu did not show which portal was being used. This has been resolved by updating the 'when' rule to check if pxThread.pxPortal contains the portal name rather that testing for equality. | User Experience |
INC-205394 | 706789 | Hidden subprocess steps highlighted in screen flow navigation | When a subflow was used as a last step within a screenflow and the subflow steps navigation links were hidden, the subprocess step was not highlighted as current. To correct this an update has been added that will highlight the circle on the navigation for a subprocess set as last step with substeps hidden, and the lines on the navigation step will be highlighted on the left side for a subprocess set as a step other than the last step and which has substeps hidden. | User Experience |
INC-205517 | 705990 | Corrected clearing filters in mashup | After clearing filter on a table, the screen did not reload and is hidden in Iframe in Mashup. This has been resolved by adding code to trigger the resizeHarness action for clear filters in a mashup configuration. | User Experience |
INC-206058 | 709519 | Property label correctly highlighted after validation failure | The property label was not changing to red after validation failed. This has been resolved. | User Experience |
INC-206220 INC-231325 |
717873 738557 |
Listener timeout added for fetching external content | Email listeners became stuck and did not recover if there was an issue retrieving external content for a message. To resolve this, a timeout setting has been added when fetching external content. |
User Experience |
INC-206401 | 699717 | DIrty dialog supported for multiselect and anypicker | The dirty check confirm popup was not displayed after adding items in multiselect or anypicker and then clicking on cancel. This has been resolved by adding special handling with a value property that will store the selected values necessary for this operation. | User Experience |
INC-206483 | 707090 | Delegated rules page displays proper warning in Vietnamese | Opening the "Configuration" left navigation item for delegated rules and clicking on edit to modify the rule did not display the guardrail warning message properly in Vietnamese. This has been resolved by ensuring the Vietnamese date time is properly formatted as "Ngày dd tháng M năm yyyy". | User Experience |
INC-206577 INC-229714 |
704421 733083 |
ParentKey handling updated for for CS portal | After creating an interaction in the CPM portal and refreshing the CPMPerformIncludes section (top-level section in the Perform harness) on button click, the focus was set to the first property and a large number of "Uncaught harness context does not exist" error appeared on the console and the screen became frozen. Analysis showed that after the refresh the parentKey property was empty, causing the flow to be executed in the wrong context. This has been resolved by adding a condition to set the parentKey for CS portal 'Add document' scenarios. | User Experience |
INC-206773 | 708376 | ScreenFlow called from Dataclass section completes as expected | When calling a screen flow from a section of another screen flow, the flow did not work properly in the modal dialog screen flow but did work in the process flow. Investigation showed that when the second screenflow was opened from the Data class section, the assignment of the first screenflow was not deleted post submission. This has been resolved by adding a conditional block for screenFlow Dataclass section. | User Experience |
INC-207524 | 714707 | Handling added for modal flow to resolve unexpected submit window closure | After creating a child Task and submitting the TaskCreation flow action, a validation error was seen. Clicking on the Submit button again caused the modal TaskCreation window to close. Investigation showed that the WorkLock activity was executed as desired on the first click on submit, but for the second submit the WorkLock activity called Obj-Refresh-And-Lock and the page was refreshed, the work object lock was released, and the error was no longer seen. To resolve this, an update has been made to the WorkLock activity to use a new when rule 'pyIsModalFlowTemporary' so that Obj-Refresh-And-Lock is not called twice. This change has also been added to pzRunFlow. | User Experience |
INC-207593 | 702428 | Spell Check flag removed from Preview and Public Articles | If the spell check button was used when editing a Knowledge Management article, flagged words that were not corrected or set to be ignored continued to display the red flag even when previewing or when the article was being viewed from a public help site. In order to support not showing the flags while previewing or viewing from the Knowledge Management help site, an addition has been made to sanitize underlined words before save or submit. | User Experience |
INC-207631 | 701552 | Decision Table property chooser made accessible | The content of the pop-up "Decision Table property chooser" was not accessible by keyboard navigation. This has been resolved by adding the necessary code for focus inside the iframe. | User Experience |
INC-207785 | 721085 | Updated check for isPreGeneratedMashup | After embedding Pega mashup from one application into another Pega application, attempting to use the 'Getgadgetdata' method to retrieve property values in the mashup resulted in an infinite loop in the javascript function. This was traced to the handling of encryption of isPreGeneratedMashup in this scenario, and has been resolved by passing the parameter separately to check whether it is pre-generated or not. | User Experience |
INC-208199 | 706445 | Added input null check to resolve loading error | The application was freezing while loading if action was taken on the controls while a page level message was visible. This has been resolved by adding an additional null check for input before calling the focus API. | User Experience |
INC-208499 | 702515 | Corrected Ajax container scrollbar with tabs | The scroll bar was not working as expected for a pyCaseWorker Section configured with an Ajax container and "Show as tabs". This has been resolved by overriding the div[data-mdc-recordid] with overflow-x: auto style to get the proper horizontal scroll in the Ajax container. | User Experience |
INC-208629 | 704588 | ReviewArchivedCase shows case hierarchy | After update, opening the archived cases in the ReviewArchivedCase harness did not show the case hierarchy dropdown. Investigation showed this was caused by the D_CaseBreadCrumb data page calling the source activity with wrong instance key, along with the pxCaseBreadCrumbPopulate activity not supporting breadcrumbs for archived cases. The original method to fetch the parent case was "Obj-Open-By-Handle" which supports secondary storage but triggers all declaratives, which may lead to errors under specific configuration. Using "Obj-Browse" instead does not support secondary storage, but does not trigger declaratives. In order to ensure the best coverage for various use cases, this has been updated to conditionally use both methods; the system will use "Obj-Browse" first, and if it fails it will check secondary storage using "Obj-Open-By-Handle".The pxBreadcrumbsCount Declare Expression has also been removed in order to facilitate the data page loading. | User Experience |
INC-208713 INC-225511 |
733189 733185 |
cleanUpHarnessElements invoked to clear dirty objects in memory | The objects for complex fields like table were not getting cleared once the current edits were discarded. This was leading to having the objects with dirty status remain in memory, leading to dirty popups or locks on the page. Investigation showed this was caused by the AjaxContainer div (which contains the grid div) being removed from markup but its reference remained in pega.u.d.harnessElements as a complex element. This has been resolved by explicitly invoking the cleanUpHarnessElements api before deleting the microDCDoc by passing the pzHarnessId as a parameter, which will remove the grid reference in pega.u.d.harnessElements. |
User Experience |
INC-208729 INC-222553 |
711403 724226 |
Repaired Perform for 'Assignments with Errors' | The 'Perform' button was not working on the "Assignments with errors" pop-up. This was an inadvertent side effect of changes made in 'pega_desktop_support' (Pega-Desktop ruleset), and has been resolved by adding a check before calling pega.mobile.isMultiWebViewPegaMobileClient. | User Experience |
INC-208848 | 703873 | Cosmos landing page configuration icon updated | In order to allow changing the Cosmos landing page configuration icon, the harness has been made available. The default icon has also been updated. | User Experience |
INC-209071 | 706038 | Other Currency resolves value in Pega DX | When using Pega DX with the pxDisplayText currency set to "Other currency", only the property name was sent as part of the metadata and not the actual value. This has been resolved by updating "Other currency" to resolve the property reference and get the value. | User Experience |
INC-209906 INC-231076 |
704864 738162 |
AddMessage function shows error on UI | After updating from Pega 8.1 to 8.6, an addmessage function which previously displayed an edit validate rule error message was not working. This was an issue with textinput inside a grid, and has been resolved by adding a style to input text when it has a symbol left aligned and giving the error icon a z-index to show the message when the symbol is configured. | User Experience |
INC-210145 | 710464 | Added dirtycheck handling for case wide flow | After opening an assignment and making some changes, clicking on the configured case wide flow process in the actions menu did not generate the expected pop-up window offering save/discard, resulting in the task being closed without knowing whether the changes were saved. This has been resolved by adding a call back functionality to handle dirtycheck for this scenario. | User Experience |
INC-210495 | 708119 | Left and right arrow keys work for tabbed Ajax container | The left and right arrow keys were not working for input fields inside a tabbed Ajax container. This was traced to a disableArrowKey function in pzpega_ui_tabs js file, and has been resolved by adding an additional check for attribute "data-mdc-recordid" to ensure the arrow keys are active for an input field. | User Experience |
INC-210864 | 706383 | Tooltip added to specify Display Confirmation Message works for for template table only | The Display Confirmation Message check box is a feature only available in template table and is not supported for legacy tables and Repeating Dynamic Layers. Text has now been added for an info tool tip to specify that use. There is a workaround for other areas to call the 'removeFromRepeatSource' function in UserWorkForm. | User Experience |
INC-211018 | 707525 | Number control correct when IME is Japanese | The Microsoft Windows Input Method Editor (IME) allows developers to enter complex characters in four different East Asian languages using the standard keyboard. When IME was in Japanese mode, entering a number resulted in the input happening twice with the result of an entry such as 12345 becoming 124512345. This has been resolved by updating the code to ensure there is no duplicate IME keyboard event. | User Experience |
INC-211082 | 717175 | Updated default portal harness handling for switching applications | After opening the user portal in a new browser tab through interaction with the search, a blank screen was presented when attempting to switch applications via the operator menu. Performing the same actions in the main / originally opened portal worked as expected. This has been resolved by creating a new section pyPortalNavigationHeader in pzPortalNavigation which has an action to open the harness which is available first in D_pzDynamicnavigationpages. This new section has been marked as available to allow local modification of the default harness for sites not using dynamic navigation. | User Experience |
INC-211492 | 725341 | Archived cases open correctly in new window | Attempting to open archived cases from the search results using “Show results in a new window” generated an error. This was a missed use case and has been resolved by updating "pyShowResultsInNewWindow" to have a table to open archived items in a new window. |
User Experience |
INC-211589 | 710335 | App-alias URL shown correctly on app definition rule after switch | When using Cosmos React as the default app, switching from the react-based application to a non-react application resulted in a blank app-name in the application definition URL. Investigation showed the UI was not refreshing correctly on updating values in the app alias pop-up window, and this has been resolved by calling close work before harness unloads if no pending calls are present. |
User Experience |
INC-211590 | 711020 | Auto-complete and calendar popover alignment corrected | An issue with the container alignment of the auto-complete and calendar dropdown popovers has been resolved by removing styling in the pyReportEditorStyling .css which was causing the issue. | User Experience |
INC-211655 | 712351 | Added handling for Malaysian locale date/time | When using the "ms_MY" locale for Malaysia, entering ‘14/02/2022 13:00’ in the displayed DateTime input field generated the error "14/02/2022 13:00 is not a valid date / time value." This was due to differences in the underlying Java version: in Java 8, the API PRDateFormat.getShortDateTimeFormat returns "dd/MM/yyyy h:mm" and the PRDateFormat.getAmPmStrings returns [AM, PM], but in Java 11, the API returns "d/MM/yyyy h:mm a" with PRDateFormat.getAmPmStrings returning [PG, PTG]. For the Malaysian locale ms_MY, the clock format is 12 hour and AM/PM Strings are PG, PTG. This caused environments running JDK11 to fail client side validation for date time when PTG (a 3-char AM/PM string) was selected. This has been resolved by adding handling for this usecase. | User Experience |
INC-211911 | 713053 | Able to expand rows when other rows are expanded | When multiExpand, threadProcessing, and readonly flags were true, attempting to expand multiple rows at the same time collapsed already opened rows and generated an error indicating "target is not defined". This was caused by 'handleEditItem' not calling the collapse functionality for an opened row correctly, and has been resolved by adding a check which allows the expansion of multiple rows for readOnly details. | User Experience |
INC-212623 | 709551 | Dropdown label is accessible when combined with placeholder or tooltip | The screenreader was not reading the dropdown label if tooltips or placeholders were added to the dropdown. This was caused by the label of the element being overwritten, and has been resolved by replacing aria-label with aria-describedby on the input element. | User Experience |
INC-213247 | 708868 | Title attribute added for disabled icons | The disabled icon control in non-template mode used the tempTitle attribute instead of title, interfering with accessibility because no information was available to screen readers. This has been resolved by adding the aria-disabled attribute to the disabled icon control. | User Experience |
INC-213717 | 724533 | Flag added to allow disabling copy/paste style formatting | Copy/pasting text from Outlook or another external application caused formatting issues in the Rich Text Editor. To address this, the flag "window.disablePasteFromWord" has been introduced which allows turning off the feature of retaining formats when copying from Word or Outlook. This flag can be set to 'true' in UserWorkForm to disable this default feature. | User Experience |
INC-213833 | 710187 | HarnessActions.handleMenuAction able to invoke Show-Harness | A 403 Forbidden issue occurred when Show-Harness was called from pega.ui.HarnessActions.handleMenuAction. This has been resolved by adding code to register 'Show-Harness' when it is called in this way. | User Experience |
INC-214020 INC-215794 |
710311 710547 |
Placeholder value display made customizable | The default place holder value (123,456.78) was displayed for the integer controls even when the placeholder was set to None. This has been resolved by modifying the code to allow customization of the place holder value display. If the "Display value using read-only formatting" option present under editable format is selected and the desire is to show default placeholder for numeric fields, "showDefaultPlaceholderForNumber" with owning ruleset as "Pega-UIEngine" must be created and set to true. If "Display value using read-only formatting" is selected and the default placeholder should not be shown in numeric fields, the DSS should be set to false. | User Experience |
INC-214222 INC-214809 |
719320 719133 |
Confirmation message correctly displays | Two issues were seen with inconsistent display of the confirmation message. In one instance, after an assignment was finished the Review harness was appearing instead of Confirm harness and no confirmation message was displayed. In the second instance, after creating a case and moving to the next stage, coming back to the previous stage did not show the confirmation message. These issues were traced to the Ajax container primary getting closed before refreshing the section pyCaseMainPageNotification, causing the harness context issue as well as the failed conditional parameter strPHarnessPurpose issue which caused the message to not display. These have been resolved. | User Experience |
INC-214338 | 712499 | Navigation updated for checkbox control in table cell | Keyboard-only navigation was not working correctly when there was a checkbox control in a table cell. This was traced to the manageFocus function in the pega_ui_templatizedGridComponent js file which was setting the tab index to -1 when the checkbox value was updated. This has been resolved by skipping the execution of this function for checkbox control to handle the case when escape is not pressed before tabbing to come out of the table when there is a checkbox control in a cell. | User Experience |
INC-214791 | 718864 | Phrase Menu supports tab character | After adding a new phrase from the interaction portal landing page, the phrases menu in the chat widget showed a blank and the phrase could not be selected. This was traced to the Menu and Button run-script action generation failing due to a special character, tab, causing a parse exception. This has been resolved by adding handling for the tab character in the jsonstring. | User Experience |
INC-215046 | 714673 | Deleting case in create stage returns user to home/Dashboard | When using a multi-step form in Create Stage, performing a Cancel + Save&Close, then re-opening the case and using a Cancel + Delete, the result of the cancelation is not shown and the user is not returned to the Home/Dashboard screen. This was caused by an issue where the specific AJAX container was not closed, and has been resolved by modifying the pyCaseActionAreaButtons to execute the pyCloseCase local action when clicked to close the case. | User Experience |
INC-215215 INC-222922 |
713855 722995 |
Validations fire on collapsed accordion layouts | Client validation was not firing on the selected tab of a layout group if the accordion layout was collapsed. If focus was switched to the second tab, the client validation on the first collapsed tab did not work. This has been resolved by modifying the 'else if' condition to pass the validation for the fields places in layout group tabs. | User Experience |
INC-215582 | 712287 | Cosmos calendar icon handles allow entry set to no | When using the Cosmos theme, the Calendar icon became disrupted when "allow text entry" option was set to "no". This has been resolved. | User Experience |
INC-215912 | 711382 | Corrected links being replaced by KM rich text editor | When brackets/parentheses were encountered in URL links in the rich text editor used in Knowledge Management, those links were removed and replaced with a # (pound symbol). This was due to a legacy cross-site scripting security mitigation, and has been resolved. | User Experience |
INC-216162 | 718923 | GetNextWork uses correct tabname | Clicking on Get Next was showing the tabname as "Next" instead of the caseid when using the handleMdcTabs function. This has been resolved by setting the correct tabName in case of getNextwork. | User Experience |
INC-216358 | 712231 | Auto Complete working in Mobile Browser configuration | Autocomplete was not working in the mobile browser when logged in as a user and configured with display mode:"in-a-table" and "display as full screen in mobile" disabled. Autocomplete results will always display in List mode in the mobile browser, but with the configuration "in a table" selected and "Display results full screen on phone" unchecked, pzGetACData (which gets called for List mode) was not registered and returned a 403 response. To handle this, the conditions file ActionAssembly.java has been removed so pzGetACData will always be registered. | User Experience |
INC-216404 | 721510 | Table alignment corrected for PDF | The align="center" styling was not getting applied whenever the Rich Text Editor was in readonly mode. To resolve this, the CSS style has been updated to correct table center alignment for readonly Rich Text Editor documents and paragraphs in the pzbase-gadgets-ckeditor and pzbase-div-layout CSS files respectively. | User Experience |
INC-216727 INC-230579 |
730957 742038 |
Inline error message consistent for currency field | After update, an inline validation error triggered on a currency field inside of a text box disappeared when the page was scrolled back to the top. This was traced to the display_removeErrorImage function being called from validation_ValidateFieldOnEvent due to an “onBlur” event, and has been resolved by removing the onblur for a number of decimal type to prevent clearing the validation messages at field level on tab out. |
User Experience |
INC-216927 | 714496 | Conditional handling added for perceived invalid valuelist reference in design time | After adding a value list property '.pyDateTimeValue(2)' in a section configured in the view editor, the design time error "config issue" was shown. There were no errors at run time and the application's behavior was correct. Changing the subscript of the value list property to (1) ran without an error. In this scenario, the actual usecase configuration will populate .pyDateTimeValue(2), but the view editor believed there was an error in the section because there was no reference to pyDateTimeValue(1) first. This has been resolved by conditionally changing the pyValue to a template property in design time when a perceived invalid valuelist reference is provided as property in the panel. | User Experience |
INC-217304 | 714589 | Regex handling updated for non-empty inputs | Expression evaluation for non-empty regex has been updated to include testing for unicode characters to align with recent updates made to CKEditor. | User Experience |
INC-217655 INC-235161 |
723566 743708 |
Resolved validation check freeze for Dynamic Layout Group | After creating a multi-step form where step 1 had a Dynamic Layout Group(tabbed) that used form fields configured with validations, clicking next with empty/invalid values in the form intermittently caused the screen to freeze and a javascript exception was logged. This was traced to a missed use case related to templates in the childNode, and has been resolved by adding the necessary safe checks in lgtemplate and lgcelltemplate. | User Experience |
INC-217680 | 717605 | Tab name displayed correctly in embedded mashup portal | "Work Item" was given as as the tab header instead of the Case ID## when:a case link was clicked/opened in an application embedded in an external site (IAC). This was traced to the pega.desktop.support.doGadgetAction function not calling the regular handleGadgetLoad function in this scenario, and has been resolved by explicitly directing work items opened in a multi-doc mashup portal to use handleGadgetLoad. | User Experience |
INC-217821 | 719168 | Ensured data refresh for cascading dropdown controls | When using two cascading dropdowns where the options within the second dropdown depended on the selection in the first dropdown, making both selections and then going back to change the selection in the first dropdown appeared to allow changing the selection in the second dependent dropdown, but autocomplete was still holding the previously selected value in memory even though the source property changed. This caused an unexpected behavior when the selections were submitted. Investigation showed that changing the value of the first dropdown triggered an API call to the Refresh assignment action that updated the value, but changing the first dropdown did not cause a refresh call to set the value back to blank in the second dropdown. This issue was seen when the dropdown values were hard-coded but did not occur if each dropdown used a data page. This has been resolved by ensuring the dependent property in a cascade is reset when the source property changes. | User Experience |
INC-218265 | 720611 | DoClose updated to resolve lock and context issues | An interaction case was closing when intent tasks were closed from CSRecents. Investigation showed this was due to the doClose activity not being triggered in the right context, and has been resolved. An additional issue with locks not being correctly released after opening the new case Create stage and clicking Cancel in the modal was traced to a missing pyWorkPage in the safeURL params that was needed by the doClose activity, and this has been resolved by adding the primary page name. | User Experience |
INC-218855 | 718833 | DSS added to control section collapse on refresh | After update from 8.5, using dynamic layouts that included certain controls (autocomplete/text/dropdown) configured with Refresh-Other Section -> Parent / Top Level Section such as a pyCaseActionArea with Event 'On Change' showed a different behavior: entering a value in the configured text/auto-complete field that leads to the refresh of the top level section will collapse all expanded sections if there is a refresh trigger within the embedded section or dynamic layout of the collapsible layouts. In order to control this behavior, a new DSS has been introduced. By default HonourExpandWhenOnRefresh (owning ruleset Pega-UIEngine) will be set to false to maintain the current behavior of collapse on refresh, while setting it to true will use the older behavior of maintaining expanded sections. | User Experience |
INC-219004 | 719691 | Able to trigger a flow action multiple times | Previously it was only possible to trigger a flow action once in a case. Once a search was triggered via the flow action, it could not be triggered another time in the current case context. It was possible to select the local action, but it did not execute. This has been resolved by modifying the getTargetFromContainerItemID API to get the correct target by iterating over the container and checking the passed containeritemname in it. | User Experience |
INC-219310 | 717113 | WorkSearchGadget updated in Theme-Cosmos-02-01 | The search icon was not working in Cosmos after update, which was traced to the search icon not having an action set. This has been addressed in Theme-Cosmos-03-01, but in this scenario Theme-Cosmos-02-01 was set as the Application definition instead of Theme-Cosmos-03-01. To resolve this, Theme-Cosmos 02-01-01 has been updated to use the newest version of the @baseclass.WorkSearchGadget section. | User Experience |
INC-219444 | 741323 | Undo works as expected in Rich Text ToolBar | Clicking undo was not working as expected after cutting and pasting formatted text from Microsoft Word into the Rich Text Editor of the content toolbar. This has been resolved by updating the image in the after editor change event in the save function. | User Experience |
INC-220351 INC-225753 |
715874 727394 |
DSS added to control whether empty captions are skipped for display | When the property used a prompt list table type and a prompt value for one of the fields was empty, it is not being shown in drop-down. This caused unexpected default values to appear in drop-down lists. To resolve this, a DSS has been added which may be used to skip empty values. The default behavior of skipEmptyCaption is false to show all values as-is. | User Experience |
INC-220363 | 720118 | Additional page sizes available for PDF generation | Support has been added for using page sizes in PDF generation which are supported by the v4 pd4ml jar including A0-A10. | User Experience |
INC-220532 | 739700 | Property reference retrieves correct values | When a pageGroup was mapped to a pageList through a page and the checkbox "Allow use as reference property in activities" was enabled, the property reference retrieved old clipboard page values and displayed data from prior work objects opened in the browser section. This has been resolved with an update which will then replace that pageList in clientDataProvider with whatever is received from the server. | User Experience |
INC-220985 | 728989 | IsPropositionActive property retained during save-as | When the action treatment was saved-as from a lower version to higher version, the treatment DDR form was missing the attribute "pyPropositionactive" property in the higher version. This was traced to the pyIsPropositionActive property being removed by the PreSaveAs activity of the DDR rule because it was considered not relevant for a non-proposition type decision data. This has been resolved by adding handling for the pyIsPropositionActive flag. | User Experience |
INC-220989 | 719864 | Improved accessibility on create harness | Hitting the tab key was navigating out of the popup on the create harness. This has been corrected. | User Experience |
INC-221722 INC-230101 INC-232518 INC-232528 |
739201 738063 741154 737800 |
Menu button no longer steals focus on dismissal | Action menus in the portal harness were stealing focus from input fields in the work harnesses. This was an unintended side effect of work done to correct an issue where focus was not correctly remaining in the table layout, and has been resolved by updating the control menu to avoid the explicit focus in the hideNode function when the menu is already dismissed. | User Experience |
INC-221955 | 719288 | Archival association supported without data retention policy | Previously, configuring an archival association when the data retention policy had not been created resulted in an error and the associations were not saved. Handling for this use has now been added in order to support the archival of custom-associated data. |
User Experience |
INC-221956 | 721686 | Archived cases with custom data viewable in ThemeCosmos | Support has been added to ThemeCosmos to allow reviewing archived cases with custom data association. | User Experience |
INC-222769 | 720982 | Report filter popup displays correctly for UI kit applications | Previous work done on the popover js to correct the filter popup placement and vertical and horizontal scrollbars for report columns has been further updated to handle the use case of UI kit applications. | User Experience |
INC-222784 | 739536 | BAC handling added for calling StartNewFlow activity from UI | After modifying the pycaseactionarea submit button to call a flow that uploads a PDF to a third party system using the order action 1) Finish Assignment; 2) Call an activity and inside the activity call startflow to initiate the integration; and 3) Launch local action, clicking the button to finish the assignment showed only the first local action instead of the expected behavior of having a modal appear to the user to confirm that their file was successfully uploaded. An access control error also appeared. This was traced to the registration details being removed after generating the pdf with an activity running on a different thread, and has been resolved by adding a flag tools.putParamValue("skipResetQueryStringRegistration",true); in pzCreatePDFHarnessWrapper to avoid wiping the registration details and skip resetting the query string registration during the process. | User Experience |
INC-223222 | 723635 | Corrected apiContext when using bulkActions | Row selections in the multi-selection table were intermittently not working after opening a table with bulk actions enabled. Investigation showed that opening a table with bulkActions enabled and then navigating to a table where bulk actions are not available but multi-select is enabled led to functions like setSelectedRows and getSelectedRows still being available in apiContext. This has been resolved by correcting apiContext when bulkActions is enabled. | User Experience |
INC-223504 | 723197 | Harness handling updated for Tertiary Ajax Container | After configuring a Create Stage with a single step and a second stage with a screen flow configured with Multistep form, creating a case caused the Step under the Create stage to come up on the Tertiary Ajax Container as expected, but on click of create the second stage also started to run the same Tertiary Ajax Container. This has been resolved by updating the harness handling so the Tertiary Ajax container will close and the second stage will open on the main action area within the Cosmos Portal. | User Experience |
INC-223557 | 732143 | Integer property allows blank value | When a field with a default value was changed to blank, the value was not updated on the clipboard. This has been resolved by updating the control_textinput file. | User Experience |
INC-223880 | 733556 | Handling added for IME input for date and value | Attempting to input numbers in date and price areas generated from an input method editor (IME) Japanese keyboard was not working correctly due to the field not supporting double-byte characters. This has been resolved by adding an if condition for not formatting the date or value until IME input is done. | User Experience |
INC-224059 | 743432 | Corrected locking issue in repeating grid for local action | When a grid was configured as readonly and the button in the grid had an open local action which opened up a section via flow action which was editable, on cancel, the grid context was treated as readOnly and was not releasing the lock. To resolve this, the pega.ctx.activeGrid.isOpenLocalAction flag has been added to releaseWOLock when a modal is launched from the grid using openLocalAction. | User Experience |
INC-224253 | 744974 | Corrected UI Kit highlighting error | The highlighting in the drop down of a tag was displaying on another tab. This was traced to the activeTab class not being correctly added in the UI Kit for the case worker portal, and has been corrected. | User Experience |
INC-224317 | 723105 | Corrected embedded page list render error | Using a page list within a page list was rendering with overlapping field forms. This has been resolved by removing the negative margin from field group legends when presented in a list. | User Experience |
INC-224446 | 724370 | Load more works in non-templatized layout | After adding a repeating dynamic layout inside a tab group layout (which is a deprecated feature) to make it non-templatized, the progressive pagination option to show the "load more" button did not work. This was caused by the load more functionality having a dependency on pega.ui.RDL even though pega.ui.RDL was not available in case of a non-templatized grid, with the result of generating an exception which broke the flow. This has been resolved by adding a null check which will allow the flow to proceed whether the grid is used inside non-auto-generated or auto-generated elements. Please note that it is strongly recommend to update any deprecated layouts to Layout Group as it is a best practice to keep the code updated to avoid any compatibility issues. | User Experience |
INC-225236 INC-226674 INC-232818 |
725704 730362 738060 |
Corrected LiveDesignViewDisplay error handling | When all rulesets were locked and a section was opened from Live UI in a portal, a "rule deleted" message appeared and it was confirmed the rule was deleted even though the rule was in locked ruleset. Investigation traced this to a pzLiveDesignViewDisplay call to pxChooseBestRuleSet which jumped to failure logic when "allow check out" was disabled, and this has been resolved by correcting the error handling in pzLiveDesignViewDisplay. | User Experience |
INC-225247 | 729607 | SessionTimer correctly working in Mashup | When using the pxSessionTimer in the mashup at section pxCaseActionArea, the timer pop up did not appear. Investigation showed the pxSessionTimer control was not correctly triggering in mashup. This has been resolved by updating the pega.desktop.support.restartTimeoutWarningTimer and closeAllPRPCChildWindows functions and adding the new functionality logOff() which uses the control_actions_logoff functionality. | User Experience |
INC-226000 | 728651 | Table column sizing working as expected for end users | In optimized grid columns where a section was embedded in the cell with a button, the column size was not set as expected with default/short table density. These columns were truncated for end users even though the truncation did not happen for operators/users in the dev access group. This was due to the DOM structure that is loaded for the end user being different from the DOM structure loaded for the dev user, which resulted in a few styles not being applied to the end user. To resolve this, a new property has been added to apply the CSS properly for a column with section, button or icon. | User Experience |
INC-226272 | 740937 | Close button dirtypopup corrected | After update, the Close button dirtypopup was not working in the case worker portal. This has been resolved by modifying the dirtyhandling and actionrouter files. | User Experience |
INC-226386 | 741133 | Ensure field level server side validation messages cleared | A validation message was retained when not required. This was traced to a scenario where there were two server side validation messages on the decimal field in addition to a required client side validation condition; on text change of the decimal field, the server side validation persisted and client side validation replaced only the first message. This has been resolved with an update which will remove field level server side validation messages after client side validation on an event trigger. | User Experience |
INC-226588 | 720903 | EncryptURLActionString changed from Thread to Requestor scope | The static content cache was growing rapidly. This was traced to pzClientApplicationData creating a new set of applicationdata.js files for every tab thread opened. To resolve this, and update has been made which changes pzEncryptURLActionString to use Requestor scope instead of Thread in pzclientapplicationdata. | User Experience |
INC-228060 | 741140 | Added control for displaying Ajax popup alert for optimized iOS table | When using an application on iOS with a section that contained at least 3 tables with 'optimize code allow' set to true, refreshing caused the error "AJAX request failed. Reason: communication failure" to be displayed. When a refresh is triggered, ongoing AJAX requests are cancelled, and the WebKit (OS provided) behavior is to display the "AJAX request failed" alert. To control this behavior, a check has been added for the flag pega.u.d.showAjaxFailureMessageMobile when displaying the alert popup. The default behavior is set to false and will not show the alert. To display the alert, set pega.u.d.showAjaxFailureMessageMobile = true in userworkform. The additional fieldValue "AJAX request failed" of type pyMessageLabel is created to allow configuring a custom message. |
User Experience |
INC-228309 | 732111 | Mashup can be loaded from Salesforce LWC | Pega Mashup was not able to be loaded from Salesforce Lightning Web Components (LWC) due to the request not being triggered to the Pega server. This has been resolved by modifying the Pega references to be compatible with Salesforce LWC. | User Experience |
INC-228341 | 744464 | Security updated for user profiles | Cross-site scripting protections have been added for user profiles. | User Experience |
INC-228900 | 738197 | Archived case history is viewable | Case history was not displayed for archived cases. This has been resolved by adding a section and when condition to display archived case history. | User Experience |
INC-228988 | 742196 | Handling added for custom attribute that holds a JSON string | When the DX Assignments API was expected to render a view with a custom attribute that holds a JSON string, it cut the string off at a random point. This caused an error on the front-end screen and the correct view was not displayed. Investigation showed part of the json was incorrectly localized which caused it to treat some values as variables. This has been corrected by testing whether a custom attribute is JSON, and if it is it will be escaped so it is not localized or modified. | User Experience |
INC-229308 | 739562 | ValidateInteger function added to preserve decimal properties | Decimal properties were being automatically changed to integer. This occurred because the edit validate rule on any type of property did not allow decimal entry if the edit validate rule name contained "IsInteger" even if the rule contained no code. To resolve this, the validateInteger function has been added to check whether the validation type is integer. | User Experience |
INC-229967 INC-230718 |
735962 737341 |
Number control decimal formatting triggered on tabout | When using the pxNumber control in a section, decimal formatting for input of fewer than 4 digits was not executing unless a post call to the server was triggered. This has been resolved by adding a condition check to format value when there is input of length greater than 0. | User Experience |
INC-230471 | 733486 | Check added for openHandleInNewTab in report flow | The on-click was not working the first time for standard report that was executed via Manager/User portal with the report definition configured to fetch the rowkey as pzInskey. This has been resolved by adding a condition to check whether method openHandleInNewTab exists. | User Experience |
INC-230576 | 741541 | Data transform works with encryption in Pega Mashup | Data transform was not getting called in case of Mashup when "Use Encryption" was ON. This was traced to the data transform not being triggered correctly in this scenario, and has been resolved. | User Experience |
INC-230738 | 741462 | Fixed cursor jumping issue for date only input | When selecting a date from the calendar and keeping the cursor in the date part (MM/DD/YYYY) , trying to clear it caused the cursor to immediately jump to the end. This has been corrected. | User Experience |
INC-231145 INC-237221 |
734364 743444 |
Security improvement for Currency control | A potential cross-site scripting issue related to readonly formatting for the Currency control has been resolved. | User Experience |
INC-231255 | 743958 | ToolTip update on repeating dynamic layers pagination options removed | The repeating dynamic layers Tooltip regarding format settings in the property panel has been removed as pagination for user action works for both template and non template. | User Experience |
INC-231316 | 744051 | Corrected tab display with collapsed panel | Tabs were not displaying properly in the case view with collapsed summary panel (when there is too many tabs). This has been corrected. | User Experience |
INC-231625 | 735231 | Handling updated for fetching chain of archived ancestor cases | Previous work done to show the case hierarchy dropdown for archived cases in the ReviewArchivedCase harness has been further modified to cover additional use cases. The original method to fetch the parent case was "Obj-Open-By-Handle" which supports secondary storage but triggers all declaratives, which may lead to errors under specific configuration. Using "Obj-Browse" instead does not support secondary storage, but does not trigger declaratives. In order to ensure the best coverage for various use cases, this has been updated to conditionally use both methods; the system will use "Obj-Browse" first, and if it fails it will check secondary storage using "Obj-Open-By-Handle". |
User Experience |
INC-231711 | 739220 | Localized date format based on custom constants | After update, date values were shown with the format itself such as "dd/MM/yyyy h:mm a" instead of the actual date value. This was an unintended side effect of work done to localize the date handling for a specific locale, and has been resolved by updating the setting method to one which uses custom constants available to generate the custom datetime format per locale. |
User Experience |
INC-231847 INC-233462 |
737405 739542 |
DSS added to control validation of hidden fields | When required fields are in hidden format, a client side validation error may be thrown on submit. To address this, a DSS has been added to control whether or not hidden fields are validated. By default "validateHiddenField" will be true and the fields will be validated; changing this to false will skip the validation of hidden fields. | User Experience |
INC-232204 | 738834 | List Report opens in new tab | Every time the results of the List report was clicked, the UI was refreshed and the case opened in the same screen with filter criteria removed. This was traced to "pega.desktop.infinity.openHandleInNewTab" being added in the "pzRDWinTitle" control, which is referred in the "pzReportDisplay" section. As the "Apply filter" button action set is not refreshing the "pzReportDisplay" section, the original function "pega.desktop.infinity.openHandleInNewTab" was getting replaced with "openWorkByHandle". This has been resolved by adding the conversion of the openworkbyhandle function in the header of the table. |
User Experience |
INC-232449 | 742978 | Able to use filter range on a table column | While trying to filter results between a range in table column, the error "This results in an invalid numeric range" was generated. This has been resolved by adding a check for not setting the 'data-value' if the formatted value and target value are same. | User Experience |
INC-233513 | 741983 | Validation warning flag appearance made more consistent | The warning "Please correct flagged fields before submitting the form!" was appearing inconsistently across the flow actions. Investigation showed that from the Todo Widget > Click on Link > Click on Go button. the assignment opened in an Ajax container so validations were triggered because it called the webwb • pzpega_ui_doc_submit • js file doFormSubmit() method which leads to the alert message. However, using Todo Widget > Go button caused the assignment to open in a Dynamic Container so no validations were triggered. This has been resolved by adding a new flag to skip field validation in certain cases to produce consistent behavior. | User Experience |
INC-233991 | 743397 | Temporary page logic updated for GetSectionHtmlForDesignView | Trying to open any embedded section or layout inside the "InitiatePDF" section was not working. This was a missed use case for rendering this section, and support for this has been added by modifying the temporary page logic in GetSectionHtmlForDesignView. | User Experience |
INC-234543 | 743003 | Parameter value with carriage return evaluated correctly | If a text area control had multiple lines entered in it and the same text area was passed as a parameter to a Data Transform executed at the launch of a read-only harness, the value in the text area was - " #~pyworkpage.propertyname". If the text area had just a single line without any enters/multiple lines, then it worked as expected. This was traced to the handling in pzpega_ui_events and has been resolved by escaping the newline and carriage return characters. An additional issue found when using multiselect in the form was traced to the correctActionArgs function which was generating the replacedtoken "//string//" for one of the property subjectareadetails, and this has been corrected. |
User Experience |
INC-234874 | 739874 | Cursor moves via arrow buttons | Using the keyboard arrow buttons to navigate between numbers was not working. Nothing happened when clicking on the left arrow, and clicking on the right arrow moved the cursor to two digits. This has been resolved by updating pzpega_control_textinput. | User Experience |
INC-234958 | 742548 | Corrected menu item name display and styling for expand icon | After update, a Menu Item with Sub Menu items present did not display the arrow icon to indicate the presence of Sub Menu Items. In addition, the Menu Label was shown twice on click of the parent Menu Link. These have been corrected. | User Experience |
INC-236451 | 745819 | Backbone.js updated | The backbone.js package has been updated to the most recent version. | User Experience |