Pega Infinity™ includes an industry-standard patch 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.5.6 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-173068 | 654066 | HTML tags escaped in Audit History field values | The case narrative section was showing case statuses with encoded special characters such as % or ( ), resulting in entries such as "Status changed to Complete &# 40;approved& #41; !@##$: %^& amp;*&# 40;&# 41;_&# 43;.</div>". This has been resolved by updating the PyMemo field from type Text Input to DisplayAsLiteral for case narrative, which matches the setting for case history. | Case Management |
INC-178650 | 673547 | Cross-site scripting protections updated | Cross-site scripting protections have been updated around the DisplayAttachment function. | Case Management |
INC-180275 | 666454 | Collaboration control hidden if data type is delegated | When collaborating using a customized CaseManager portal with some delegated data types, the admin user refreshing the Data Type view changed the collaborator's view from the portal to show the Data Type tabs, allowing the second person to open rules (properties, Data Pages, etc) and see the configuration even though they could not make any changes. This has been resolved by updating pzDataTypeDelegated to display the collaboration control only if pzDelegation is false. | Case Management |
INC-183650 | 678310 | Corrected doubled tag removal | After adding two tags for a Service case, attempting to delete the first tag resulted in the second tag also being removed. When three tags were present in the case, deleting the first tag caused the first and second to be deleted. Investigation showed this was caused by the run activity pyRemoveTagLink being called twice in run time, and has been resolved by updating the run activity. | Case Management |
INC-183751 | 665891 | Improved text contrast for Attach Content button | In order to improve accessibility, the contrast between text and background colors has been increased for the Attach Content button by updating pzMultiDragDropControlStandard to change the color from gray to black in function pzInitHTML5DD(). | Case Management |
INC-183822 | 667500 | Filename with non-ASCII characters normalized for Apple Safari upload | When using the Apple Safari browser, attaching a file name that contained Japanese characters resulted in an "attachment doesn't exist" error message when trying to open it again. This was caused by the special characters in the FileName for the Data/Query string not being encoded during the file upload, and has been resolved by updating the UploadFileToADocument activity to normalize the FileName if the Safari Browser is being used. | Case Management |
INC-183947 | 673732 | Query split added to handle Oracle expressions limit | The PXCHECKFLOWDEPENDENCIES activity was throwing the Oracle error message "ORA-01795: maximum number of expressions in a list is 1000" when a case had a very large number of sub-cases, causing a failure in trying to submit additional child cases which sent them into the broken process. This has been resolved by updating the pxCheckFlowDependencies rule to break down the query parameter into batches of 999 so they can be handled by Oracle. | Case Management |
INC-184040 | 688254 | Improved accessibility for Disclosable Documents/attach files/auto selection dropdowns | When using Dragon for accessibility, issues were seen when trying to select different options in the dropdowns related to attaching multiple files. This was caused by the legacy grids being used not supporting this type of accessibility functionality, and has been resolved by updating pzAttachFileDDFileList to use an optimized table instead. | Case Management |
INC-184271 | 668411 | Portal Header persists appropriately | The Portal header was disappearing immediately after case attachments were opened from the right sidebar and did not reappear even after refresh. This was traced to the absence of pd(event), and has been resolved by adding pd(event) to the onclick attribute in the anchor tag in the attachment UIKit rules. | Case Management |
INC-184300 | 666155 | Deprecated status removed from StartCaseType | After updating from Pega v8.4 to v8.6, guardrail warnings were seen for the deprecated pxStartCaseType flow rule. This occurred for old case types created prior to v8.5. A utility has already been provided to upgrade the case type to include create stage, but this warning has been resolved by removing the deprecated status on pxStartCaseType to allow processes to proceed without a guardrail warning. | Case Management |
INC-184729 | 669739 | Pinning document to space correctly generates thumbnail | When pinning a document to a space using the standard document repository tile, the resulting pin did not have an image corresponding to it. The process worked properly when pinning a document directly from the space itself. This was a missed use case and has been resolved by adding an update to set the pyImage of the document while pinning the space. | Case Management |
INC-185434 | 674052 | Page group property passed correctly for complex questions | When the Pega Survey Smart shape was used to configure a list of complex set of questions using Question rules and invoked using the Survey shape, the reload system was not passing the subscript value for the Page group property pyQuestionnaire. This caused an Invalid Reference exception and displayed an error pop up for the end user. Investigation traced this to a call to RefreshList to load a section holding pyQuestionnaire(Subscript) page content which was in place as part of a legacy fix but which has since been made unnecessary due to infrastructure changes in the DOM utilities. To resolve this, the ComplexQuestionCheckboxTemplate and pzComplexQuestionCheckBoxTemplateRowDetails section rules have been updated to remove the RefreshList action on checkbox. | Case Management |
INC-185950 | 669193 | Withdraw task notification uses correct email sender | When withdrawing a Task, the withdraw email was sent from the default email box instead of the expected Application default email box. This was traced to the 'pyTaskDeleted' (notification name for withdraw task) value not being present, which meant the system fell back to the task 'pyTaskAssigned' notification name. To resolve this, an update has been made to have pyIsPulseNotificationDefinition return true for a pyTaskDeleted notification. | Case Management |
INC-186036 | 685369 | Field Level Audit updated to handle hierarchical properties | Field Audit was not working for the first change of the data selected/provided for a field. The audit was only reflected after the second change was made. When the property involved a series of hierarchies, for example pageprop.pagelist(1).pageprop, the FLA objects will initially use deferred saves and the generated pzinskeys will be added to a savedFLAMap object. However, when the last pageprop was not eligible to save, all the deferred saves of earlier records were cancelled but the inskeys were not removed from the savedFLAMap object. Because of this, the parent FLA records were assumed to have been saved already when those saves were actually deferred. This was a missed use case for hierarchical properties, and has been resolved by adding an update to remove the inskeys from the savedFL | Case Management |
INC-186654 | 669113 | GetStatusChanges performance improvements | Performance issues were seen when running the GetStatusChanges report. This was traced to the filtering methods used, and has been resolved by updating the report definition and enhancing the filtering conditions. | Case Management |
INC-186868 | 675244 | Security updated to allow Access group switching | When a member of two different access groups attempted to switch from one group to another, an "access denied" message occurred. This was traced to the use of BAC, and has been resolved by updating the pzProcessApplicationSwitch activity to use the pzEncryptURLActionString function to register the request. | Case Management |
INC-189511 | 679183 | Column width adjusted for Survey simple question text area | When a number of columns were entered in a simple question (Answer tab) for a text area, the width was not reduced or increased for the text area. This has been resolved by setting pySpecifyWidth to custom for textarea. | Case Management |
INC-189622 | 682097 | Cleaned up references to deprecated property type | While using the Pega API to update a case from one application to another, an error was generated indicating the system was unable to find a property definition of “caseTypeClass” in pyAddableWorkList of the workpage. All properties in the clipboard pages of the work page are validated during this update: in this case, the check was for the caseTypeClass property, which is no longer used but which was on the clipboard page. To resolve this error, all remaining references to property casetypeclass have been removed. | Case Management |
INC-191645 INC-194429 INC-202562 |
679535 682881 701629 |
Updated FieldLevelAuditing logic for page comparison | Optimistic locking was resulting in orphan assignments and the error "Error: Flow Not At Task, Error: Flow Removed". In addition, Get Next Work was causing duplicate Field Level Auditing records. This was traced to a missed use case in the logic used in pxFieldLevelAuditing where previousPage and PrimaryPage are compared to see whether they are equal or not, and has been resolved by adding one more condition to mark previousPage as null when the update date time or commit date time are not updated as part of processing. | Case Management |
INC-192159 | 691023 | Handling added for designtime page used in runtime | After creating a survey with branch Create survey cases routed to different actors, some cases missed the assignments and were left idle with no access to progress. Survey cases (with branches) having the 'when' conditions in flow connectors experienced this intermittently in production. This was traced to the use of D_pzSurveyPage data page called from the ProcessUpdate data transform while creating the survey: this data page is for design time and should not be used at runtime as it requires design time pages like CaseTypePage which will not be available at runtime. To resolve this issue for runtime, in Step 3 of pzGetAllConnectors, pyClassName will be copied from the step page and set for pzGetConnectorsForDecision. | Case Management |
INC-192500 | 684336 | ManageRecentContent tab icons updated for accessibility | The PegaSocial-Document "Manage Content" flow action (Work-.pzManageRecentContent) shows a tabbed layout with images and labels for "Rich Text", "Local File", "Add Existing" and "URL". These are displayed via the pyEnterCaseDetails section rule. In order to meet accessibility standards, the underlying PNG files (pyreferexistingdocument.png, pyaddurl.png, pyrichtextdocument.png, pyuploadadddocument.png) have been updated to meet the necessary 3:1 contrast ratios. | Case Management |
INC-192673 | 689553 | Tab highlighting updated | Not all elements were indicated with yellow highlighting when tabbing through the screen. This has been resolved. | Case Management |
INC-193071 | 686647 | Find by ID functionality repaired | After update, the Find by ID Functionality was not working as expected. This was an unintended side effect of work done around the inheritance of default values when the portal pyPortal.pyDesktopType was set to Composite, and has been resolved by modifying the previous work to move the check to verify if the pxCurrentWorkPool== "" to a later step. | Case Management |
INC-194180 | 704639 | MaxRecords increased to 9999 in GetChildCase report definition | When more than 500 child cases were waiting for a single parent case to reach a status or to be resolved, only 500 cases were fetched by the report definition and the remaining cases were ignored. This has been resolved by updating the pyMaxRecords value for the maximum number of rows to retrieve to 9999 in the pzGetChildCases report definition. | Case Management |
INC-196961 | 693472 | Iteration method updated for SetRequiredSkillsCountColumn | After update, database utilization spiked and did not drop. Investigation traced this to the use of Local.totalCount in pzSetRequiredSkillsCountColumn, which caused the iteration loop to run more times than necessary. This has been resolved by replacing Local.totalCount with Local.iterationsCount in the iteration. | Case Management |
INC-198514 | 688850 | CheckFlowDependencies query performance improved | In order to improve performance on very large tables, the pxCheckFlowDependencies activity has been modified. Previously, checking whether a dependency exists retrieved all columns. The updated query will instead return a count. | Case Management |
INC-199880 | 695068 | Re-save case type completes successfully | Checking in a case type rule with Stage Rule reference was failing. This was traced to the RuleCheckin activity being called in a nested fashion that caused an inner run to remove the "pyOriginalRecord" page which was needed in the outer run to set the .pyRuleset property (at Step 34), and has been resolved. | Case Management |
INC-200802 | 699965 | 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. | Case Management |
INC-200936 | 703345 | 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. | Case Management |
INC-202943 | 700195 | WorkLink URL generation updated for security | When using a WorkLink in an email, clicking the link and entering credentials on the login screen resulted in a 403 unauthorized error. This was due to a WorkLink URL generation issue caused by the non-encryption of the RedirectAndRun activity call in the URL, and has been resolved. | Case Management |
INC-204676 | 699111 | Localization added to subject line for SendEmailToAssigneeOnGoalTime | When a Callback case was created and the assignee notified by email, the subject line was not localized. This has been corrected. | Case Management |
INC-207218 | 706370 | 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 |
Cloud Services
8.5.6 Resolved Issues for Cloud Services
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-178002 | 663768 | Restore point handling updated for absent pzpvstream column | While executing the “get restore point” action for rollback, a PZPVSTREAMerror error occurred with the message "(util.HistoryCollectorDataModel) WARN|Rest|SystemManagement|v2|restorepoint - History collection for the table will be slow because it does not have all of the required columns". This was a missed use case for Robotics Automation not having a pzpvstream column for one of the tables; this has been corrected with a check to validate for pzpvstream column so the system will not seek history records if the pzpvstream column is not present. | Cloud Services |
INC-185117 | 680898 | Check added to disable offset support for older versions of Oracle | An ORA-00933 error was generated after upgrading from Pega 7.1 to Pega 8.5. This was traced to a conflict between Oracle 11g and the Pega 8.5 platform related to an OFFSET statement being added to a query for a version of Oracle that doesn't support it. The preferred solution is to upgrade Oracle to address this, but in order to support backwards compatibility a check has been added which will disable offset support in Oracle if productversion <=11. | Cloud Services |
INC-189781 | 677815 | Database Transaction Log update overflow resolved | When automatic.resume=false was encountered uring an update, cleaning up the existing codeset from previous updates ended up filling up the database transaction logs and caused the update to fail. This has been resolved by updating the process of clearing the codeset so it doesn't overflow the transaction log. | Cloud Services |
INC-190722 | 676400 | Ruleset Restoration Utility repaired | Attempting to use the standard Ruleset Restoration utility after update was resulting in a "Status:fail Operator:Unauthenticated or not available Node:No ID available" error message. This was a missed use case for the refactoring done around importing rules, and was caused by the utility calling the deprecated Importable.isValidImport() method. This has been resolved by updating the import activity to restore its functionality. | Cloud Services |
INC-196415 | 686314 | Performance improvements for revalidate and save | In order to improve performance when working with very large numbers of class definitions, an update has been made to optimize the revalidate and save process by avoiding looking up all classes on the system instead using ClassDefinition for existence and checking ancestor data to ensure class is a Rule- or Data- descendant. | Cloud Services |
INC-202677 | 698988 | Handling added for missing expose.accessGroup property | After exposing an existing page group and page list properties along with single value properties using a declare index, running the Column Populator tool prpcServiceUtils to populate the historical data resulted in the single value properties being updated in the exposed column properly, but the page group and page list properties were not updated in the declare index table. On new case creation the declare index tables were updated. This was traced to the default expose.accessGroup not being set for the user, and has been resolved by adding a check and handling that will add the missing property in prpcserviceutils.properties defining the access group for the Rule-Declare-Index of the classes being exposed if it is not present. | Cloud Services |
INC-205453 | 706571 | 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-209435 | 707377 | 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 |
Conversational Channels
8.5.6 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-175994 | 667480 | Removed redundant Microsoft Outlook email interaction chain | When opening an email interaction case, the email editor user interface area showed the complete email chain of the email for every new message that came in related to the case. This was traced to the difference in the selectors that various email clients use to construct a response to an email with email history in it, and has been resolved by updating the selectors for Microsoft Outlook in pyRichTextEmailHistorySelector so no conversation is repeated when using that client. | Conversational Channels |
INC-184155 | 673073 | Entity Detection prefers first detected entity | Entity detection shown in the "Training data" tab of the email channel did not match with the results of running the corresponding text analyzer rule. This occurred when a single piece of text was detected as multiple entity values, which led to the last entity detected being picked for case mapping because of the unclear scenario of duplicate entities. To resolve this, pxmapresponseentities has been updated to prefer the first detected entity. | Conversational Channels |
INC-184243 | 682331 | Page data preserved for WebChat timeouts | Attempting to change the font size in Webchatbot after the interaction time-out resulted in a DisplayError screen. This was traced to the page data not being available, and has been resolved by preserving workPage and newAssignPage for this use. | Conversational Channels |
INC-184902 | 669451 | Corrected portal image display for authenticated request | Email images for the user portal were not displayed in the browser but were showing correctly in the manager portal. The URL to the image was the same in both cases, however for the user portal the URL request was requiring authentication. This has been resolved by updating the API to use currentsessionURL. | Conversational Channels |
INC-185255 | 669439 | More responsive attachment loading for interaction portal | Attempting to view a large email attachment in the interaction portal was resulting in slow loading and page responsiveness issues. Investigation showed there were numerous unnecessary height calculations happening when checking the dom elements, and this has been resolved with an update which will use the property mapping js file to make the screen more responsive when highlighting. | Conversational Channels |
INC-189819 | 676593 | Entity highlight corrected | In the email channel, the entity value highlighted under "Training" tab was different from the actual value detected. The location where it was detected was also different. This was traced to an inconsistency of the title shown on the UI of training data tab, and has been resolved by updating the title shown on each entity as well as using exit iteration instead of skip step in pyStructureEntity. | Conversational Channels |
INC-190185 INC-196623 |
685502 686132 |
Chatbot outbound message formatting corrected | Chatbot outbound responses were displaying appended br tags for next line in the messages. This was due to a formatting error in the menu (message type) title, and has been corrected. | Conversational Channels |
INC-191159 | 682361 | Validate topics based on all topics in channel instead of default language | If a 'When Rule' was used in Email Receiver to provide some conditions, it was not possible to use topics from the dropdown which were trained with training data in prediction studio. This was a missed use case, and was traced to validation being based on the default language topics. To resolve this, the data page has been modified from getting default language topics to getting a union of topics. The datapage for default language topics has also been withdrawn. | Conversational Channels |
INC-192935 | 698694 | Inline images retrieved for deferred-load email | When emails were defer-loaded, inline images with code entered into the non-cache section in pyExtractHtmlFromAttachment were not being displayed. This has been resolved by passing the current page parameter to pyExtractHTMLFromAttachment to convey the pyID. | Conversational Channels |
INC-197116 | 684954 | Handling updated for migrated cases | When performing a contact search in an interaction case that was migrated from an earlier version, clicking the Add Task button generated an exception when executing pzSendFeedbackToNLP(step 9) > pzFindTopicModel. This was traced to an unnecessarily call to pzMigrateInteractionCases each time a migrated case was opened, and has been resolved by updating the system to use JumpToLaterStep in Step1 of pzCheckAndMigrateInteractionCases to avoid calling MigrateCase again. | Conversational Channels |
INC-200148 | 693147 | Added JSoup handling for older Microsoft Outlook versions | Logging indicated that some emails were generating the error "pyextractlatestreplyfromhtml is resulting in java.lang.IllegalArgumentException: Object must not be null." This occurred when using an older version of Microsoft Outlook, and has been resolved by adding a check before removing the JSoup doc object. | Conversational Channels |
INC-200237 INC-192935 INC-203463 |
693178 688461 694164 |
Added API for Pega Call Team websocket reconnect | When a call came in, the operator was not able to pick it up due to the popup only containing a reconnect section. This has been resolved by adding the disconnectAndReconnect API which will be used by Pega Call Team if the websocket reconnect limit exceeds 5. | Conversational Channels |
INC-209419 | 704268 | Email bot tags the incoming account correctly | When an email bot was created and configured for two email accounts, for example [email protected] and [email protected], an incoming email that had both of the email addresses in the "TO" line correctly created two Work-Channel-Triage-Email cases, but the data on the triage case did not correctly mark the incoming email account in "pzIncomingEmailAccount" or "pyAccountId". This has been resolved with an update that will rely on pyListenerPage if pzIncomingEmailAccount is blank initially, and if pzIncomingEmailAccount is still blank the system will then iterate over the email address and fetch the email account from the channelconfig page. | Conversational Channels |
Data Integration
8.5.6 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-170458 | 667371 | Handling updated for queue processor locks | The Final activity mentioned in the processing epilog of the Service File rule was not being consistently called from File Listener, causing some of the cases to become stuck and not continue to the next stage. Investigation showed that if the lock was held by the queue processor requestor, the system was unable to obtain the lock but still proceeded to update the LogServiceFile page and persist it. This resulted in overwriting changes made on the LogServiceFile page by the requestor, resetting the completed-batches-count set back to 0. To resolve this, RuleServiceFile -> updateLSFBatchCounts() will call the overloaded lockAndLoad() method in LogServiceFile that accepts a parameter called lockAttempts. This will attempt to obtain a lock for a given number of times before throwing an exception. | Data Integration |
INC-172849 | 665981 | SortPageList method updated for Obj-Sort | Sorting page lists backed by a node level datapage using Obj-Sort was causing a ConcurrentModificationException. This has been resolved by updating the SorterImpl.sortPageList method to use java7CollectionsSort instead of collectionsSortWithInferenceEngineDisabled. | Data Integration |
INC-173434 | 672674 | Pushservlet cookie path updated to resolve error | A very large number of exceptions were being logged indicating "Unhandled error in web.request.internal.URLComponentProcessorImpl.populateCSRFToken", impacting the ability to perform log analysis. This exception has been resolved by updating the pushservlet cookie path. | Data Integration |
INC-176138 | 668937 | Decision table query performance improvements | Work done previously to improve performance by preventing the decision rule from being treated as a custom rule has been further augmented by preventing the standard Declarative Rules from being treated as Custom Rules while building the Declarative Cache. | Data Integration |
INC-180891 | 663513 | Zip compression added for tracer XML | After upgrading from Pega 7 to Pega 8, attempting to save and download a trace session would run for a time before pausing and displaying the message "Operation failed. Network error". Investigation showed the tracer was generating a very large XML file which was consuming the heap and causing the issue. To resolve this, an update has been made that will reduce memory usage by using GZip compression on the file. The new behavior will be to always zip tracer XML by default. | Data Integration |
INC-180901 | 666445 | Heap dump ability added for OpenJDK | Support for OpenJDK has been added to the heap dump generation process. | Data Integration |
INC-181773 | 685435 | Attached zip file has correct extension | When using a custom function with the SendSimpleEmail activity, an attached .zip file was corrupted on receipt. The issue was not present with other mime types (ex. images, docs, pdf). Investigation traced this to the extension for the zip file being incorrectly set as xzip or multipart, and this has been resolved by adding a condition to set the extension correctly. | Data Integration |
INC-182082 | 694613 | API added to handle digital signing from proxy layer | When an email account was configured with a valid email account and keystore for message signing, it was possible to send emails with valid digital signatures. When the same email was used in case type email instantiation, no digital signatures were included in it. This was due to keyStoreInstance properties being read from the email account top level page when they need to be retrieved from pyEmbedSenderProtocol page when using SMTP. This has been resolved by adding an API to handle the signing logic from the JavaEmailClientProxy class. | Data Integration |
INC-182148 | 668007 | Handling added for missing schema for persistClusterState | The message "Error retrieving database indices java.lang.NullPointerException" was being logged repeatedly, indicating an issue with ClusterManagementAPI. Investigation showed there were missing default Schema values in the prconfig files, and this has been addressed by adding fallback scenarios for missing schema information during PersistClusterState. | Data Integration |
INC-182537 | 667590 | French added to Locale List Separator | Exporting data to Excel in CSV format resulted in text with French accent characters such as "Décision pour une nouvelle demande de règlement" to appear as random characters, and columns were not being split. This has been resolved by adding a record for the French locale in the pzGetLocaleListSeparator decision table rule. | Data Integration |
INC-182828 | 667097 | License Usage logging expanded | Diagnostic loggers have been added to assist in debugging license usage. | Data Integration |
INC-182959 INC-185760 |
668735 668740 |
SQL queries modified to use qualified table references | Portal launch in the development environment was taking an excessive amount of time, as were some standard reports. The PurgeAssemplyDatabaseCache agent activity also generated an error regarding "(internal.cache.RAPurge) ERROR - Purge, unexpected error in removeOldAppCentricCacheData". These issues were traced to SQL queries that contained pr_sys_app_hierarchy_flat without a schema qualifier, and have been resolved by changing to class qualified table references. | Data Integration |
INC-182969 | 677284 | Updated AgentName handling for QueueItemID | A report was showing as scheduled but no mail was received when it was supposed to run. Investigation showed this was due to the reports being corrupted, leading to the flow skipping the necessary Queue-For-Agent method. While there was a workaround of doing a "Save As" to create a new version of the report, this has been addressed by setting the agentName before saving to the database to handle missing agentName cases and ensure pyAgentname is always populated when pzQueueItemID is not empty. | Data Integration |
INC-184790 | 666123 | Details added to pxLogMessage History tab | Usage and Description details have been added to the History tab for the pxLogMessage Rule-Utility-Function, as below: Description: Logs message for the logger Rule_Utility_Function.pxLogErrorMessage.Default with specified level. Used for error handling in response data transform in a data page. Parameters : sMessage - Specify the log message cLevel - Specify character to indicate log level, as below 'd' to DEBUG 'i' to INFO 'f' to forced INFO 'w' to WARN 'e' to ERROR This will return true or false depending on whether it logged or not. |
Data Integration |
INC-185758 | 678454 | Resolved database contention during high-performance case creation | During extreme load on the application, updating the latest pyLastReservedID column of 1 row in the data.pc_data_uniqueid table for a particular case type could cause database contention. This was a missed use case for recent ID generation optimization, and has been resolved by amending the MERGE statement to resolve an SQL exception sometimes seen on on Oracle and SQLServer. | Data Integration |
INC-186634 | 672149 | Expanded debug logging for requestors | In order to assist with diagnosing issues, debug loggers have been added for requestor activation and validation. | Data Integration |
INC-187553 INC-188080 INC-188143 INC-200029 |
675428 673782 674971 690168 |
Service Email handling updated for MSGraph "From" address | While creating cases via email listener, the "From" address was not shown when using MSGraph. This was an issue with extracting the display name when MSGraph is used, and has been resolved by adding double quotes to display the name unconditionally. | Data Integration |
INC-187708 | 680011 | Handling added to StreamChangeTracker for non-String mode | Incorrect StreamChangeTracker mode properties were being tracked for value changes. Investigation showed this was due to the StreamChangeTracker.trackValueChanges API tracking value changes on properties of mode page and page list, which resulted in logging a WrongModeException in the logs. This has been resolved by updating the behavior of the StreamChangeTracker.trackValueChanges API to return false when value change tracking is invoked for a property other than mode String. | Data Integration |
INC-187750 | 675634 | Error message removed for adding a new datatype to a branch | Clicking 'add data type' for an application when no unlocked rulesets were available resulted in the error message "No unlocked Rulesets/Versions found that are valid for this record. Unlock at least one Ruleset/Version that can contain records of this type.". However, it was possible to create a data type by choosing branch. Investigation showed this message was added by the activity pzLoadTypeToBeAdded and is not needed: it has been removed from the step that appended the message when validating on click of submit. | Data Integration |
INC-189259 | 692033 | Big Decimal used while converting List to Page | Previous work done to handle precision numbers in the JSON response that were being rounded or truncated when parsed for the DataSource page has been updated to also handle the case of mapping a list to a page. | Data Integration |
INC-189580 INC-202743 INC-197479 INC-202183 INC-212729 |
672853 697113 695024 699681 695024 |
Cleanup added for disabled/deleted operator passivation data | In some scenarios, a passivated session for a non-active operator was able to be resumed after cluster restart. This has been resolved by adding a check for disabled or deleted operators which will then delete any lingering passivated data. | Data Integration |
INC-189811 | 679934 | Updated XMLDataToPage privilege | Cases were not being created or moved due to a privilege issue on EndUser portal after update. This was traced to the XmlDataToPage activity now including the OpenDeveloperForm privilege, which end user operator profiles do not have. This was a missed use case, and has been resolved by updating XMLDataToPage so it requires authentication but not privilege to run. | Data Integration |
INC-190111 INC-191033 |
693526 684369 |
Security updated for viewing data tables | In order to improve security related to viewing data table instances, the privilege pxListClassRecords has been created in @baseclass and added to the "may start" activity ListEditor. Please add the privilege pxListClassRecords to access groups using ListEditor. | Data Integration |
INC-190270 | 681086 | MSGraph email listener enhancements | Attachments with .eml /.msg extensions were treated as FileAttachments by the MS Graph API and generating a classcastexception. To resolve this, a check has been added to identify the attachment along with content type so .eml will be correctly recognized. In addition, the MSGraph email listener functionality related to converting from Graph to MIME message has been enhanced around the 'TO' and 'CC' recipients in a MIME message and for parsing nested attachments in Item attachment for addition to MsgraphMessage. | Data Integration |
INC-190380 | 678642 | CreateVersion rule updated for REST Integration Wizard | When using a JSON response in the Create REST Integration wizard to generate the rules, the wizard displayed a null pointer exception during the final generation. The error pop up message "Generation process has been canceled and all created records have been removed" was displayed on the screen. This was traced to the REST Integration Wizard putting data rules in the wrong ruleset version when the context of both the Integration Layer and the Data Layer were configured to use an existing ruleset and to create a new version of that ruleset, and has been resolved by modifying the pzCreateVersion rule to support this. | Data Integration |
INC-191779 INC-199749 |
677519 695536 |
Updated use of declarative processing during performance testing | After update, the performance test script build was not working. A stack overflow indicated an issue with the load activity for the D_InteractionHistory data page referenced by expressions/properties. This has been resolved by disabling declarative processing during the estimation of data size. | Data Integration |
INC-193507 | 681747 | DSS added to control DADT purge | Thread dumps and service restarts were seen when Decision Engine data nodes were working with a very large number of tables. This has been resolved by adding a DSS as part of the CDH layer which will skip CDH DADT that contains pattern DATA_BATCHOUT, for instance "DATA-ADMIN-DB-TABLE DATA-BATCHOUTPR469001" to prevent the deletion causing full cache invalidation of the table information map. With this DSS set to true, when the purge agent runs and deletes the DADT, class cache should no longer be invalidated. With the DSS missing or set to a value other than true, the class cache invalidation will still occur. | Data Integration |
INC-193767 | 683298 | Handling updated for validating properties with a FieldValue | Running a report which included a property calculated by a Declare Expression generated an excessive number of log messages indicating "Error occurred while executing forward chaining on page 'pyReportContentPage.pxResults". Degraded system performance, stack overflow, and other similar issues were seen. This was traced to an infinite loop that resulted from a missed use case for a Report Definition with a Target property of a Declare Expression with FieldValue, and has been resolved by disabling autochain while validating properties with a FieldValue. | Data Integration |
INC-194490 | 685238 | Parameter handling updated for GetRepositoryFolderName | An UnresolvedAssemblyError was generated with an Unauthenticated Thread exception after opening the declare expression Embed-Application-StorageProvider pyFolder and performing a private edit. This error was traced to the Rule-Utility-Function call "pxGetRepositoryFolderName()", which was expecting a parameter "tools" which was not being passed from the declare expression rule. To resolve this, the pyFolder and pyFoldeIf declare expressions and pzsetContentStorage have been modified to pass 'tools' as a parameter to pxGetRepositoryFolderName. | Data Integration |
INC-194806 | 680967 | Performance improvement for message processing | Severe performance degradation was seen for message processing in pdc-central after update. Investigation showed there was an issue with a write lock not not being acquired while reloading the datapage definition, causing concurrent dirty reads and multiple definition reloads. To resolve this, DeclarativePageDefinitionCacheImpl has been updated to acquire a write lock to prevent dirty reads of the same stale data page definition while reloading. | Data Integration |
INC-195586 | 698859 | 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-199192 | 689036 | 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-199320 | 690621 | 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-199341 | 694713 | Content-type values made consistent | The content-type for service APIs was returned as 'text' for 401 errors when using a custom authentication type instead of the parent-type/child-type format such as text/plain, text/html, application/json, etc. This has been corrected. | Data Integration |
INC-199679 | 688736 | Handling added to email encoding for ISO-8859-8-i charset | After update, cases were intermittently not getting created from inbound email and the process became stuck. This has been resolved by adding handling to replace the ISO-8859-8-i charset with ISO-8859-8 for encoding the mail content. | Data Integration |
INC-200167 | 689087 | Performance improvement for char and Integers arrays | In order to improve performance with locking pools for char and Integers arrays, the old usage of pooled arrays has been removed and replaced with a more efficient object creation array. | Data Integration |
INC-201991 | 692859 | Explicit connectivity close added to Queue Manager error handling | Performing a connectivity test on the MQ Connector page with an invalid queue name aborts the test connectivity but the MQ connection was not closing. This can become an issue when using IBM MQaaS (MQ as a service) where only a limited number of connections are allowed. This has been resolved by adding an explicit Queue Manager close in the error handling block. | Data Integration |
INC-204998 | 705631 | 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-210059 INC-211132 |
706892 706901 |
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 |
Decision Management
8.5.6 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-172785 INC-177031 INC-193326 |
662335 664856 683805 |
Adaptive model retry mechanism enabled | Adaptive models were missing from the Model Management page as well as in the Prediction studio while similar models for the same proposition, only differing by the Channel name, were visible. This was traced to data not being synchronized between the database and Cassandra. The pegadata.pr_data_adm_factory database table did not contain the record of the missing channel, but Cassandra did. Since the current Cassandra adm_scoringmodel contained model information, the system still believed the model was present. In order to ensure Cassandra and the database table are in sync, an update has been made to enable the retry mechanism "SyncFactoryKeysTask" to create the ADM model in factory table by periodically looking for scoring models without factories or an entry in adm_meta. | Decision Management |
INC-173596 | 660221 | Google OAuth and Spring versions updated | The Google-oauth-client jar has been upgraded to version 1.31.1, and SpringFramework libraries have been updated to version 5.3.9 . | Decision Management |
INC-174661 | 678821 | Handling added for clearing node killed between assignment and processing | An Offer flow was not resuming after it expired according to the wait shape. Investigation traced this to partitions which were assigned to a dead node in NEW state where they were not picked up by the dataflow. The problem was only encountered in the unusual situation when a dataflow node was killed in the brief period of time between the assignment and the processing, and has been resolved by adding an update which will clear unknown new assigned partitions for the batch run health task. | Decision Management |
INC-174781 | 655120 | Kerberos authentication added for external Cassandra | Support has been added for Kerberos authentication with Cassandra. | Decision Management |
INC-175207 | 655553 | Added handling for DSM Services stuck in leaving status after database outage | During a database outage, the heartbeat would fail and DSM services would eventually try to enter safe mode and stop. As the first step they would try to change the state to LEAVING, but because the database was down saving the LEAVING state failed and the exception was not handled correctly. This resulted in the rest of the stop operation logic not being executed and the service being stuck in LEAVING. To resolve this, an update has been made to ensure the service goes to LEAVING_FAILED if anything fails during the stop operation including when setting state to LEAVING_FAILED. The state LEAVING_FAILED will get flushed to the database eventually when it comes back up. This will allow the aggregation service to start from the LEAVING_FAILED state and recover by itself after a database outage. | Decision Management |
INC-179727 | 704546 | 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-181148 | 663164 | Documentation updated for altering data type to Timestamp to avoid duplicate data in Decision Hub | By default, the pxOutComeTime column has a Date data type in the pr_data_ih_fact table. This may cause duplicate data issues. To resolve this, the 8.5 and 8.6 installation and upgrade guides for Pega Customer Decision Hub have been updated to include a new procedure "Modifying column definitions to use the TIMESTAMP datatype in an Oracle database". Performing this procedure will allow users to avoid the duplicate data issue. All documents are available from the Pega Customer Decision Hub product page. | Decision Management |
INC-183201 | 667182 | Resolved error during save of a Predictive Model | Attempting to save a predictive model in Prediction Studio resulted in the error ".pyModelProcess.pyShapes(Setmodelcontrolgroup).pyMOName: Cannot generate the component ID from the provided input. Enter at least one alphabetic character." This was traced to previous work done around defining a control group using a property reference, and has been resolved. | Decision Management |
INC-183211 | 667010 | Compare-To-Empty-String support added to Analyzer | An enhancement has been added to support a NotEquals decision function in the Analyzer. | Decision Management |
INC-184352 | 671895 | Predictive model snapshot generation updated for Java 11 | While the Simulation data export case type was executed as expected, the predictive stages showed zero records processed. This was traced to instances running on Java 11 which caused an issue with the snapshot process. This did not affect learning, but visualization and reporting were not working in Prediction studio. To resolve this, an update has been made to the snapshotID for Java 11 compatibility which will generate a random UUID instead of using a seed. | Decision Management |
INC-185045 | 672417 | Performance improvements for action check-in | The process of 'Saving As' an action to a higher ruleset, Saving, and then running Check-in was taking an excessive amount of time. This was traced to redundant page copy activities and performance has been improved by updating the implementation. | Decision Management |
INC-186437 | 685014 | Updated entity attachment extraction tokenizers | After creating an entity extraction model, it was seen that one of the entities worked when there was a space after the semicolon but the detection was not working if there was no space. This has been resolved by updating the Tokenizers with extra examples to address tokenization when ":" is present between two words without any spaces. | Decision Management |
INC-186889 | 674013 | Unused DSS compiledExpressions now defaults to false | After updating from Pega 8.2 to Pega 8.5, executing a test campaign failed with an error in logs. This occurred when running Distribution tests with "Include funnel analysis reports" checked, and was traced to the DSS setting "decision/strategy/ssaVM/compiledExpressions". As this was previously used to toggle a feature which is no longer in use, the default setting for this DSS has now been changed to false to resolve this issue. | Decision Management |
INC-187520 | 677872 | Actuals sync clears data from cache and persistence | When sync attempted to clear the existing data from Actuals before copying data from the interaction history, the partition was cleared from the cache but not from persistence. IH data that was then copied to the same partition time ranges had new field descriptors created that did not match the format of the old data in persistence. As a result, when a query triggered the loading of such a partition, the mix of data with the old and new formats caused the load to fail. This has been resolved by updating the system to ensure the data is deleted properly from both the cache and persistence. | Decision Management |
INC-188309 | 684701 | Proposition filter populated for test business Issue | When running the proposition filter rule, no drop down list appeared for a business issue. This was caused by the Issue list not being populated for the Action-Run test page, and has been resolved. | Decision Management |
INC-188419 | 671499 | DSS added to configure usage of Topup | During NBAD-generated strategy execution, each interaction history summary is queried twice to check data relevancy. This update adds configuration options to disable topup in aggregate datasets. Topup can be disabled with the following configuration items: Set prconfig "ih/aggregates/last_customer_update_method" to NONESet DSS "cep/aggregates_dataset/partition_proc_cache_time" to -1 |
Decision Management |
INC-188882 | 679143 | DSS added for configurable asynchronous writes into DDS | An enhancement has been added which will allow DDS writes happening within pxDelayedLearningFlow to happen asynchronously and be configurable per node in order to improve performance. name: dnode/save_dds_async_processing_enabled description: Enable asynchronous processing of records in DDS Dataset save operation. Failures to store individual records will not interrupt operation execution. |
Decision Management |
INC-191350 INC-200609 |
679705 699302 |
Corrected single case metrics being combined | In Single Case dataflow runs, even though the data is processed on nodes, after some point of time the metrics were moving to 'Combined metrics of unavailable node'. This occurred when the corresponding service (realtime) was not available on the node when running the single case run, and has been resolved by updating the system to prevent single case metrics being combined while running on a node without realtime service enabled. | Decision Management |
INC-191356 | 679162 | External Input setting available on Strategy Batch Performance Test | It was not possible to specify the External Input as part of a strategy when using a Batch Performance test. This has been resolved by updating the pzDisplayTestStrategyContext When condition to "true" the so external input selector is properly displayed. | Decision Management |
INC-191789 | 679605 | Updated SimpleDateFormat to remove lenient parsing mode | When using File Dataset to ingest CSV files with the required Date format set as yyyyMMdd, an error was thrown if the date value provided in a file was in the format '14/04/1971', but a date format such as 14-04-1971 did not produce an error but instead was mapped to a Date value of 00131204. . This has been resolved by disabling the lenient mode of parsing in SimpleDateFormat. | Decision Management |
INC-192102 INC-206799 |
676359 701439 |
Performance improvements for stale thread warnings | Stale thread warnings were causing performance issues during dataflow run execution. Stale thread/slow component warnings are added as part of the dataflow execution when a processing thread takes more than 5 minutes to process a single dataflow record. The stacktrace of the dataflow thread is added as part of the warning for debugging purposes, but in some scenarios the stacktrace can become very large. This has been resolved by removing the stacktraces from the warning, improving the query logic, and adding the run ID to the exception method to assist if there is an error. | Decision Management |
INC-192826 | 685796 | 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-193632 | 679171 | Cassandra driver metrics exposed for performance troubleshooting | By default Cassandra driver metrics are now enabled. Metrics can be disabled by setting the dnode/disable_driver_metrics prconfig parameter. | Decision Management |
INC-193986 | 680031 | Parameter logic updated for metrics activity counter | An error was causing the PushCDHMetrics agent to fail. This was traced to an undefined parameter in the activity which was used as a counter, and has been resolved by replacing it with a local variable of type integer. | Decision Management |
INC-194305 | 681679 | File Dataset wildcards updated for ADM storage | Attempting to access the filepath was failing and an error was seen indicating "Could not obtain lock 'Create repository file pegacloudfilestorage:ADM/Rule-Decision-AdaptiveModel/Data-Decision-Request-Customer". While creating a file name, a lock is generated while checking the file names of existing files. If the file data set has a large number of files, a condition may occur where some threads are unable to save data and an exception is thrown. To resolve this, the wildcard previously used in the file name has been replaced with the Pega node id + thread id + current timestamp. This will ensure all wildcards are unique and there is no need to lock and list existing files. | Decision Management |
INC-194657 | 682004 | ADMinputsource field population updated to handle transactional decisions | The CaptureResponse flow was failing while writing to AdaptiveAnalytics with the error "IllegalArgumentException - argument does not represent JSON object". This occurred while running an outbound campaign where a few decisions were treated as transactional and did not have Model executions. Attempting to set a response for these decisions resulted in a JSON parse exception being thrown due to pxADMInputs not being populated (no models executed). This occurred only when using transactional actions in CDH, and was caused by the system only including predictive models during the make decision flow due to common inputs not being stored. While there was a workaround of overriding the property pzADMInputSource to use modelReferences instead of admInputContainer, this has been resolved by correcting how the pzADMinputsource field is populated. When there is no modelInput, the system will not populate that field so the page is ignored. | Decision Management |
INC-197730 | 686235 | Prediction outcome response timing updated | Predictions using a response timeout were not emitting a negative response ('NoResponse') when the specified waiting time expired. This was traced to the the outcome and response timeout values being overridden while triggering responses for multi stage predictions along with chained predictions. This has been resolved by modifying the flow to emit each outcome as it is received and by adding the dataflow trigger in the function so that it does not override the values in case of chained predictions. | Decision Management |
INC-200218 | 692430 | Added handling for calling truncate with external Cassandra | A JMX exception was generated when using external Cassandra. This was traced to the combination of calling truncate and using external Cassandra for DDS, and has been resolved by adding a 'do not execute' consistency check during a truncate operation when using external Cassandra. | Decision Management |
INC-202937 | 695940 | RealTimeProcessingDelay made configurable | When using interaction history summaries in Engagement Policy strategies, the check whether a particular action was sent previously was not returning any results for the customers that did have an action "Sent". These records were present in the IH Fact table but the IH Summary tables were missing these records. This has been resolved by making the realTimeProcessingDelay configurable for reading from IH in a real-time flow configurable (done as part of IH pre-aggregation). This may be useful if there can be a difference in time between machines inserting into IH which causes pre-aggregation to miss processing records. The relevant DSS is "interactionHistory/realTimeProcessingDelay", and the default is 5 seconds. This must be set before starting pre-aggregation. This is the difference between the end position and the log time. RuleSet: Pega-DecisionEngine DSS Name: interactionHistory/realTimeProcessingDelay Value: <new delay in seconds> |
Decision Management |
INC-203994 | 698852 | DSS added to handle merges with lower versions of Postgres | After update, executing the batch campaign with volume constraint resulted in the second data flow DF_Wait failing with error message "ERROR: number of columns (1844) exceeds limit (1664)". This was due to the database set’s change (in 8.5) to use the database layer’s merge statement. Prior to that, the logic used "deletes and inserts". Depending on the version of Postsgres, the generated SQL statement for a merge statement is different. The “INSERT … ON CONFLICT … UPDATE” syntax is generated for Postgres 9.5+ AND when there is a PK constraint defined for the database table. Otherwise, the complex UPSERT statement (old syntax) is generated, as was the case in this issue. This is a known issue in the Postgres server software where it mis-interprets the number of columns involved. i.e., it mistakenly counts the number of columns twice. As a result, the actual maximum columns allowed is only half of the official limit (1664). The same UPSERT statement does not cause the “exceeds limit” exception if there are 832 or fewer columns in the statement. To resolve this, an option has been provided to select between the “original logic” (deletes and inserts) and the “merge statements” logic by way of the DSS “decision/datasets/db/useMergeStatementForUpdates”. Setting “true” will use the merge statement logic, and setting “false” will use deletes and inserts. When the DSS is not defined, the default is "true" and the system will use merge statements in the form preferred by Postgres 9.5+. | Decision Management |
INC-204682 | 695703 | HandleResponses updated for use with optimized campaign | After updating from Pega 8.4, responses were not processed in the pxHandleResponses Data flow if the "pyCampaignOptimization" flag was set to true. This was traced to a missed use case for an optimized campaign, and has been resolved by modifying the condition in HandleResponses. | Decision Management |
INC-206109 | 706239 | 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-206684 | 699364 | Empty string handling added to SSA CompareDates | The CompareDates implementation in SSA has been updated to fallback to the current datetime/date if it encounters empty string arguments. | Decision Management |
INC-207357 | 703350 | Decision Management book updated for additional NLP troubleshooting | Troubleshooting articles have been added to the Decision Management book which address the most common issues encountered when working with the NLP capability of Pega Platform, including topic and entity detection and email parser. These tips can assist with issues such as a node running out of memory due to having a large number of custom Ruta scripts that use REGEX pattern matching. | Decision Management |
INC-212656 | 706896 | Decision funnel simulation improvements | Memory fixes and performance improvements have been added for funnel simulations. | Decision Management |
INC-213189 | 707346 | 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-213549 | 710160 | Resolved error for custom relative dates | An error was seen when parsing the [Date Property] [is before/after] [Last/Next x days] while using a custom amount of number of days in Customer Decision Hub (CDH). This was due to the system not supporting the [Last/Next x days] feature for SSA, but only detecting this during parsing for the prefixed values for Proposition Filters and not custom values. As the parser did not realize the construct referring to the relative date was not supported, it created an SSA that caused an exception during execution. This has been resolved. | Decision Management |
Low-Code Application Development
8.5.6 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-173986 | 668933 | Updated survey refresh API for switching radio buttons | After configuring a picklist with multiple options in a survey framework, it was not possible to select a radio button when toggling between radio buttons on the UI. Investigation showed the values of the radio buttons were not published to Clipboard, causing pyAnswer to be blank. After detaching the webwb_pzsurvey_ui_userscript.js the value was posted correctly and the visible WHEN was working as expected. This has been resolved by updating pzsurvey_ui_userscript to add a timeout on the refresh API call when switching between radio button options. | Low-code app development |
INC-175533 INC-182576 |
678908 677526 |
Improved Page compare for page groups | Field level auditing on embedded properties sporadically did not report the "old" value when a property was modified even though the page was listed as "Modified". This has been resolved by adding logic to the pxComparePages algorithm to treat Lists and Groups differently. Now Page and Value Groups will use pxSubscript as the primary way to detect add and deletes. | Low-code app development |
INC-177312 | 692109 | Added handling for FieldValue issue during Excel export | After upgrade from Pega 7 to Pega 8, the export to Excel function for business-rules kept and maintained via Decision-Tables created a file that Excel could not open. This was traced to a function call in the Results tab and the Return Actions in the decision table which caused an issue with the generated Excel to be used for editing. To resolve this, any allowed values will have quotation marks removed before the vales are passed to the export. | Low-code app development |
INC-179769 | 671021 | Document generation new line formatting made consistent | The GenerateWordDocument API and Generate Document shape were not adding new line to a Word document even when Text Area format was used. This was traced to a difference in document generation which varied between adding \n and adding \r\n for new line, causing inconsistent behavior, and has been resolved. | Low-code app development |
INC-182152 | 667394 | Special character handling updated for export MapValue to Excel | The Excel download was failing when the Row/Column definition or column configuration of a map value contained an equals sign (=) or < > brackets inside quotation marks. This has been resolved by adding an update that will evaluate the comparator value at the start of the row condition value, and row condition value and row condition operator will be set separately. | Low-code app development |
INC-182248 | 665779 | Added logic to handle manual validate rule creation | Manually creating a Validate rule with conditions and then opening the configure view with conditions caused the validation rule to be removed from the flow action rule along with the validation conditions in the validation rule referred in flowAction rule. This has been resolved by updating the logic in the Condition Builder to handle this use case. | Low-code app development |
INC-184800 | 685684 | Handling updated for switching between concrete and abstract class types | After configuring a non-templatized table with source as page list, with the page list property sourced to abstract class, a runtime exception was seen when loading the table that indicated "database.BadInputException: Cannot open or save instances of class Data-Orders-OrderDetails--the class might be abstract, or it might have no defined keys, or it might descend from Code-". When a class is created and saved as concrete, there is a checkbox "Automatically generate a unique ID for records of this type" which when checked will set pyAutogeneratedKey to false on the clipboard. If the Class is then later changed to abstract without unchecking the checkbox first, then the BadInputException error will manifest on the table at runtime. Investigation of the Edit Class ruleform found some scenarios where clipboard properties which have previously been set while Class type dropdown is set to Concrete can persist and cause the BadInputException seen when the class is switched to Abstract. This has been resolved. | Low-code app development |
INC-185587 | 679621 | Updated password hash security | Security around password hashes has been updated. | Low-code app development |
INC-185670 | 680950 | All functions listed in decision trees | While configuring a decision tree, using the 'Function Allowed' dropdown resulted in the activity Rules-Alias-Function ListAliases throwing the error "Attempting to access a rule with a bad defined-on class: Trying to open rule "COMPARETWOVALUES" of class Rule-Alias-Function, but no defined-on class (pyClassName) was specified" while trying to remove the duplicates. After this error, both the original and the duplicate were removed instead of just the duplicates and an incomplete list was created. This was traced to an issue with the propagation of the pyClassName property to the OpenRuleAdvanced control in the pzAllowedFunctions section as part of passing "OtherKeyValuePairs", and has been resolved by passing the parameter values in the same control using a custom query. | Low-code app development |
INC-187103 INC-199303 |
671735 690630 |
Guided Tour working from Actions menu | After updating from Pega 8.4 to Pega 8.5, "Manage a Guided Tour" was no longer working under a local action when called from the Actions menu on a work object. An unspecified error message appeared in the tracer. Investigation showed there was a null pointer error caused by the menu being invoked on an invalid page, and this was traced to updated authentication requirements: registration at the portal is not reliable as it is thread-scoped and run only once. The thread name is not guaranteed to stay the same so subsequent invocations of the tour activities failed. This has been resolved by modifying the call registration function to handle the security issues related to the generation of the menu path. | Low-code app development |
INC-187610 | 672847 | Logic made consistent for design time group condition | An inconsistency was seen between the logic string that appears when switching from "Group ORs" mode to "Use advanced logic" mode at design time, though whichever mode was used at Action check-in was always properly reflected on the generated proposition filter so there was no runtime impact. This design time issue was traced to the property "pyGroupConditionsByOld " being empty: this property is transient so its value will not be saved into database. This property should be updated whenever user changes the Logic operator from the drop-down, and this has been resolved by adding an intermediate property to hold the old group condition value when it changes. | Low-code app development |
INC-191567 | 676155 | New application wizard security updated | Security around displaying and running the new application wizard has been enhanced. | Low-code app development |
INC-192092 | 678449 | Info messages added to merge and errors on merge failure | Logging used in the Merge Wizard process has been updated to provide feedback as the branches merge. In addition, the merge logic has been modified to use StepStatusFail as opposed to StepStatusGood. | Low-code app development |
INC-192464 | 681858 | PackageComponent updated for use with repositories | Exporting a zip file created by the Component wizard to a repository resulted in an error, however the same process worked as expected when the zip file was created by the Product wizard. Investigation showed that pxPackageComponent was not kept up to date with new metadata requirements for Artifactory export. This has been resolved by modifying pxPackageComponent step 7 to set Param.ArtifactType to "component" and Param.ArtifactName to [component name]_[component version]. A privilege check has also been added to zipMoveExport. | Low-code app development |
INC-192833 | 678114 | New Application Wizard will default to existing work groups if none are created | When using the new application wizard to create a new application, the new app API replaces the old work pools with the newly generated ones. If the new application configuration was done in such a way that classes are not generated due to reusing existing classes, access groups were being generated with empty work pools. To resolve this, the system has been updated to use the existing work pools if the new app didn't generate new work pools. | Low-code app development |
INC-194227 | 679896 | New Application wizard disabled or enabled correctly | The New Application wizard was disabled with the error message: "Application creation is disabled as the current operator is in invalid state". This was traced to edits made to the Operator page which caused the new app wizard to not be shown due to failed validation. To resolve this, an update has been added which will refresh the operator page on click of the menu so the New Application wizard is disabled or enabled correctly. | Low-code app development |
INC-195793 | 697919 | 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-198113 | 693352 | Link-Association-Follow updated | The report definition 'pyGetAssociations' was generating the error "data.internal.rd.reference.InvalidReferenceException InvalidReferenceException .pxLinkedRefTo Cannot use an unexposed property as there is no BLOB column for the class: 'Link-Association-Channel'". This has been resolved by updating pzUnfollowReview to handle Link-Association-Follow, which will prevent these log errors. | Low-code app development |
INC-200416 | 699861 | Updated AttachmentPreview control for Account Manager Access Group | When using the Account Manager Access group as the default and only access group on a profile, attempting to render a PDF on the click of a link did not work as expected. The render-on-click worked as expected when logged in as the Author and the application was switched to Account Manager. This has been resolved by registering the activity pzAppStorageOkToAttachFile in the pzAttachmentPreview control. | Low-code app development |
INC-205336 | 698302 | Logging level updated to resolve warning | After applying a recent security update, an exception was logged indicating "WARN Error while converting string [USAGE] to type [class org.apache.logging.log4j.Level]". The logging level "USAGE" has been changed to "info" to resolve this issue. | Low-code app development |
INC-207309 | 704300 | Clipboard page handling updated for encrypted values | When retrieving data that contained encrypted properties, the clipboard page either did not load, or if it did load the encrypted properties were not listed on the clipboard. This was traced to use of a read only data page, and has been resolved by updating pzRemovePWD with handling for read only pages. | Low-code app development |
INC-207818 | 701749 | Security updated for @baseclass | After update, searching for a baseclass 'when' rule returned no results. Listing the rules under baseclass in App Explorer resulted in the error "Applies To: The Class with key value(s) %40baseclass does not exist". This was an unintended side effect of security updates, and has been resolved by creating an exception path for "@baseclass". | Low-code app development |
INC-209426 | 706805 | 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 |
Mobile
8.5.6 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-182423 | 691798 | Pull to refresh disabled during case submission | Triggering a refresh (swipe down) on mobile while the spinning loading indicator was shown resulted in the error 'This action is not allowed' instead of being able to view the case. This has been resolved by disabling pull to refresh when there is any background network activity in progress. | Mobile |
INC-187230 | 672472 | Resolved exception during LDP processing | A ConcurrentModificationException was appearing during the processing of Large Data Pages. This has been resolved with the addition of a lock on clear method in ConcurrentReplicatedPage. | Mobile |
INC-194932 | 689290 | 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-195519 | 698496 | Support added for using CFW when Pega server is unavailable | Data synchronization changes have been added to allow Client for Windows to work in offline mode without an AppCache manifest. | Mobile |
INC-195601 | 685769 | 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-206049 | 703470 | Resolved activity registration error for Scan Barcode/QR Code | Attempting to add the action 'Scan Barcode/QR Code' to a button generated the warning "Unauthorized request detected : Unregistered request encountered with params pyActivity:pzRunActionWrapper pySubAction:runAct pzActivity:pzScanCode". Investigation showed this was due to the pzScanCode activity referred to in pzpega_control_actions_scanCode.js file not being registered, and has been resolved by adding code to register the necessary events for both button and navigation. | Mobile |
Project Delivery
8.5.6 Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-167259 | 647097 | Documentation updated for evaluateFormulasLater parameter | When an excel containing a formula was imported as binary file and viewed from the user end, the formula was visible. To address this, Case Management documentation has been updated to include additional information on using the evaluateFormulasLater parameter, which can be set to true to avoid errors in advanced formula evaluation. https://docs.pega.com/case-management/85/activities-integrating-cases-e… | Project Delivery |
INC-177323 | 672421 | Search string wildcard use documentation updated | The support article for the search API has been updated to clarify the ability to use the wildcard character "*" by manually adding it to the prefix of each term in the search string. | Project Delivery |
INC-190130 | 678540 | Help information updated for using Elastic Search with Report Definition | The support article "Configuring a report definition to run against an Elasticsearch index" has been updated to clarify that the search can pass multiple values with a space in pySearchString as it does OR operation on all the fields, and that filters in the report definition will be used when executing the report directly or when calling the report in the pxRetrieveSearchData activity. https://docs.pega.com/system-administration/85/configuring-report-defin… |
Project Delivery |
Reporting
8.5.6 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-164383 | 682542 | ElasticSearch ClusterService logging updated | In order to support enhanced troubleshooting, the default logging level for ElasticSearch ClusterService has been set to "ALL". | Reporting |
INC-168003 | 655377 | BIX Total Instance count matches manifest | The BIX Manifest file was showing a count mismatch when the BIX Manifest and Extract files were shared with downstream teams, causing data to not be accepted by the downstream application. Investigation showed this occurred for an embedded page list property in the sequence that was missed and not considered. To resolve this, a DSS has been added: when BIX/generateAllEmptySubscriptForPageList is set to true, an empty subscript will be generated for the missed properties. | Reporting |
INC-173452 | 666439 | Quorum capability check added for external Elastic Search | The error "java.lang.UnsupportedOperationException: Not supported for client/server mode at search.indexmanager.internal.ESIndexAdminHTTP.isQuorumAvailable" was appearing when attempting to use external Elastic Search to index a dedicated index, and the queue processor was running but showed multiple broken items. This has been resolved by adding a capability check with ES_INITIALIZE_EMBEDDED_CLUSTER to prevent a quorum check with external elastic search. | Reporting |
INC-174116 | 662042 | Added reporting on descendant classes for framework | Reporting on descendant classes was not working as expected. In a report definition with "Reporting on descendant classes enabled," the framework class and implementation class each refers to two different tables that use the same names but belong to two different schemas. Investigation showed the generated SQL query was not adding the necessary UNION clause, and the records from the descendant classes were missing when running the report on framework class. This was a missed use case and has been corrected. | Reporting |
INC-174686 | 670539 | Handling updated for INativeSQLBuilder with ABAC enabled | When trying to import into a data type, the error "Exception occurred during data import pxW-886: java.lang.IllegalArgumentException: INativeSQLBuilder not initialized properly" was generated. Investigation showed that when Add or Update was chosen with ABAC enabled during import, a null pointer exception occurred while getting the class definition. This has been handled by adding an extra null condition check. | Reporting |
INC-181684 | 665482 | Privileges adjusted for RetrieveReportData | In recent versions of Pega, pxRetrieveReportData was secured with @baseclass AllFlows and OpenDeveloperForm privileges. However, this can interfere with setting up roles after update. To resolve this, the privilege restrictions have been removed from pxRetrieveReportData as it is already protected by ABAC/RBAC. | Reporting |
INC-182193 | 674800 | Drilldown report takes original report prompt parameters | When a report had prompt filters configured and the summary report definition was executed by giving prompt filters, drilling down to one of the records in the summary report display and then looking at the reports displayed and summarized on a column showed a mismatched count. This was found to be a very specific edge case that involved calling the "Summarize" action from a report column within a drilldown report when using a custom filter section and "prompt for filter changes" on the main report. Filters from the custom filter section were being propagated to the drilldown report when summarizing, but the drilled-down-and-summarized report itself had not been refreshed on the client side to reflect this. To resolve this, the actions have been copied from pyDefaultCustomFilterApplyCancel and applied to the Summarize selection in pzGridMenuNavRule. | Reporting |
INC-182381 | 664454 | Updated dedicated index reindexing check | Attempts to reindex were not successful after a dedicated index failed with the error "Not enough active shards for index work to meet write consistency of quorum". This has been resolved by updating the system to validate the cluster state for the dedicated index name instead of the work index name when performing a dedicated index Reindex. | Reporting |
INC-183553 | 666394 | Report Scheduler Email Notification column consistently populated | The Email Notification column in the Report Scheduler was not being populated. Analysis showed that some standard rules were being skipped for some list view reports; this has been resolved by including the pzReportBrowserScripts js file under the scripts of the pyReportBrowser harness so that it will reload the pzReportBrowserInner while unloading the model popup. | Reporting |
INC-184303 | 670402 | Runshortcut updated to allow direct invocation for reporting | After update, reports were not running as expected. This was traced to the checkbox for 'Allow direct invocation from the client or a service' not being checked in the final rule, preventing reports from working if they were called using the activity pxRunshortcut. This has been resolved by resetting the checkbox to checked. | Reporting |
INC-185565 | 667507 | Helper text added to improve close icon accessibility | After opening a report, the "X" close icon was not read by JAWS and was not functional when JAWS was running. Investigation showed that the ReportEditorHeader section did not have Helper Text for the Close icon; this has been added to improve accessibility. | Reporting |
INC-185727 | 668209 | Updated replica management for search clusters | When using a cluster with two Universal nodes in the cluster, a daily restart process where the second node was not started until the first was fully up resulted in Search initialization failing for the first node while becoming active on the second node. This was traced to the methods used in increasing and decreasing replicas. This has been resolved by revising the handling of ElasticSearch node lifecycle and replicas through a new option "Dindex.searchNodeCount " which includes a specification for the number of expected search nodes. If this option is not present, the old method will be used. | Reporting |
INC-186138 | 668809 | Charts sourced from Report Definition show correct color post-update | After update, the color coding was not working on charts sourced from a report definition. This was due to the correct seriesType not being determined when function aliases were used in charts, and has been resolved by adding a condition in configuration.java to determine correct the SeriesType. | Reporting |
INC-189136 INC-197610 |
679515 688001 |
Dataflow with report definition source repaired | After update, data flows using a report definition dataset as source were throwing a null pointer exception. This was traced to previous work done around retry handling for Oracle queries where there were issues identifying the correct column types; that previous work has been reverted to resolve this null pointer exception, and further work will be done to refine the solution to the Oracle CLOB DatabaseException. | Reporting |
INC-190876 | 680190 | Handling added for corrupted direct index | A corrupted dedicated index was causing a null pointer error. Handling for this has been added by way of an additional condition check for an improper direct index with no fields in the metainfoindex document, along with a filter to check if the category is null. | Reporting |
INC-192769 | 683000 | Removed incorrect role from accessible filter logic | When using JAWS, tabbing out from Close(X) and setting focus on the "filter by" section resulted in JAWS reading out "use arrows to move". This was not an available action, and has been resolved by removing role="listitem" from the RRFilters_logic. | Reporting |
INC-192879 | 677822 | Parameter added to allow skipping specific attachments during indexing | An enhancement has been added which introduces the ability to control which attachments are indexed and which are skipped when attachment indexing is enabled. This is handled through the additional parameter called "purpose" which has the value "indexer", and it is included in the request to "D_pxGetFile" during incremental and batch indexing of attachments. | Reporting |
INC-195511 | 693218 | Check added for child join class when using ABAC | When a join was applied on a report definition and the same join class had a child class to which ABAC was applied (for some property eg., isABC), an "invalidreference" exception (isABC) was generated. This was traced to the system taking into account the child class of the join class while running the report, and has been resolved by adding a check to handle this scenario. | Reporting |
INC-195827 | 687212 | Accessibility improved for filter pop-up buttons | JAWS was not reading the buttons on the filters pop-up for a report in report browser. This has been resolved by adding helper text for the cancel button of pzReportConfigApplyCancel and for the Search icon of the pzAvailableValues. | Reporting |
INC-197953 | 686255 | Execution class parameter handling updated for scheduled reports | The schedule was picking the wrong class to execute a report, choosing the report top class/current application class instead of the expected shortcut class mentioned in the report class of the schedule. This has been resolved by updating the parameter handling in the pzRunScheduleShortcut activity. | Reporting |
INC-198273 | 688353 | DSS added to control BIX extraction time properties | After upgrade from Pega 7.3 to Pega 8, downstream systems were failing to process the BIX extract manifest summary file. This was due to three columns which were introduced in Pega 7.3.1 to handle any failures during BIX incremental extraction: pxStartCommitDateTime, pxEndCommitDateTime, and pxLastSuccessFulCommitDateTime. To support better backwards compatibility, this fix introduces the below DSS to allow disabling of the new columns. BIX/disableSaveTimePropertiesInCSV BIX/disableSaveTimePropertiesInXML BIX/disableSaveTimePropertiesInDB |
Reporting |
INC-200973 | 699264 | Added handling for client-side validation errors in sub-reports | When a sub-report was trying to access externally mapped fields or an optimized page property by JOIN of another class, the main report was unable to validate the Page property. This has been resolved by updating the activity code to handle client-side validation errors on main reports attempting to access the externally-mapped Page properties of another class in the sub-report. | Reporting |
INC-201219 | 696609 | 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-201625 INC-205075 |
698653 698739 |
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 | 699080 | 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-205993 | 697848 | Executing operator ID shown for re-indexing | After update, the 'executed by' name for re-indexing in the search landing page showed "System" instead of the actual operator ID. This has been corrected. | Reporting |
Security
8.5.6 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-164432 | 696292 | Global obfuscation key initialized on first requestor call | When using URLEncryption = true and SubmitObfuscatedURL = optional, attempting to export an Excel spreadsheet resulted in the error "Invalid character found in the request target". This was traced to the variable pega.d.globalobfuscateKey having a null value which was then converted to a byte array and decoded, generating improper characters in the URL. After a browser refresh, the correct value was set in pega.d.globalobfuscateKey and the export worked as expected. To resolve this, an update has been made to initialize the key on the very first call in PRRequestorImpl when the global obfuscation key is determined to be NULL instead of initializing the global obfuscation key by on-demand basis from HTTPAPI. | Security |
INC-173098 | 694091 | Signature map updated for fetching keys | MFA login worked with SAML 2.0 when the certificate was disabled but failed when the certificate was enabled in Auth Service. The error " "Signature algorithm is null" appeared. This has been resolved by updating the signature map to ignore case sensitivity while fetching keys. | Security |
INC-178834 | 660427 | RDA support added for Citrix XenApp | Robot Runtime was not working in a Citrix XenApp environment when using the JWT token generated by the D_pxRoboticJWTToken data page to identify the user. This has been resolved by updating the scope of the datapage D_pxRoboticJWTToken from node level to requestor, which will allow the user information in the JWT token to be passed to the routing service and support the use of RDA in Citrix environments. | Security |
INC-179761 | 684675 | Basic Access Control (BAC) now available in production level 2+ | An enhancement has been added to enable the Basic Access Control (BAC) feature for production levels 2 or greater. This is a change from being available previously only in levels 4 and 5, and will facilitate diagnosing access control issues earlier in the development process. | Security |
INC-180594 | 670954 | Filtering added for DisableDormantOperators | When running the Disable Dormant Operators agent, many operators were seen which were dormant but not disabled. Investigation showed the activity was fetching all of the operators without filtering the deactivation state. This has been resolved by adding a filter condition in pzDisableDormantOperators to fetch only deactivate state users. | Security |
INC-182530 | 695759 | SAML datapages cleared before new authentication | If a previous user had not logged out or timed out when using SAML authentication, a second person using the same device/browser would end up in the first user's session after performing their own authentication. Investigation showed the second login D_SAMLAssertionDataPage was not getting refreshed with the current user login details; this has been resolved by explicitly deleting the SAML Datapages before processing a new login if the session has not timed out. | Security |
INC-182827 | 691526 | URL security updated | Security has been updated for URL tampering defense and Rule Security Mode. | Security |
INC-184964 | 705935 | 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. | Security |
INC-185251 | 674905 | Locking APIs updated to handle CDK key rotation | It was not possible to save cases for several hours following the CDK key rotation. This was traced to an exception that caused the system to attempt to acquire a lock on the CDK key instance, and normal save behavior would resume after the default sys lock time out period expired. This has been resolved by updating the system to use LockManager APIs to perform a database save with locks. | Security |
INC-185362 | 668824 | Keystore update properly revises the cache | A keystore updated with the latest certificate was not getting reflected in the runtime and the old certificate was getting picked. In a multi-node environment when the new JKS is uploaded in one node, the changes are expected to be communicated to other nodes so that the cache can be cleaned up. In this case, investigation showed that the keystore label was in uppercase and the cache entry was not correctly removed. This has been resolved by adding an update that will convert the cache key to lowercase and maintain uniformity to ensure proper cleanup. | Security |
INC-186395 | 701424 | Updating handling for for Pega-supplied operators with MFA | When a site is blocking prweb and using prweb/PRAuth for login with MFA enabled, admin user id logins failed and MFA showed the error screen for Pega-supplied users. This was due to MFA verification not being configured for Pega-supplied operators, and has been resolved by adding an Adminstrator condition to skip MFA for for Pega-supplied operators. | Security |
INC-186897 | 681029 | 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. | Security |
INC-188128 | 671827 | Refresh assignment checks updated | Additional privilege checks have been added to refresh assignment. | Security |
INC-188676 | 696580 | Improvements for Report Definition OperatorID filtering | Report Definition filters were not working as expected when data from the OperatorID page was used and authentication was enabled. This was traced to the OperatorID page not being correctly populated. To resolve this, the authentication logic has been modified to always create the OperatorID page at requestor level, and the HTTP API layer has been updated to remove the thread level OperatorID page if exists. In addition, an enhancement has been added for improved debugging on log appenders provided by log4j which allows log filtering based on the requestor and thread for a given appender at a specific log level. | Security |
INC-188889 | 675579 | New application wizard security updated | Security around displaying and running the new application wizard has been enhanced. | Security |
INC-190368 INC-191726 |
673966 678353 |
JWT access token key rotation handling updated | When using the JWT token, REST services were randomly failing with the error message "Error in Processing JWT". Investigation showed the JWT access token key rotation data which was generated was not propagated to all the nodes. This has been resolved by updating the ORDER BY applied on KEYPAIR_CREATE_TIME_PROP. In addition, the default key pair rotation time has been increased from 15 to 90. | Security |
INC-190384 | 676572 | URL validation updated to handle custom token endpoints | While saving an authentication profile with OAuth details, validation was failing for a valid URL given in the access token endpoint and revoke token endpoint fields. This was traced to the use of the Apache URL validator, which considered some domains to be invalid. To resolve this, the urlvalidator constructor has been updated to include a custom RegexValidator for access token and refresh token URLs. | Security |
INC-194865 | 695619 | 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-196121 | 687343 | Added max records DSS to Purge Agent | An issue with nodes going down and jobs failing was traced to high heap consumption by OAuth tokens occupying the clipboard. To resolve this, a DSS setting has been added for purging Max Records of tokens. | Security |
INC-196414 | 684237 | OAuth token refreshed when revoked on source | When an OAuth token was used to authorize the APIs in the system, revoking the token at the source, i.e. from the Service side, did not automatically refresh the token and a logoff/logon was required before a fresh token was generated. This has been resolved by adding an update to explicitly purge revoked tokens. | Security |
INC-196839 | 695280 | Removed duplicate clipboard page creation | An out of memory exception occurred due to the pyInstanceInfoForUpdate clipboard page having 6.5M Embed-InstanceInfo entries. This was traced to the ClientUpdateRequestHandler.getInstanceInfoPage method continuously appending to the ClipboardProperty instanceInfoPage. This has been resolved by removing the extra creation of instance pages within the loop. | Security |
INC-199271 | 699654 | SAML-based SSO security updated | Security updates have been made relating to SAML-based SSO code. | Security |
INC-200303 | 694849 | OIDC authentication service token reload updated | The exception “PRSecurityException: Invalid State Parameter received" was generated along with "Unable to execute OIDC flow : Caught exception while parsing the id token”. The issue was identified in the Keystore cache refresh strategy for the 'reload once per interaction' option. While the Refresh interval was one minute for reload once per interaction, if there was a login request/keystore request in that one minute then the refresh interval was pushed to one minute again from that timestamp. The system was also maintaining the cache refresh interval as one minute. That meant if there were continuous requests, then the refresh interval was pushed to one minute for each request. As a result, the Refresh interval was repeatedly extended until the exception occurred. To resolve this, the Refresh token will happen if there are no requests for a period of one minute, and the cache refresh interval for "Reload once per iteration" has been removed completely. | Security |
INC-202122 | 691804 | Logging extended for unexpected properties received in HTTP request | Additional logging has been added to assist with tracing SECU0001 alerts seen when submitting a case in the interaction portal. | Security |
INC-204886 INC-204897 |
698157 696149 |
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-… . | Security |
INC-206288 | 705270 | 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. | Security |
INC-209298 | 704143 | Added security tokens to Worklist assignment error wizard | After enabling CSRF, moving to 'Configure -> Case Management -> Tools -> Work Admin -> Worklist assignment errors' and then selecting a record and clicking on 'Delete' resulted in a '403 Forbidden' error. This has been resolved by adding CSRF and fingerprint tokens as part of the form data. | Security |
System Administration
8.5.6 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-145293 | 610935 | Additional diagnostic logging added for ElasticSearch startup issues | The PyIndexerState was stuck in Starting status during node initialization. This issue could occur if the filesystem became hung due to network level issue while scanning entries from /etc/mtab, resulting in a lock which was not released correctly. In order to better determine which node entry in a cluster may be responsible for the hang, an update has been made which will use a temporary virtual environment to repeat the part of the initialization phase responsible and generate additional logs for debugging. To activate this, the PegaSearch.Diagnostics logger must be set in DEBUG mode. This duplicated virtual initialization will not interrupt the normal initialization. | System Administration |
INC-163791 | 666195 | 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-168253 | 660882 | Documentation updated for using Connect MQ with clustered queues | After update to Pega Platform v8.6, an issue was seen with Connect MQ rules that used an alias queue. The support documentation has been revised to outline the necessary steps for updating an application to perform as expected. In the Pega-IntegrationEngine ruleset, create the following dynamic system settings and their default values: "mq/pmo" = 0 "mq/gmo" = 0 "mq/oo_request" = 1040 "mq/oo_response" = 16 For more information, dynamic system setting support articles are available. |
System Administration |
INC-174625 | 655241 | Admin Studio will consider cluster protocol when returning listener status | When using a few nodes in standalone mode for BIX extract combined with server nodes using Hazelcast, opening the admin studio pages with service discovery caused an error to be thrown. This was traced to the system writing an entry to pr_sys_statusnodes table as an embedded node whenever a BIX extract was triggered, causing those standalone nodes to be incorrectly considered by the listener landing page. This has been resolved by configuring the system to either return the local member when the cluster protocol is standalone or to return all Hazelcast members if the cluster protocol is Hazelcast. | System Administration |
INC-177512 | 657014 | Hazelcast packages expanded for Java9+ with kubernetes | Hazelcast warnings were seen in cluster logs when Hazelcast was run in embedded mode or c/s mode on a java modular environment i.e. java 9+ which noted that performance and functional impact issues may result if certain internal modules of java are not given reflection access. This update provides the necessary access to some additional java internal modules/packages per the Hazelcast recommendation. | System Administration |
INC-181941 | 664806 | Handling added for using virtual network interface for Stream Services startup | After update, the restart of any node failed with the error "Unable to create DSM service DATA-DECISION-SERVICE-STREAMSERVER DEFAULT". This has been resolved by adding support for allowing stream service to start on the virtual network interface in cases where it was explicitly configured via the "cluster/hazelcast/interface". | System Administration |
INC-184798 | 703270 | PRconfig added for JVM user/password | The setting Dcom.sun.management.jmxremote.local.only=true has been added for use when JMX authentication is enabled by providing jmxuser/password through prconfig. | System Administration |
INC-188065 | 671401 | Catch added for corrupted alert configuration | On creation of a queue processor rule, the alert ID was not present in the logs due to a missing alert configuration page. After this action, the server was not accessible and could not be started. This has been resolved by catching the exception if the alert configuration is malformed or missing. | System Administration |
INC-190070 INC-193153 |
676642 686294 |
Restored local blocking queue cache | After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message. | System Administration |
INC-192979 | 679040 | Cache support added for Runtime Context | System performance has been improved by adding cache support for System-Runtime-Context management. | System Administration |
INC-195580 | 684491 | Delay Factor updated to allow values < 1.0 | After modifying the "Delay factor" parameter on a queue processor rule and and clicking the "Save" button, refreshing the page caused the value of the "Delay factor" parameter to change. This has been resolved by updating the delay calculation strategy to support factors < 1.0. | System Administration |
INC-196447 | 684643 | Enhancements added for external Kafka Stream Service | To ensure data privacy when using multi-tenant Stream Service hosted on a single Kafka cluster, access will be authorized based on ACLs when a tenant sends direct requests to Kafka. In addition, all Kafka resources (topics and consumer groups) are now able to contain a prefix naming convention which can be used for tenants. This is handled through using a <env name="services/stream/name/pattern" value="{tenant.name}-{environment}-{stream.name}"/> prconfig setting to set the stream name pattern. For example, if the tenant.name is resolved into "companyname", environment into "prod1", and the stream dataset name is pyFTSIncrementalIndexer, then the Topic name created on the external Kafka will be companyname-prod1-pyFTSIncrementalIndexer. | System Administration |
INC-199665 | 692760 | Logic added to handle upper/lower case for Content-Type header value | After Integrating REST Service with a HTTP/2 header, pzExecuteRestService was throwing a null pointer exception. This was traced to headers not being treated in a case-insensitive manner: the header contained a lower-case 'content-type' while the system was looking for 'Content-Type' (upper-case). To resolve this, logic has been added to check for both 'content-type' and 'Content-Type' keys. | System Administration |
INC-207236 | 706817 | 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-212753 | 707312 | 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-… . |
System Administration |
User Experience
8.5.6 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-163628 | 660555 | Corrected view generation logic for nested subsections | Performing a save-as of the pyCaseMainInner work- section in the UIKit resulted in an infinite loop in the view generation logic. This was traced to the system recursively generating views from subsections, and has been resolved by updating the logic so a view is only generated for valid py prefixed sections on save of a section. | User Experience |
INC-164620 | 640658 | jQuery variable handling updated for mashup | After upgrade, embedded mashup was not working. The browser console log showed the error "Uncaught TypeError: $ is not a function at pega.web.manager._initGadgets (PegaReg?pyActivity=pzIncludeMashupScripts:69)". The $ function belongs to the jQuery library, and investigation traced this to a difference in variable handling. This has been corrected by updating the referring jQuery to use the variable 'jQuery' instead of '$'. | User Experience |
INC-164775 | 681238 | Web page generation security updated | Cross-site scripting protections have been enhanced around web page generation. | User Experience |
INC-165992 INC-173760 |
657690 658068 |
Table Filter save uses correct harness | After creating a new view for table and then relaunching the portal or switching between tabs, the created views were not visible. Investigation showed that the views were saved under the incorrect pycaseworker harness on initial load, causing them to not be visible when returning from the switch and using the correct pyCWPortalContent harness. This has been resolved with the addition of the new parameter innerHarnessName to get the harness name when creating a personalization instance. | User Experience |
INC-167704 | 671628 | Email timing updated to ensure content captured | Outbound email replies constructed using a pyReply section were intermittently blank if the 'Send' button was clicked immediately after adding text. This was traced to the blur not happening immediately on click of the submit button, and has been resolved by introducing window.blurDelay to ensure the data is captured. The delay time is configurable, and by default is set to 200ms. | User Experience |
INC-167871 INC-198951 |
666295 688271 |
Desktop browser java render error corrected | Attempting to open Clipboard, schedule a report, or perform any activity which generated in a pop-up resulted in a blank screen and browser errors indicating "Uncaught TypeError: (…) is not a function 2. Uncaught TypeError: cannot set property '...' of undefined". This has been resolved by adding a semicolon to the last line of pzpega_desktop_automation_support_js. | User Experience |
INC-170466 | 671852 | Page group property passed correctly for complex questions | When the Pega Survey Smart shape was used to configure a list of complex set of questions using Question rules and invoked using the Survey shape, the reload system was not passing the subscript value for the Page group property pyQuestionnaire. This caused an Invalid Reference exception and displayed an error pop up for the end user. Investigation traced this to a call to RefreshList to load a section holding pyQuestionnaire(Subscript) page content which was in place as part of a legacy fix but which has since been made unnecessary due to infrastructure changes in the DOM utilities. To resolve this, the ComplexQuestionCheckboxTemplate and pzComplexQuestionCheckBoxTemplateRowDetails section rules have been updated to remove the RefreshList action on checkbox. | User Experience |
INC-170918 | 653215 | DateTime property handling revised for future date with daylight savings time | A DateTime property was changing each time the local action refreshed. Investigation showed this was a missed use case related to recent work to correct an issue with a 1 day discrepancy for non-template DateTime. The previous update to use the default timezone when generating markup in non-template for the date property while the datetime property uses the server timezone has been further refined to handle formatting the date time when the year is greater than 2037 and combined with daylight savings time. This will be resolved by setting the correct date before returning the moment object if the year is greater than 2037 for the date time control using display mode as date. | User Experience |
INC-172944 | 662830 | Skin rule circumstancing article added | An article on skin circumstancing best practices has been added to https://collaborate.pega.com to aid in working with this functionality. | User Experience |
INC-176113 | 661470 | Duplicate messages removed from hover over smart info | If a particular mandatory field was not selected and saved, scrolling over any help text bubble in that screen caused the error messages to pop up multiple times. This was an issue with the recreation of error tables on hover over smart info and has been corrected. | User Experience |
INC-177019 | 662708 | Corrected styling for layout group section navigation | When a layout group was added to a section after updating, the group was shifted when the left arrow key was pressed. This was traced to the use of arrow keys for navigation calling the focus() method and causing the scrolling. Although it is recommended to use a Tab Group control in this configuration, the shift issue has been resolved by updating the styling in the layout group. | User Experience |
INC-177104 | 666332 | Resolved-by field reflects queue processor close | When a case was resolved by the queue processor, for example when the SLA ended and a case was automatically Resolved-Withdrawn by the system, the "Resolved by" field was blank. This was caused by the pyOperatorInfo control looking for the system account user data in the application users pool, and has been resolved by updating the control to display the localizable "System" name in this scenario. | User Experience |
INC-178417 | 670111 | Flag reset added for grid with 'Expand When' | A grid using an 'Expand When' condition worked as expected when the condition was true, but once expanded the grid did not collapse if the expand condition was changed to false even if a section/harness refresh was performed. This has been resolved by adding an update which will reset the flag when the result of 'Expand When' is false. | User Experience |
INC-178579 | 657742 | Corrected blue line showing on grid expansion | When a grid configured on the portal had an overlapping case preview, a blue vertical line was displayed on the preview window when expanding a row. This has been resolved by increasing the z-index for the preview panel to cover the underlying grid resize indicator. | User Experience |
INC-178831 | 680983 | 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-179789 | 659310 | Tab focus sequence updated | The keyboard tab sequence was not following a logical order when using the "Application" overlay accessed from the 9 dots in the top left. This has been resolved. | User Experience |
INC-180482 | 677878 | Browser compatibility update for setActivityAction | After update, the Parameter Configuration popup was blank when using Microsoft Internet Explorer. This was traced to security updates that utilized the SafeURL.prototype.setActivityAction containing the startsWith API which is not supported by Internet Explorer. To resolve this, startsWith has been replaced with indexOf for cross-browser compatibility. | User Experience |
INC-181389 | 668676 | Unused class reference removed from CaseActionArea | The rule Work-.pyCaseActionArea in Theme-Cosmos was logging error messages related to "clipboard.InvalidParameterException: Class not defined in dictionary: PegaMKT-Work" when opened in Dev Studio. This was traced to a reference to the section "pyCaseActionArea" which was not present by default in PegaMKT-Work, and has been resolved by recreating the section "pyCaseActionArea" to remove the unused class reference. | User Experience |
INC-181453 | 669283 | Text errors corrected for Pega Knowledge portal editing tools | The Pega Knowledge portal had two errors in the content creation menu: the word "Title" was not translated in the "add a link" pop-up, and there was a typo in the word "paragraph" in the text editor item format drop down menu. These have been corrected. | User Experience |
INC-181890 | 678586 | Corrected missing space in mobile tab header | When layout group (tab) was used with "Icon or value type" set as property or constant, the tab was missing a space between the icon/value and tab name. This has been resolved. | User Experience |
INC-182726 | 677529 | CORS DSS settings corrected for Constellation | After moving to the new HIPPA edition, the developer work area in Constellation appeared as blank under Channel-Portal-Landing Pages. This was traced to a DSS setting issue when using cross-origin resource sharing (CORS), and has been resolved. | User Experience |
INC-182803 | 679723 | SearchKeyword assed to HandleInput allow list | After creating a section and placing a template grid with a button to refresh the section on click, clicking the button generated a SECU0001 alert. This was traced to gridMetadata_(uniqueID).pySearchKeyword not being registered when the property is part of a form data post request, and this has been resolved by adding pySearchKeyword to the allow list in HandleInput.java. | User Experience |
INC-183163 | 676251 | Optimized table search updated | Search functionality that can be enabled from tables after selecting the "Optimize" checkbox was not working correctly. This was traced to a potential issue getting the search parameter passed into the activity the section uses, and has been resolved by updating the system to get the element from pega.ctx.dom when pyFlowActionHTML div does not exist. | User Experience |
INC-183672 | 701867 | Corrected vertical scroll bar for iPad Mashup page | After update, the vertical scroll bar shown on the Web Mashup page in Apple Safari on iPad continued to increase and showed excessive blank space. This was caused by the iframes,section height being considered as the iframe height, and has been resolved by setting the section height as 'auto' in case of mashups. | User Experience |
INC-184104 | 682355 | Cosmos Report Browser list updates during current session | The Cosmos Report Browser list section was using a cached list of reports that did not update to reflect created or deleted reports until after logout and new login. This has been resolved by adding the pzInvalidateRBDataPages activity for harness initialization to update the reports list during the current session. | User Experience |
INC-184109 | 671192 | Handling updated for customDateTime formatting | When a feature date was entered, for example as 2021/07/29 12:00:00 AM, changing any other property caused the time to be off by 4 hours and display as 2021/07/28 08:00:00 PM. Investigation showed this was caused by the parameters being passed in an incorrect order while calling pega.ui.Formatter.formatDateTime() in combination with customTimeZone, and has been resolved. | User Experience |
INC-185563 | 670845 | "Manage content" dialog box tab index is consistent | The tab ordering for the "Manage content" (document upload) dialog box was not consistent. This has been resolved by updating pzModalTemplate to list the submit, cancel, etc, buttons in a consistent order. | User Experience |
INC-185782 | 675528 | Tab Names correctly displayed in Ajax Container | After configuring Action Set with an Ajax container to open a harness and then configuring the same harness name for multiple action items, the first open happened as expected but the following action items were not opening properly and were still pointing to the old tab instead of showing the new tab names. This was traced to actionMetadata.Name not having the correct value, and has been resolved by explicitly updating the tabName value in the "Display" action with the needed actionMetadata.Name. | User Experience |
INC-186072 | 677408 | 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-186466 | 670290 | Style selector workaround added for Internet Explorer 11 | When using UI-Kit 15.0.1 with Microsoft Internet Explorer 11, the responsive behavior of the left navigator was not working as expected, it was not possible to Customize/Style the File Path control completely, and the AutoComplete control and Date Time Controls had a blue border on hover/focus. This was traced to the styles not being correctly selected because they contained the selector "focus-within" which is not supported in this browser. This has been resolved by adding focus-within separately so Internet Explorer will ignore the selector. | User Experience |
INC-187196 | 680747 | Resolved 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. This has been resolved by adding an update which will skip the alert for the pzBuildFilterIcon activity when triggered from pzpega_ui_template_grid_helpers. | User Experience |
INC-187617 INC-189748 |
692542 694738 |
Added API for Pega Call Team websocket reconnect | When a call came in, the operator was not able to pick it up due to the popup only containing a reconnect section. This has been resolved by adding the disconnectAndReconnect API which will be used by Pega Call Team if the websocket reconnect limit exceeds 5. | User Experience |
INC-188001 | 672776 | Security enhanced for SmartTips | Cross-site scripting protections have been updated for SmartTips. | User Experience |
INC-188029 | 691101 | 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-188212 | 674103 | Localization added for FilterUILabel | Filter values were not rendered in French for French users for Case Status in all the grids. This has been resolved by updating the localization values in the pzFilterUiLabel control. | User Experience |
INC-189047 | 674758 | Session timeout adjusted for use with Apple Safari | A configured browser session logout timer was not working with the Apple Safari browser. This was traced to browser-specific handling for self.location.href and has been resolved by adjusting the logic and moving it inside a setTimeout to improve cross-browser compatibility. | User Experience |
INC-189214 | 675958 | Improved backwards compatibility for sendmail notifications | After upgrading from Pega 7 to Pega 8, sendmail notifications were not working for email addresses that included the to-form "Lastname, Firstname'. This was caused by a difference in handling within the activity "@baseclass.SendEmailNotification", and has been resolved by shifting the reliance to InternetAddress.parse for validating and splitting email addresses in order to handle special characters, commas, and semi colons in display name. | User Experience |
INC-189670 | 688142 | Dirty dialog harness handling updated for mobile | A button configured with an "OnClick"->"Cancel" action presented the pyIsDirtyCheckConfirm modal when changes were made, but clicking the "OK" button then closed the modal and the mobile application displayed a blank screen that was only resolved by restarting the application. This has been resolved by ensuring the harnessID has been stamped on the dirty dialog. | User Experience |
INC-189748 | 701456 | Websocket disconnect code logged | An update has been added which will log the websocket disconnect code for additional diagnostic information. | User Experience |
INC-189935 | 684503 | Drag and Drop works as expected on mobile | After opening a case assignment on a mobile device and selecting an option on the correct fields to make the drag and drop section visible, dragging the object vertically the caused the entire page to scroll up and down. Horizontal dragging worked as expected. This has been corrected. | User Experience |
INC-190233 | 675484 | Production check removed for Get Action Details API | After creating an assignment for a case and calling the Get Action Details Applied Assignment API, the name tag for views was not included in the returned JSON. This has been resolved by removing a check for production level. | User Experience |
INC-190708 | 688133 | 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-190901 | 683840 | Corrected datetime placeholder handling | On desktop, date fields values selected were displayed in placeholder color instead of the black color. Date fields placeholders were not displayed in the offline mobile app. Before the refresh section call happened, the date selected color for the datetime input was black since the placeholder class was being removed from the span tag after selecting the date. After the refresh section calls, the Span tag which was generated for date time control was being appended with the placeholder class, which was an incorrect behavior. To resolve this, a check has been added which will only add the placeholder class if the datetime inputvalue is empty. | User Experience |
INC-191674 | 681575 | Cosmos Stakeholders menu updated to prevent loss of work party change | The Stakeholders menu for adding work parties to cases available in Cosmos Utility panel was not saving work party changes as expected when the case was also open for performing assignments. When the assignment was completed, the work parties were reset to the values present when the case was opened. The list of stakeholders is saved as a property in work page. When an assignment is opened there are two threads, and any stakeholder added is then added only in the first thread. Because it was not added in the second thread (acprimary Ajax container - processing assignment) the stakeholder addition was lost due to the second thread overriding the first thread. To resolve this, if an assignment is being processed while trying to open the stakeholders model, an additional modal will be displayed with the following options: - resign from opening stakeholders modal and continue process assignment or, - rresign from processing assignment (all unsaved changes will be discarded) and open stakeholders modal |
User Experience |
INC-191785 | 680929 | Edit Validate Rule works after mobile section collapse | It was possible to collapse a section of the UI on the mobile app and then proceed to the next page without entering valid data. This has been resolved by updating the validation condition to handle the mobile sections edit validate rule correctly. | User Experience |
INC-192075 | 680776 | Required field error message shown for Anypicker control | Certain Anypicker controls set to required were not showing the expected error message "Value cannot be blank" in the UI when the field was submitted as blank. This has been corrected. | User Experience |
INC-192813 | 684734 | Corrected unexpected page refresh | When a value was changed in a section where the source of the section was defined as a property, the page refreshed without any announcement and focus was disrupted. Investigation showed this happened when using paragraph control where an anchor tag was used without any Name attribute. An update has been made to explicitly set the gFocusElement property after the processAdditionalFields activity to resolve this issue. Because the Name attribute is needed to query the particular element from the DOM to focus back, there were also intermittent issues when using the Microsoft Edge browser with Windows OS even after adding Name in the paragraph control link. A setTimeout has been added before focusing the element to resolve this. | User Experience |
INC-193650 | 687902 | Corrected focus for changing optimized table density | After selecting an option on the density filter button inside of an optimized table, the focus was set to the top of the browser rather than remaining inside the table layout. This has been resolved. | User Experience |
INC-194239 | 685734 | JAWS reads characters limits in grid text area | A text area in a grid with a character limit was not reading the maximum characters and remaining characters when using JAWS. This has been resolved by adding the necessary aria attributes to the non-template text area control. | User Experience |
INC-194408 | 686451 | Resolved security error for new portal tab with BAC | After configuring Show-harness in a popup window, a 403 unauthenticated error was seen on the activity pzTransformandRun even though the activity was registered. This has been resolved by ensuring the proper portal name is passed to new tabs when BAC is used. | User Experience |
INC-194446 | 691353 | 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-195321 | 684970 | Check added for readonly header control | After configuring an optimized grid and adding a checkbox control in the header with editable options, when the control in corresponding column was configured as Auto, the checkbox in the header was rendered as read-only. When the control in the corresponding column was configured as "Read-only always" or displayText control was used, the checkbox was rendered as editable control. This was traced to a missing check for pyEditOptions = "Read-only", and has ben resolved. | User Experience |
INC-195581 | 691841 | Control menu code minified | Minification has been turned on for control menus. | User Experience |
INC-195583 | 684839 | Flow action modal pop-up closes after submit | On clicking Submit button on the modal window, the post action was successfully completed but the buttons froze and the modal window did not close. This was traced to a missing condition in the if loop to handle the needed flow action logic, and has been corrected. | User Experience |
INC-195683 | 687952 | Security update for MashUp | Cross site scripting protections have been updated for the LoadMashupPage activity and RedirectTo parameter. | User Experience |
INC-196079 | 694397 | Repaired shortcut key use in Flow Action default buttons | After update, the shortcuts configured on flow action buttons stopped working. The previous version displayed the labels "Save" and "Cancel" on the portal and it was possible to use hotkeys to press the button. The updated system displayed "Sa&ve" and "Cance&l" and the shortcut did not work. This was traced to the encoding performed by the CrossScriptingFilter API, and has been resolved by ensuring the correct text value is retained and displayed for use with the hotkeys. | User Experience |
INC-197410 | 690217 | Handling added for invalid numeric range | When filtering the range in number column with value as “1000000” , the validation message appeared as "1000000 : This results in an invalid numeric range". This has been resolved with an update to use Data-value to get the non-formatted value for decimal. | User Experience |
INC-197481 | 695583 | Accessibility improved for blank field errors in non-auto generated controls | When using non-auto generated controls, leaving an edit field blank causes an error message informing that the value cannot be blank. An accessibility issue was seen where this error text was not part of the field label or description, preventing it from being announced by screen readers (NVDA or JAWS) when focus is on the field. This has been corrected by adding aria-describedby in non-template textarea. | User Experience |
INC-198021 | 686631 | Corrected blank areas on maximized view | A blank section was displayed when maximizing the reply screen. Investigation showed that when the editor was inside a positioned container with overflow hidden and the editor had a scrollbar with its body height greater than the document, the scrollIntoView would scroll to grey spaces which were originally hidden by overflow. This has been resolved by commenting out scrollintoview, since it is not necessary and scroll position/cursor will be retained without it. | User Experience |
INC-198033 | 688688 | Updated ctx.recordId as variable handling | Attempting to create a case using the Microsoft Internet Explorer 11 browser failed and the browser console log recorded the error "Caught exception: TypeError: Unable to get property 'split' of undefined or null reference". This has been resolved by updating the handling for passing the ctx.recordId as variable. | User Experience |
INC-198316 | 699313 | Resolved error in PortalNavigation save | An error indicating Rule-UI-Components were either missing or could not be found appeared while using revalidate and save for a PortalNavigation section, though the update completed and worked as expected. This has been resolved by adding validation handling for a section when given a property as the class for the icon source. | User Experience |
INC-198326 | 690316 | Tab key menu navigation updated | Using the tab key to navigate links in the left menu would intermittently skip links or not appear to advance. This was an unintended side effect of work done to use the tab key to move out of the portal menu and to the next focusable element, and has been resolved by modifying the re-setting tabindex for left navigation so it will anchor on the first element in the menu list for tab traversal. | User Experience |
INC-198958 | 691540 | Scroll Bar displayed for lengthy sub menu | The scroll bar on the main CaseManager/Case Worker portals menu was not displayed on the second mouse hover. This was traced to an intermittent issue where max-height was not being calculated correctly if there was a lengthy sub-menu, and has been resolved by ensuring the correct positioning of the menu. | User Experience |
INC-199043 | 697067 | Preview link aligned under item | The preview option was not showing below the link control configured to open the case, but instead was displayed elsewhere on the page. This was traced to changes made in Google Chrome v.93+, and has been corrected by changing the perspective to none instead of 0 so the link is displayed in the expected location. | User Experience |
INC-199558 | 693301 | Updated calling activities from refresh to use invokeActivity | The Refresh DX API was inconsistently throwing an index out of bound exception when using a checkbox which invokeed an activity on check to save and commit the case. This has been addressed by updating calling activities from refresh to use invokeActivity, and a try/catch has been added to capture exceptions and add a page message if the activity is not found or has an error. | User Experience |
INC-199625 | 690721 | Handling added for dropdown with duplicate option values | When load behavior used "After screen renders" and dropdown options had duplicate values, a console error was observed and the UI became frozen. This has been resolved by adding handling for scenarios where the dropdown has duplicate option values. | User Experience |
INC-201739 | 694504 | Switch from Pega base64 utility to java.util.Base64.getEncoder | An on-premises Web Application Firewall (WAF) was interpreting the characters "%0a" in the Pega auto-generated URL as an "HTTP Response Splitting" attack. As a result communications were intercepted and a 403-error screen was shown. In addition, the characters %250A were interpreted as LF (line feed) or \n in the refreshFor hash generation. To resolve this, an update has been made to use java.util.Base64.getEncoder().encodeToString instead of the Pega base64 utility. | User Experience |
INC-205269 | 703387 | Updated key even handling for lazyDeferLoad | Upon rendering, the timeline was very responsive for few seconds. After scrolling or sliding the timeline, it slowed and the top and bottom events were not aligning properly. In addition, pressing enter on the expandable section with the timeline control did not render any events. This was traced to pzpega_ui_doc_lazyDeferLoad having a click handler which would successfully load the data but missing an event handler for the enter key to load the timeline data on expand. This has been resolved by adding an enter event for defer load container to allow the expand and collapse of container header. | User Experience |
INC-205517 | 705993 | 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-206483 | 707093 | 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-206488 | 698400 | DOM Purifier updated to allow new tags | Snippets were visible after being added and published, but after editing the same content ID it was converted to a text file. This was traced to the DOM Purifier plugin removing tags which were not in default list, and has been resolved by adding the ADD_TAGS option in the DOM purifier to accept tags. | User Experience |
INC-207631 | 701549 | 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-208499 | 702516 | 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-208848 | 703875 | 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 | 706041 | 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-210760 | 708530 | 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 |