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.)
For information on downloading this patch, see Pega 8.6.4 - Patch Release Available.
Low-code Application Development
Case Management
8.6.4 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-183650 | 678312 | 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-184040 | 688255 | 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-187350 | 703198 | UUID added to iOS direct photo upload to differentiate filename | When "Content Storage" with the option "Store in repository" was enabled on the "Integration" tab in the Application definition, it was not possible to add more that two attachments to a case with an iPhone when directly capturing a photo through the camera app instead of uploading the photo as an attachment using the gallery. When using the default "Store in Pega database", the additional photos could be uploaded directly from an iOS camera without any errors. Investigation showed that when "Store in repository" was enabled, a file name conflict check was done in the repository. Because the iOS camera app saves/uploads every image as "image.jpg", this caused the error when checking for a filename conflict in the repository. This has been resolved by adding code to append a UUID to the attachname when the device is mobile and browser is Apple Safari. | Case Management |
INC-192673 | 689554 | Tab highlighting updated | Not all elements were indicated with yellow highlighting when tabbing through the screen. This has been resolved. | Case Management |
INC-194180 | 704638 | GetChildcases handling updated for large numbers of cases | When a very high number of child cases being processed contained a wait shape that was dependent on the movement of a parent case, some of the cases were moved to the next step of the flow automatically while others required a manual command to ResumeFlow. In extreme cases where many child cases were waiting, a node crash could occur. This was traced to the pzGetChildcases report having a maximum value of 500 lines, and has been resolved by increasing the maximum number of rows to retrieve to 9999 in the Data Access Tab of the pzGetChildCases report definition. In addition, the pxCheckFlowDependencies activity has been modified to perform with a higher number of cases, and DSS(MaxRecords) logic has been added to split the child cases into multiple queue items for each access group to decrease load on each thread process. | Case Management |
INC-198765 | 696680 | Public URL will be appended with "/" if it is not present | When using the Worklink Correspondence Fragment rule with authentication service type "prweb/PRAuth/sso", the returned URL did not contain the needed "/" at the end of public link. The "/" was present when using the legacy authentication service "prweb/sso". This has been resolved by updating the system to include a "/" at the end of a public URL if one is not present. | Case Management |
INC-200247 | 701954 | WorkAttachmentIcon activity correctly registered | The pyWorkAttachmentIcon control used to download attachments was generating a SECU0019 warning. This was traced to pzAppStorageOkToAttachFile not being correctly registered, and has been resolved. | Case Management |
INC-200936 | 703343 | 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-201723 | 701068 | Audit message displays correct parameter value | The Audit message showed "{1}" instead of displaying the parameter value dynamically. This was traced to the pyInstructions field value which contained the message "Please approve or reject this {1}", and has been resolved by updating the pzInstructionsForApproval rule so the correct value is displayed. | Case Management |
INC-203595 | 700594 | Updated retainLock for DoClose activity | After sending an external email notification from a case, attempting to use the "close" button resulted in an access denied error. This was traced to a missed use case for recent security improvements which resulted in not setting the required parameter retainLock for the DoClose activity, and has been resolved. | Case Management |
INC-204676 | 699113 | 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 | 706369 | Check added to prevent duplicate approval by single agent | When using a cascading Approvals process supported both by a web access button or by responding via email, a single agent could use both methods and advance a case an additional step as if they were the next approval level. This was due to the system only checking the pzInsKey when processing the approval while the assignment key will be the same for the cascading approvals assignments. This has been resolved by introducing a datetime check to validate if the email approval assignment creation datetime and the one in the database have same value; if yes the approval process will proceed and if not it will exit. | Case Management |
INC-207320 | 701082 | Email Approver shown in audit | Email Approver activity was not being shown in Audit. This was traced to the queue instance primary page missing the necessary pyInboundEmail page property from pyCreateAndManageWorkFromEmail, and has been resolved by updating the listener activity to copy the needed value to a property called pyEmailFrom which will be used to record the events in the audit. | Case Management |
INC-207996 | 709663 | Check added for parent case dependency if deferred-save is used | After updating the status of a parent case to "Pending-ChildCaseDependency", the wait shape for the child case that should have been triggered by the status did not work and the child case remained on hold. This was a missed use case for the pxCheckFlowDependencies activity where defer-save operations on Index-AssignDeps class was not considered, and may happen when the Queue Processor is evaluating the dependencies while instances to Index-AssignDeps are not committed yet. To resolve this, code has been added to check the entry of the parent case dependency in deferred-save if its not present in Index-AssignmentDeps table. | Case Management |
INC-210680 | 712072 | Updated logic for setting param.PrimaryPage in transfer | TransferAssignment was failing intermittently when doing routing either by background processing or manual transfer. Investigation showed this was caused by a null param.PrimaryPage value which resulted in a NullStepPage exception. This has been resolved by adding a Property-Set method just before calling the activity pxTransferAssignment. In addition, the "Require authentication to run" check box in the pxTransferAssignment activity has been set to on. | Case Management |
INC-212896 | 711188 | Resume Flow will print Flow Action Label in audit history | After calling Resume Flow for processing the assignments, when the Assignment was processed the Flow Action Name was printed on the Audit History instead of Flow Action Label. Investigation showed that in the Complete assignment activity, there was no code in the 'if' loop to set the value of actionLabel. If the value was null, the property set in the next step sets actionLabel to flowActionID and the audit history result is FlowAction ID instead of FlowAction Label. To resolve this, logic has been added in the CompleteAssignment Activity step 5 to set ActionLabel with Flow Action Label. | Case Management |
Cloud Services
8.6.4 Patch Resolved Issues for Cloud Services
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-202677 | 698990 | 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-205181 | 697802 | Warnings pull from report definition page | When a report definition filter was used in the "Class instances to include" section of the Product rule, severe warnings appeared noting "Report definition filter performance issues for LookupDataMigration : Using a custom HTML control to format a column may result in poor performance displaying query results. Consider using auto-generated HTML controls". However, the report definition used, LookupDataMigration, has no Custom HTML control in the latest version of the rule, and the "CheckForWarnings" rule for the product was running a report definition in the "Index-Warning" class which has the warnings for all the versions of the rule. This was due to warnings being displayed in the product for the report definition filter without applying rule resolution for report definition, resulting in warnings from all report definition version rules from a ruleset given a report definition name. This has been resolved by adding an update which will use Obj-Open to read the warnings from report definition page instead of looking up for warnings from Index-Warnings table. | Cloud Services |
INC-205453 | 706568 | Pega Keystore supported for hotfix signature verification | In order to support custom trust managers which require an alternate method for supplying the root certificate via a platform trust store, an enhancement has been added to allow Pega Keystore to be used as a hotfix verification source. Detailed information on this can be found in https://docs.pega.com/keeping-current-pega/87/verifying-hotfix-authenti…; | Cloud Services |
INC-208516 | 705100 | Patchdate values made unique | The hotfix manager was incorrectly indicating that a previous hotfix was not installed or was partially installed and should be reinstated. This scenario was created during security updates where the missing/incomplete hotfix had been deliberately deleted from the database, and has been resolved by adding an update which will force patchdate to be unique when adding duplicate code resources during tests. | Cloud Services |
INC-209435 | 707375 | Column population error downgraded to warning | A Column Population job run after deployment for some classes was logging the error "Class does not exist", but no property was identified and no impact to the system was seen. This error has been downgraded to a warning. | Cloud Services |
INC-211299 | 706318 | Handling updated for rule export errors | After exporting the rules from E2E, the import to the production mirror failed. Investigation showed that the process encountered a time out from an Adaptive Decision Manager table when exporting the product rule, resulting in the product file not containing the mandatory jar files. This has been resolved by updating the handling of errors during export, and suppressing auto-chaining when generating app JSON. | Cloud Services |
Conversational Channels
8.6.4 Patch Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-199790 | 700646 | GetAllEmailWork temp page renamed to avoid conflict | The default Email manager portal was not displaying new email triage cases. Investigation showed that because the GetAllEmailWork and CaseBreadCrumbPopulate activities were using a common name for the clipboard page "TempPage", when CaseBreadCrumbPopulate removed the TempPage clipboard page as one of its steps a null pointer exception occurred for GetAllEmailWork. To resolve this, an update has been made to rename "TempPage" to "TempPageET" for GetAllEmailWork so the names will not conflict. | Conversational Channels |
INC-211417 | 711611 | Updated URL construction for inline images for better performance | System slowness was seen, and inline images were not getting displayed when the case was opened. This has been resolved by modifying pyExtractHtmlFromAttachment to ensure the image source URL is built in a consistent way whether or not there is a cache to call from. | Conversational Channels |
INC-212549 | 706074 | HTML attachments conditionally shown in email listener cases | When Rich text/html (non-plain text) emails were ingested in email, the original mail was not getting added to the case. Investigation showed that the pzCreateTriageWork activity had an explicit delete step to remove any attachment that started with 'email-content'. Since the HTML attachment name starts with 'email-content', it was deleted in above activity. This has been resolved by adding an update to conditionally show email-content.html. | Conversational Channels |
INC-214294 | 710826 | PopulateEmailClientWorkFilter correctly resolves field value | The first item in the Email manager queue selection dropdown was 'DefaultWorklist', instead of 'Default worklist' or other formatted text. Investigation showed the New Page was not created for the temp results in pzPopulateEmailClientWorkFilter Activity, preventing it from resolving the customized/available field values, and this has been resolved. | Conversational Channels |
INC-214367 INC-214836 |
708410 709759 |
Handling added for infinite loop in GetEmailConversations | An infinite loop issue where a clipboard page was repeatedly added to a page list in pxGetEmailConversations was causing an out of memory condition that resulted in unavailable nodes. This has been resolved by adding boundary conditions to avoid a loop, and a fail-safe mechanism to exit an infinite loop if one does occur. | Conversational Channels |
Data Integration
8.6.4 Patch Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-184212 | 677286 | 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-195586 INC-210771 |
698861 708811 |
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-197479 INC-202183 INC-212729 |
695025 699683 |
ClusterAndDBCleaner updated to with with Oracle query limits | The pzClusterAndDBCleaner job scheduler was not able to cleanup data in pr_op_data session table due to the delete query formed to clean up this table throwing "ora-01795 maximum number of expressions in a list is 1000 oracle 19c" exception. This has been resolved by splitting requestor IDs into batches of 1000. | Data Integration |
INC-197964 | 707875 | Engine updated to default to hard references in cache | A scheduled campaign executing at midnight was failing with a null pointer error message. Rerunning the same campaign during the day did not encounter any issues. Investigation showed there was a race condition that occurred under heavy load and parallel executions which caused soft references to be garbage collected while a thread was accessing the same soft references. This has been resolved by updating the following DSS so the system will default to using hard references: Ruleset: Pega-Engine Purpose: prconfig/cache/enablesoftreferences/default Value: false |
Data Integration |
INC-199076 | 703301 | Revalidate of class rules successful after major version skimming | When performing a major ruleset version skim and revalidating all rules, most class rules were failing during the revalidation. This was a gap in how Ruleset List and Major Version Skim work together. When calling getRuleSetPrerequisites(“rulesetA:01-01-01”), the API uses uses the current application context to return a ruleset list from an application which owns rulesetA and its compatible version, but if no owning application was found from the current application context, a list of rulesetA and PegaRULES:XX-XX-XX was returned. This caused a conflict between what the system was trying to validate and the ruleset versions returned. To resolve this, an update has been made which will exclude the version number for this comparison if no owning application is found. | Data Integration |
INC-199192 | 689038 | 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-199341 | 694714 | 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-204998 INC-211599 |
705630 708542 |
Data page definition reload made more robust | The data page was intermittently being removed from the cache. This was traced to the use of a thread from ThreadContainer to reload the data page definition: a null thread could be returned if the request came from a master agent, which would then cause the definition reload to fail. This has been resolved by updating the system to use the current thread in context to reload the data page definition. | Data Integration |
INC-207009 | 701554 | Explicit expiration added to avoid searching for expired requestor | A login page was taking long time to display. This was traced to pre-authentication cookie in the browser pointing to the requestor object on the server which triggered a lookup across the entire cluster of servers to find the requestor. This was not only taking time, but the attempt to find the requestor in the cluster would always fail to return results as the requestor was not passivated but instead removed after two minutes. To resolve this, an expiration has been added to the Pega-RULES cookie when the value is pre-authenticated. The time to expire is derived based on the short-lived requestor time for unauthenticated requestors + 1 minute, and will be 2 minutes by default. This will avoid searching for a requestor across all nodes in cluster when the requestor has already timed out and been destroyed by server. | Data Integration |
INC-208207 | 702799 | GET API will consider case locking mechanism | After update, performing a GET call on an assignment was unexpectedly locking the case. This was traced to a difference in handling: Pega 8.3 performed an Obj-Open-By-Handle of the workobject without acquiring a lock, while Pega 8.6 calls Assign-.acquireWorkObject which acquires a lock on the work object thereby affecting the other requestors from accessing the case. This has been resolved by enabling ConsiderLockingMode to independently determine the locking mechanism set for the case type. | Data Integration |
INC-208366 INC-208516 INC-208556 INC-210059 |
701894 706889 700979 702174 |
Log4j file security vulnerability issue addressed | A zero-day vulnerability was identified in the Apache Log4j logging software which could potentially allow malicious actors to take control of organizational networks. Pega has immediately and thoroughly addressed this issue. More information can be found at https://docs.pega.com/security-advisory/security-advisory-apache-log4j-… . |
Data Integration |
INC-208424 | 704598 | Custom header character encoding for Subject added | Case correspondence that contained a Subject with accent characters such as "Invitation à être" was being rejected by MailJet on the basis of encoding issues on the "Thread-Topic" when using custom headers. The error "BAD HEADER SECTION, Non-encoded non-ASCII data (and not UTF-8)" was generated. This was traced to the Send Email Smart Shape handling when using custom headers, and has been resolved by encoding the Subject before appending it to the Thread-topic header while adding custom headers. | Data Integration |
INC-211101 | 709878 | ClipboardPageImpl handling updated for virtual list variable mRepresentativeRow | A Concurrent Modification exception was seen after update. This was traced to the ClipboardPageImpl use of a virtual list variable "mRepresentativeRow" in the "InMemoryStringTable" class's method where it was iterating the "InMemoryStringTable" while the same list("InMemoryStringTable") was being modified by another thread at the same time. This has been resolved by modifying the Java file InMemoryStringTable to create a copy of the variable mRepresentativeRow to make sure that while iterating over it, the application will iterate only on a copied variable and not the original variable to prevent the concurrent modification exception. | Data Integration |
INC-211178 | 704593 | Decimal parameters retain null value instead of being set to 0 | When mapping any data in 8.6+, if the source is a decimal property rule and the target is a parameter defined as decimal, the decimal parameter's value will be 0 if the source property is null. This was a behavior change from previous versions of Pega where the target parameter would be null. This has been resolved by changing the code generation for the read operation on the parameter decimal type assignment to use resolveToString() instead of calling resolveToBigDecimal() so a null value is retained.. | Data Integration |
INC-211292 | 705886 | Updated handling for last_access to improve backwards compatibility | After update from Pega 8.3 to Pega 8.6, many errors were seen in the logs regarding the call of the Pega API /api/v1/nodes/all/requestors. In 8.3, the API was responding with the field last_access populated properly, but this field was blank in the new version. This was an unintended consequence of work done to resolve inconsistencies with the date format in Admin Studio, and has been resolved. | Data Integration |
INC-211480 | 712419 | Handling added updates involving Oracle descending column | The build was failing when attempting to update to Pega 8.6, and an error indicating an issue with Oracle columns was generated. Investigation showed that when a column changed that belonged to an index which had a 'desc' column (even if the changed column was not specified as desc), an Oracle restriction was triggered. This occurred with any column size increase if the column participated in an index containing a descending column or a function index. This has been resolved by adding a step to drop the index before altering the column if a Descending index is involved, and to catch the case where the resized index is part of an index that has a descending column but is not necessarily a descending column itself. | Data Integration |
INC-212900 | 711001 | ADLS/File listener support added | Azure Data Lake Storage type support has been added for file listener usecases. | Data Integration |
INC-213308 | 712075 | Fallback added for missing fileName in MultipartHTTPResponse | Given a multipart/form-data response with multiple attachments, when there was no explicit fileName header provided for a body part, the engine skipped processing the part and no data was present on pyRequestAttachmentPage. This has been resolved by adding a fallback in HTTPClientUtils#handleMultipartHTTPResponse() so that if no fileName is present, the 'name' parameter of the Content-Disposition header field will be used. | Data Integration |
INC-213502 | 711797 | Updated context handling for DxAPI Perform Assignment lock | The DxAPI Perform Assignment was generating the error "ValidationMessage:Unable to unlock GROUP-DISPUTES-WORK". This has been resolved by adding an update to ensure proper context is set for getting an additional lock handle. | Data Integration |
INC-213808 | 710298 | Stability enhancement to improve platform reliability and resiliency | During a NBA campaign run, the data flow partition became stuck in the in-progress status and the campaign run did not complete. NoClassDefFoundException errors were logged, indicating a connectivity issue with the database after which the node was not able to recover successfully. This has been resolved by adding an enhancement to better handle situations where a database outage is detected. | Data Integration |
Decision Management
8.6.4 Patch Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-179727 | 704545 | Modified batch requestor handling to ensure cleanup | A large buildup of batch requestors was seen, and restarting the node did not clear it. Investigation showed that in the case of one class reading a DSS value, a Pega requestor was being created when it was unable to retrieve any Pega context, and this requestor was not cleaned up afterwards. To resolve this, an update has been made to the way the requestor and Pega context is being created along with ensuring it will be cleaned up properly after use. | Decision Management |
INC-180246 | 664947 | Support for apostrophe added to keyword tokenization | A keyword containing an apostrophe was not detected properly in Text extraction model. This has been resolved by updating the annotator used in the tokenization. | Decision Management |
INC-192826 | 685797 | 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-194382 | 697615 | ADM Model management page updates | When accessing the ADM model management landing page in an environment with a large number of nodes, an "UnresponsiveNodeException" error was thrown from the pylaststrategyresults activity by various nodes on different days. Investigation showed the ADM factory table was truncated, leading to inconsistent ADM data in the Last Responses Section. This has been resolved, and the ADM model management page has been made more resilient to node failures. | Decision Management |
INC-196561 | 688846 | Natural Language Processing (NLP) topic categorization working consistently for German | A few German words were not recognized by the Natural Language Processing (NLP) topic categorization if they were given in capital letters. This was traced to upper case keywords being lowercased during model creation time, but not during prediction time. To resolve this, all words will be lower-cased before the model analyzes the text. | Decision Management |
INC-206109 | 706238 | 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-207357 | 703348 | 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-208709 | 710808 | Added handling for new requestor in previously authenticated Voice AI group | When attempting to pilot the new Voice AI feature set provided recently in the Customer Service framework, the error "You lack access required to execute RULE-OBJ-ACTIVITY WORK-CHANNEL-INTERACTION-VOICEAI TRANSCRIPTDISPATCHER" was logged. The same was seen for the ConnectToAudioProcessor activity. Investigation showed this could happen when a new requestor that's not authenticated yet gets created with currentAccessGroup already equal to the desired access group, causing the authentication step to be skipped. This has been resolved with an update to address the dataflow thread authentication edge case where the default requestor access group is equal to the dataflow run's access group. | Decision Management |
INC-209294 | 702711 | Support added for variable queue processor partition count | An activity called "pxAlterStreamPartitionsInternal" that is defined on Data-Decision-Streamservice- class has been added to support scaling up and scaling down stream service partitions as needed. To allow dataflow runs to automatically detect these changes and redistribute partitions accordingly, a DSS has been added: Owning Ruleset: Pega-DecisionEngine , Purpose: dataflow/run/partitions/changeDetectionFrequency , Value: 120 (default value in seconds) The dynamic system setting may be changed to -1 to disable the automatic partition changes feature, but it is recommended to leave the value set to its configured default. The following articles contain information for executing the activity: https://docs.pega.com/decision-management/87/sizing-queue-processors-an… https://docs.pega.com/decision-management/87/changing-default-number-pa… Note: The "pxAlterStreamPartitionsInternal" activity is mentioned as "pxAlterStreamPartitions" in the above article, but the steps to execute the activity are the same. |
Decision Management |
INC-210126 | 708782 | Timeout added for Cassandra writes | When using Customer Decision Hub with external C* deployment, attempting to stop a data flow run which was reporting stale threads for some partitions resulted in some of the partitions continuing to run while threads were waiting on the Cassandra save operation. This has been resolved by adding configuration for a timeout when waiting for the results of the save operation, with a default of 300 seconds. | Decision Management |
INC-210639 | 705347 | Query limit removed from Scenario Planner | Scenario Planner was not correctly finding or opening some Audience Simulations. Investigation showed that when there are 500+ completed data flows, the system was failing to load next 500 records from pegadata.pr_data_decision_ddf_runtime. This has been resolved by removing the query limits, and additional debug logging has been added. | Decision Management |
INC-211251 | 706539 | Handling added for Model level Data type empty values | After update, the Email Intelligent Virtual Assistant™ (IVA) was not able find the proper response for the real-time incoming emails but was able to find the topic and response when running it from Dev Studio and Prediction Studio. This was due to an edge case where the model datatype page list property was present on the text analyzer rule and a page was present in it, but the property pyName which actually holds the data type (body, attachment, all) was not present in the page. This has been resolved by updating the system to add 'all' as the datatype if the pyName is blank (null or empty). | Decision Management |
INC-211349 | 709605 | Service API called directly in CDH simulation | Running a simulation from the Customer Decision Hub with strategy and dataflow that used customer data resulted in with either a failed run or blank explain detail reports. Investigation showed synchronization was not triggered due to the pxVBDAvailable call returning false, and this has been resolved by directly calling the service API without additional checks. | Decision Management |
INC-212169 INC-212754 |
710513 708688 |
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-… . |
Decision Management |
INC-212704 | 707115 | Explicit lock release added for Cassandra threads | Customer Decision Hub was not responding for realtime request REST service calls, and thread dumps during start up were showing all HTTP request threads were stuck in CassandraSessionCache.getSession. If an error is thrown while invalidating an old Cassandra session, the system may fail to unlock the write lock. This results in subsequent threads being blocked on the session cache's ReadWriteLock when they attempt to retrieve the session from the session cache. To resolve this, an update has been made to ensure that invalidate session is wrapped in a finally block that releases the write lock and log any thrown errors. | Decision Management |
INC-213176 | 709974 | Data flow stability improvements | All nodes were showing as active and running in the cluster, including background, stream, web nodes, but the queue processor would not start. Log entries indicated "IllegalStateException: Invalid run transition found [PENDING_NODES->COMPLETED] on run [DF_OutboundPreProcessing_SMS] by [EventDescription{originator=CheckNodeAvailabilityTask, reason=Restoring previous state." Due to this, all dataflows were moved to queued state. As soon as the corrupted dataflow was deleted the other dataflows were resumed. To resolve this, data flow stability improvements have been added along with better handling of runs in Queued state. | Decision Management |
INC-213189 | 707344 | 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-213262 INC-216894 |
709457 712241 |
Refresh added to limit commit log partition size | Issues were seen on DDS nodes, including slowness and randomly dropping out and being replaced by new nodes. WARN messages in Cassandra logs reported issues relating to a large partition size of adm_response_commit_log_date_tiered table. Investigation showed the large partition size (over 10GB) was causing frequent C* query timeouts due to scanning a large number of tombstones, resulting in node terminations. This has been resolved with an update which will limit the commit log partition size by refreshing the NID every set interval. | Decision Management |
INC-213945 | 709365 | Additional logging and executor work for Adaptive Decision Manager | The Adaptive Decision Manager Pulse operation stopped running on some of the ADM nodes, causing an impact on the model update. To address this, some additional protections have been added for pulse operations running in a scheduled executor, and ERROR logging has been enabled. | Decision Management |
Low-code Application Development
8.6.4 Patch Resolved Issues for Low-code App Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-177312 | 692111 | 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-194330 | 708710 | Added special character handling for DecisionTable column-label | The label of a decision-table column was being appended to the original decision-table return-value. The column label and comparator were handled differently for columns containing special characters (+, -, *,...), causing the data after the special character to be trimmed and appended to the row output value. This has been resolved by adding handling for special characters so the output and the label are rendered properly. | Low-code app development |
INC-195790 | 687810 | Updated recording test scenario for attachments | Recording scenario tests for a case type was not working as expected when attaching a document to a case as part of case flow. This has been resolved as part of the updates made for Pega Test Automation Kit (PTAK) v1.6. | Low-code app development |
INC-195793 | 697921 | 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-200416 | 699863 | 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-200802 | 699967 | 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. | Low-code app development |
INC-206782 | 701142 | BAC updated for delegated circumstanced decision table rule | An unregistered request error was encountered while launching the DelegatedRulesPage harness when pyBlockUnregisteredRequests >=1. This was traced to a delegated circumstanced decision table rule which caused a request error for the @baseclass.pzLookupCircumList activity, and has been resolved by updating the BAC handling for this activity. | Low-code app development |
INC-207210 | 703701 | Empty check added to OpenRuleAdvanced | A blank screen was displayed when attempting to open a requirement set rule in Dev Studio. This was a missed use case while updating the OpenRuleAdvanced control to handle BAC compatibility, and has been resolved by adding an empty check in addition to the existing null check along with an 'if' condition to check for pyActivity input. | Low-code app development |
INC-209426 | 706802 | GetFunctionsForLibrary retrieves 10,000 rows | Some functions were missing from the expression builder browser and search results when pyShowInternalLibrary was set to true for including internal functions in the results. To resolve this, the default value for "Maximum number of rows to retrieve" in pzGetFunctionsForLibrary has been increased to 10,000. | Low-code app development |
INC-213625 | 712297 | Corrected null values being set to 0 in GenerateExcel | The pxGenerateExcelFile activity was loading $0.00 in place of a null value for decimal columns. This has been resolved by updating the logic for GenerateExcel.java to skip double properties default value for non-existent clipboard props and extend the same fix to the integer class. Safety checks have been added before setting cell type to check if property exists, and handling has been added for a specific exception instead of generic exception for both decimal and integer use cases. | Low-code app development |
Mobile
8.6.4 Patch Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-192649 INC-195601 |
706134 685771 |
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-195519 | 698498 | 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-201633 | 703799 | Reload icon disappears when refresh is ready | After updating the Field Service Mobile App from Pega 8.3 to Pega 8.6, the wait icon continued to be visible even after the refresh was completed. This has been resolved. | Mobile |
INC-206049 | 703468 | 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 |
INC-210526 | 705640 | Mobile supports icons for file attachment | Attaching a file to a case in a mobile browser generated a script error popup. This has been resolved with code to support using icons to attach files on mobile. | Mobile |
INC-211208 | 709646 | Added fallback handling for missing Google Maps marker value | The Google maps location position control was not showing the marker if the marker source was a Property. No issues were seen if a data page was used as the marker source. This was due to the pega.util.Dom.getElementsByName(markerPropertyHandle) being returned as null. Since the property value was not found in DOM, the latitude and longitude values were not resolved for the marker object. This has been resolved by relying on the markerPropertyValue as a fallback in case the property bound to the marker is not part of the DOM. | Mobile |
INC-214160 | 709281 | Access group context handling updated for Mobile | After update, a new mobile application for a specific access group was not applying the correct access group for an operator with multiple access groups but instead used the default access group. This has been resolved by moving the logic responsible for switching access groups for Pega Mobile Client from the Authorization.getInitialAccessGroup class to the SessionAccessgroupInfo class to ensure Authorization/SessionAuthorization gets the information about the default access group for the current context. | Mobile |
Project Delivery
8.6.4 Patch Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-207693 | 700541 | Documentation updated for large attachments permissions error | When using the Microsoft Graph API to send an email which contained an individual attachment 3MB or larger, the error "The token contains no permissions, or permissions can not be understood" was generated. Because the Microsoft Graph API has an attachment size limitation, the Microsoft Graph API send email flow will switch to using the Office 365 Exchange Online API when that size limit is hit. The documentation for this has been updated to explicitly reflect that Office 365 Exchange Online API permissions must be enabled in the Azure Active directory app settings. | Project Delivery |
Reporting
8.6.4 Patch Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-183960 | 675870 | Condition check added to trigger search update | Following work done to update deleting attachments for cases created through an email bot, search indexing was not updating automatically and a manual re-index was needed to allow the global search to work. This has been resolved with the addition of a condition check which will update the case when there is a delete operation done on the link page. | Reporting |
INC-198725 | 707482 | Elasticsearch will split queries to avoid URL length limits | Elastic Search Functionality was not working and showed the status as Offline. Investigation showed that when an external Elasticsearch setup had an index prefix length = 200 and a large number of dedicated indexes, the error "too_long_frame_exception, reason: An HTTP line is larger than 4096 bytes" was generated. In this case, the system was working with approximately 87 dedicated indexes and the name for each of them was sent over the URL, resulting in this error message. This has been resolved by updating the system to split queries so as to not exceed the HTTP line limit in Elasticsearch. | Reporting |
INC-200973 | 699266 | 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-201625 INC-202447 INC-205075 |
698655 698659 698741 |
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 | 699082 | 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-209399 | 708570 | Handling added for indexing items exceeding Kibana max size | Indexing cases was generating errors from Kibana indicating "Failed to index document: java.lang.IllegalArgumentException: Document contains at least one immense term in field="_m_MailBody" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped." To resolve this, if an embedded property exceeds the max length defined by Kibana, it will be truncated at 32k bytes in order to allow indexing to proceed. | Reporting |
INC-211726 | 705071 | 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. In addition, an agent has been added to support publishing the model metrics. | Reporting |
Security
8.6.4 Patch Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-164432 | 696294 | 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-182827 | 691528 | URL security updated | Security has been updated for URL tampering defense and Rule Security Mode. | Security |
INC-209298 | 704141 | 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 |
INC-211426 | 706061 | UI and code changes to support Client Assertion in Open ID Connect | In order to support private_key_jwt, an enhancement has been added which will pass the “Client ID” and “Client assertion” (in the form of a signed JWT) as part of the authorization code grant flow for an IDP-initiated SSO. The Authorization Server will then authenticate Pega (the client) to verify the signature and payload of assertion by retrieving the public key via Pega’s JWKS endpoint. | Security |
INC-215343 | 711141 | Security updates | Security updates have been made relating to rulesets using allow lists, checks for Java code injections, SAML-based SSO code, and supporting SFTP as part of the validation in the pxValidateURL rule. | Security |
System Administration
8.6.4 Patch Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-163791 | 704028 | 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-184798 | 703268 | 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-184964 | 705934 | TextMask_Encrypted rule added for use with Oracle | When a property was being encrypted by propertyEncrypt access control policy and masked by propertyRead access control policy, it showed a "@@getMaskedValueOfText" error. This has been resolved with the addition of a new rule pxTextMask_Encrypted for Oracle product type which will remove extra spaces from the SOURCE string to handle ORACLE specific usecases. | System Administration |
INC-195580 | 684493 | 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 | 684645 | 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-200030 | 698956 | Handling added for external Kafka authorization exception | When using external Kafka for stream service, the dataflow was failing with the error 'QueueProcessorDataSubscriberException' when topic create permission was missing. As a workaround, the topics could be pre-created, though a "Topic already exists" warning was generated. To resolve this, the cluster-wide right that a producer needs, IdempotentWrite, has been added. For more information please refer to the link https://docs.confluent.io/platform/current/kafka/authorization.html | System Administration |
INC-202865 | 709919 | Shared partition operations performance improvements | A significant performance degradation was seen in queue processor overhead related to maintaining the partition table. This has been resolved by adding an update which will improve partition operations in a shared context. | System Administration |
INC-206288 | 705269 | Addressed intermittent Issues with OAuth2 | Issues with logging in to a node by way of the access token endpoint were related to the error "JSON web token is rejected during signature verification due to bad signature". This has been resolved by adding clock skew value to the JWT processor bean during validation. | System Administration |
INC-206636 INC-207307 |
703942 706152 |
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 |
INC-207307 | 709714 | Corrected OAuth jar version for custom Keystore rule | Attempting to create a custom JKS and Keystore rule so it could be pointed to the Pega cipher and use the encrypt and decrypt functionalities failed with an error indicating it was not a valid KMS keystore. This was traced to an issue with a jar version mismatch: upon checking the dependencies for the nimbus-oauth-sdk jar, even though version 6.18.1 was specified the system picked the 8.27 version through transitive dependencies, and the 8.27 version doesn't have the needed CommonContentTypes class. This has been resolved by reducing the version to 6.18.1 in conflicting build.gradle. | System Administration |
INC-210346 | 709710 | Check added to ensure Job scheduler executed only once | When Node A and Node B woke up at the same time to start executing the job scheduler, both were attempting to update the "now processing" node ID with their ID but only Node A succeeded. This caused Node B to generate a "lock already held" exception, then Node B would try to release the lock and update "now processing" node ID. If Node A released the lock before Node B tried to, then Node B updated the "now processing" nodeID and executed the scheduler, causing it to be run twice. This double-run has been resolved by adding a check for whether the job scheduler has been executed recently before starting it. | System Administration |
INC-211100 | 708300 | QueueProcessor timeout made configurable | Queue Processor timeouts were causing thread interruptions, causing items to be processed more than once. To resolve this, the QueueProcessor kafka-write timeout has been made configurable via the DASS Pega-Engine:queueprocessor/dataset/write/timeoutMs | System Administration |
INC-211917 | 709322 | Scheduled-item operations performed in shared context | Scheduled items were not getting processed either by DelayedItemsDataFlowService data flow or by reverting to the pzDelayedQueueProcessorSchedule Job Scheduler, and the number of scheduled items in the pr_sys_delayed_queue table continued to grow even though DelayedItemsDataFlowService showed the processed record count to be increasing. Because the Admin Studio portal was not equipped to show the scheduled record count for the tenant layer in a multi-tenant environment, only the scheduled record count for the shared layer was shown. This has been resolved by updating the system to perform scheduled-item operations in shared context. | System Administration |
INC-213610 INC-213763 |
708113 708109 |
Job Scheduler explicitly unlocked after nodes restart | If a job scheduler was in running state and the utility nodes were restarted, the background processing nodes were not coming up and resuming as expected and PersistentJobCleanupFactory:PresentMembersJobCleanup was throwing a stale execution exception. Investigation showed locks were not being removed from the database for the job scheduler when the restart was performed (noted in pegadata.pr_sys_locks table), preventing further runs. This has been resolved by adding an explicit lock removal process for this condition. | System Administration |
User Experience
8.6.4 Patch Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-172944 | 662828 | 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-176462 | 657412 | Dashboard widget drilldown section adjusts dynamically | While trying to expand the drilldown columns, text was overlapping due to the grid not adjusting the large size of data dynamically. This was traced to an unnecessary CSS rule being applied to set max-height which broke the styling. This has been resolved by removing the height limitation on detail cells. | User Experience |
INC-180100 | 662894 | Scrollbar persists for multiselect | Selecting more than 20 values in the multiselect control caused the scrollbar to disappear. This has been resolved by removing a custom popover height calculation. | User Experience |
INC-183672 | 701868 | 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-186081 | 675207 | Report filter popup displays correctly | The filter popup was not displayed on the report column for which the filter was intended. This has been resolved by updating the popover js to fix the overlay issue. | User Experience |
INC-187196 | 680749 | 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-188644 | 708958 | Autocomplete cancel closes correctly | Clicking on an autocomplete field and navigating to the next tab without selecting any values caused the autocomplete results to be displayed in the next screen until there was a click or an action was performed in that screen. This was due to the autocomplete not closing correctly, and has been resolved by removing the event.cancelBubble setting. | User Experience |
INC-189748 | 701457 | Websocket disconnect code logged | An update has been added which will log the websocket disconnect code for additional diagnostic information. | User Experience |
INC-190233 | 675486 | 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-194415 INC-211253 |
692825 711278 |
Improvements for dirty popup | Multiple issues have been addressed for dirty popups. 1) While working on an assignment, making a change and then clicking on the left navigation (Home, Dashboard) did not show the dirty pop up as expected, and the change was lost. The dirty pop up did appear on the Cancel button and Actions within the case. This has been resolved by improving the context switching for visibility of the dirty pop up. 2) Attempting to work around the previous issue by clicking "Do not display dirty warnings" only worked the first time it was tried. With this change in place, opening the assignment, making a change, then clicking Home, caused the pop up to appear as desired, but opening the assignment again and making a change, then clicking Home again did not prompt the dirty pop up. This was due to the click handler getting hit twice, leading to the already open dirty dialog being closed during the second call to the function 'isFormDirty' in pzpega_ui_doc_actionRouter.js file, and this has been resolved. 3) When attempting to close the case as a draft, clicking the save button caused the system to keep loading for a few minutes without sign of completing the save process and eventually the browser had to be closed. The content was saved, but the system was not able end the loading screen. This was caused by an incorrect harness context which caused the "SubmitInProgress" flag to be true on the incorrect harness context so the modal was not dismissed. To resolve this, on clicking the "Save" button, after the confirmation modal is closed, the pega.u.d.isDirtyDialogOpen will be reset to false. | User Experience |
INC-194564 | 699259 | Cancel button shown as expected in modal dialog on Mobile | A modal dialog in a mobile app used to show all the phone numbers of a customer did not display a Cancel (close) button after update even though the cancel button was defined on the underlying PhoneNumbers section. This has been resolved by adding a check to assess if the button is visible when calculating modal height. | User Experience |
INC-195683 | 687953 | Security update for MashUp | Cross site scripting protections have been updated for the LoadMashupPage activity and RedirectTo parameter. | User Experience |
INC-199469 | 707513 | PDF margins made available as parameters | After update, margins were different in exported PDFs. This was due to upgraded jar files: PD4ML v3 used setPageInsets(new Insets(top, left, bottom, right)) , but the v4 jar uses setPageMargins(new PageMargins(left, top, right, bottom)) . Because the order of values (20, 10, 10, 10) were not changed this produced a different result. To resolve this, PD4ML margins are now available to be set as parameters: Param.pyMarginLeft, default value 20 Param.pyMarginTop, default value 10 Param.pyMarginRight, default value 10 Param.pyMarginBottom, default value 10 When standard activities like HTMLToPDF / pyViewAsPDF / pyAttachAsPDF are used, add a Property-Set step before calling the activity to add the necessary margin parameters. When CreatePDF smart shape is used, set the parameters via the connector of the CreatePDF. |
User Experience |
INC-200340 | 694377 | Currency Code updates | A Section configured with an editable currency input using auto-formatting failed to render at runtime if configured using Type -> Number, Symbol -> Currency, Other currency, and Currency -> "USD". The error "Invalid Locale : USD" was logged. This was an unintended side effect of work done to configure currency codes for the Number control, and has been resolved by accounting for the locale settings and handling the condition for the error "Invalid local-USD" so that the the UI rendering appears as expected. In addition, when the Currency control was configured with editable mode "Editable" and "Display value using read-only formatting" checked, read-only formatting generation did not happen for the control. Entering a value and tabbing out caused the ReloadCell activity to return empty content, which resulted in the server returning full HTML markup with a message "Operation Successful". Because the ReloadCell activity handler expected only control markup with formatted value to be returned, the HTML markup containing inline CSS styles in it appeared in the Currency input field on tab out. There was a workaround of unchecking "Display value using read-only formatting" on the control's presentation tab, but this has been resolved by using Post value infrastructure to get the formatted value from the server. | User Experience |
INC-202793 | 698056 | Corrected malformed URL | The function used in the session timer to log off the user was not working consistently, and attempting to discard a checked-out delegated Rule did discard the rule. Both issues reported the error "HTTP Status 400 - Bad request". This was traced to a badly formed URL, and has been resolved by wrapping the URL with SafeURL_createFromURL. | User Experience |
INC-204256 | 701948 | Helper Text displays for radio buttons with 'when' condition | The helper text overlay was not displaying on radio button fields that were conditionally visible using a 'When' rule, though it displayed as expected if a visible expression had "Run visibility condition on client" checked. This has been resolved by adding support for a helper text overlay on radio button with visibility condition (when rule). | User Experience |
INC-204349 | 704563 | Updated check for portal name with search | After update, using search from a Cosmos portal landing page launched the results in a new tab, and the logoff menu did not show which portal was being used. This has been resolved by updating the 'when' rule to check if pxThread.pxPortal contains the portal name rather that testing for equality. | User Experience |
INC-205269 | 703385 | 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 | 705992 | 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-206401 | 698499 | DIrty dialog supported for multiselect and anypicker | The dirty check confirm popup was not displayed after adding items in multiselect or anypicker and then clicking on cancel. This has been resolved by adding special handling with a value property that will store the selected values necessary for this operation. | User Experience |
INC-206483 | 707091 | Delegated rules page displays proper warning in Vietnamese | Opening the "Configuration" left navigation item for delegated rules and clicking on edit to modify the rule did not display the guardrail warning message properly in Vietnamese. This has been resolved by ensuring the Vietnamese date time is properly formatted as "Ngày dd tháng M năm yyyy". | User Experience |
INC-206577 | 704423 | ParentKey handling updated for for CS portal | After creating an interaction in the CPM portal and refreshing the CPMPerformIncludes section (top-level section in the Perform harness) on button click, the focus was set to the first property and a large number of "Uncaught harness context does not exist" error appeared on the console and the screen became frozen. Analysis showed that after the refresh the parentKey property was empty, causing the flow to be executed in the wrong context. This has been resolved by adding a condition to set the parentKey for CS portal 'Add document' scenarios. | User Experience |
INC-206706 INC-208908 |
699987 702170 |
Placeholder value display made customizable | The default place holder value (123,456.78) was displayed for the integer controls even when the placeholder was set to None. This has been resolved by modifying the code to allow customization of the place holder value display. If the "Display value using read-only formatting" option present under editable format is selected and the desire is to show default placeholder for numeric fields, "showDefaultPlaceholderForNumber" with owning ruleset as "Pega-UIEngine" must be created and set to true. If "Display value using read-only formatting" is selected and the default placeholder should not be shown in numeric fields, the DSS should be set to false. | User Experience |
INC-206773 | 708374 | ScreenFlow called from Dataclass section completes as expected | When calling a screen flow from a section of another screen flow, the flow did not work properly in the modal dialog screen flow but did work in the process flow. Investigation showed that when the second screenflow was opened from the Data class section, the assignment of the first screenflow was not deleted post submission. This has been resolved by adding a conditional block for screenFlow Dataclass section. | User Experience |
INC-207593 | 702427 | Spell Check flag removed from Preview and Public Articles | If the spell check button was used when editing a Knowledge Management article, flagged words that were not corrected or set to be ignored continued to display the red flag even when previewing or when the article was being viewed from a public help site. In order to support not showing the flags while previewing or viewing from the Knowledge Management help site, an addition has been made to sanitize underlined words before save or submit. | User Experience |
INC-207631 | 701550 | 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-207632 | 703993 | DirtyCheck handling updated for Perform harness | In some view scenarios, DirtyCheck was displayed but the "OK/Discard/Save" button unexpectedly closed the case view and returned back to the home page. Investigation showed the DirtyCheck harness was not returning to the appropriate page after the modal screen disappeared, and this has been resolved by changing the "Discard/Save" buttons to an "Ok" button for scenarios where a case is opened in a Perform harness. | User Experience |
INC-208199 | 706447 | bbbAdded input null check to resolve loading error | The application was freezing while loading if action was taken on the controls while a page level message was visible. This has been resolved by adding an additional null check for input before calling the focus API. | User Experience |
INC-208499 | 702514 | Corrected Ajax container scrollbar with tabs | The scroll bar was not working as expected for a pyCaseWorker Section configured with an Ajax container and "Show as tabs". This has been resolved by overriding the div[data-mdc-recordid] with overflow-x: auto style to get the proper horizontal scroll in the Ajax container. | User Experience |
INC-208629 | 704590 | ReviewArchivedCase shows case hierarchy | After update, opening the archived cases in the ReviewArchivedCase harness did not show the case hierarchy dropdown. Investigation showed this was caused by the D_CaseBreadCrumb data page calling the source activity with wrong instance key, along with the pxCaseBreadCrumbPopulate activity not supporting breadcrumbs for archived cases. This has been resolved by changing the method how the parent case item is being fetched from storage, using Obj-Open-By-Handle instead of Obj-Browse as the latter doesn't support checking the second storage. The pxBreadcrumbsCount Declare Expression has also been removed in order to facilitate the data page loading. | User Experience |
INC-208729 | 711401 | Repaired Perform for 'Assignments with Errors' | The 'Perform' button was not working on the "Assignments with errors" pop-up. This was an inadvertent side effect of changes made in 'pega_desktop_support' (Pega-Desktop ruleset), and has been resolved by adding a check before calling pega.mobile.isMultiWebViewPegaMobileClient. | User Experience |
INC-209071 | 706040 | Other Currency resolves value in Pega DX | When using Pega DX with the pxDisplayText currency set to "Other currency", only the property name was sent as part of the metadata and not the actual value. This has been resolved by updating "Other currency" to resolve the property reference and get the value. | User Experience |
INC-209906 | 704866 | AddMessage function shows error on UI | After updating from Pega 8.1 to 8.6, an addmessage function which previously displayed an edit validate rule error message was not working. This was an issue with textinput inside a grid, and has been resolved by adding a style to input text when it has a symbol left aligned and giving the error icon a z-index to show the message when the symbol is configured. | User Experience |
INC-210495 | 708117 | Left and right arrow keys work for tabbed Ajax container | The left and right arrow keys were not working for input fields inside a tabbed Ajax container. This was traced to a disableArrowKey function in pzpega_ui_tabs js file, and has been resolved by adding an additional check for attribute "data-mdc-recordid" to ensure the arrow keys are active for an input field. | User Experience |
INC-210864 | 706385 | Tooltip added to specify Display Confirmation Message works for for template table only | The Display Confirmation Message check box is a feature only available in template table and is not supported for legacy tables and Repeating Dynamic Layers. Text has now been added for an info tool tip to specify that use. There is a workaround for other areas to call the 'removeFromRepeatSource' function in UserWorkForm. | User Experience |
INC-211018 | 707524 | Number control correct when IME is Japanese | The Microsoft Windows Input Method Editor (IME) allows developers to enter complex characters in four different East Asian languages using the standard keyboard. When IME was in Japanese mode, entering a number resulted in the input happening twice with the result of an entry such as 12345 becoming 124512345. This has been resolved by updating the code to ensure there is no duplicate IME keyboard event. | User Experience |
INC-211655 | 712350 | Added handling for Malaysian locale date/time | When using the "ms_MY" locale for Malaysia, entering ‘14/02/2022 13:00’ in the displayed DateTime input field generated the error "14/02/2022 13:00 is not a valid date / time value." This was due to differences in the underlying Java version: in Java 8, the API PRDateFormat.getShortDateTimeFormat returns "dd/MM/yyyy h:mm" and the PRDateFormat.getAmPmStrings returns [AM, PM], but in Java 11, the API returns "d/MM/yyyy h:mm a" with PRDateFormat.getAmPmStrings returning [PG, PTG]. For the Malaysian locale ms_MY, the clock format is 12 hour and AM/PM Strings are PG, PTG. This caused environments running JDK11 to fail client side validation for date time when PTG (a 3-char AM/PM string) was selected. This has been resolved by adding handling for this usecase. | User Experience |
INC-212509 | 708358 | Support added for Checkbox control for property with declare expression | The checkbox control was not displaying the true/false text configured for the control in section when using a property with declare expression. This has been resolved by adding the logic necessary for this use case. | User Experience |
INC-212623 | 709549 | HTML attachments conditionally shown in email listener cases | When Rich text/html (non-plain text) emails were ingested in email, the original mail was not getting added to the case. Investigation showed that the pzCreateTriageWork activity had an explicit delete step to remove any attachment that started with 'email-content'. Since the HTML attachment name starts with 'email-content', it was deleted in above activity. This has been resolved by adding a when rule named 'pyLinkEmailTriageContentHTML' which will conditionally show email-content.html. | User Experience |
INC-213247 | 708870 | Title attribute added for disabled icons | The disabled icon control in non-template mode used the tempTitle attribute instead of title, interfering with accessibility because no information was available to screen readers. This has been resolved by adding the aria-disabled attribute to the disabled icon control. | User Experience |
INC-215582 | 712286 | Cosmos calendar icon handles allow entry set to no | When using the Cosmos theme, the Calendar icon became disrupted when "allow text entry" option was set to "no". This has been resolved. | User Experience |
INC-215912 | 711380 | Corrected links being replaced by KM rich text editor | When brackets/parentheses were encountered in URL links in the rich text editor used in Knowledge Management, those links were removed and replaced with a # (pound symbol). This was due to a legacy cross-site scripting security mitigation, and h as been resolved. | User Experience |
INC-216358 | 712230 | Auto Complete working in Mobile Browser configuration | Autocomplete was not working in the mobile browser when logged in as a user and configured with display mode:"in-a-table" and "display as full screen in mobile" disabled. Autocomplete results will always display in List mode in the mobile browser, but with the configuration "in a table" selected and "Display results full screen on phone" unchecked, pzGetACData (which gets called for List mode) was not registered and returned a 403 response. To handle this, the conditions file ActionAssembly.java has been removed so pzGetACData will always be registered. | User Experience |