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.7.2 - Patch Release Available.
Low-code Application Development
Case Management
8.7.2 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-215499 | 714487 | Assignment routing updated for swimlanes | Routing options were not working for workbasket routing when using swimlanes. Investigation showed that when an assignment was added inside the swimlane, the assignment type value was defaulting to Worklist on submit of the assignment property panel. Manually changing it to workqueue did not make the routing section visible. This has been resolved by adding a 'visible when' condition to the "Route To" field to check if the assignment is not in the swimlane. The same check has been added to a 'disable when' condition for the 'Assignment type' drop down. | Case Management |
INC-207996 | 709664 | 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-207218 | 706368 | 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-215354 | 712664 | Data- flow actions working in Bulk Process | When trying to render a flow action whose 'applies to' class was inherited from Data-, an error was generated indicating that the flow action could not be found. This was traced to non Work- flow actions not being correctly populated, and was an inadvertent side effect of work done to set class for inheritance if Work- is not present. This has been resolved by updating the pzPreBulkProcessModal activity to set the TempWorkPage class to Work- only if .pyActionName is pyTransferAssignment. | Case Management |
INC-208394 | 713552 | Error handling updated for Data-Work-Attach-File | If a file is uploaded which has the same name as an existing case attachment or if any issue happens during file attachment, the attachment will fail and an error message is displayed with an option to cancel the operation. However, even if the upload was not successful the related Data-WorkAttach-File instance was created and persisted in the Workattach table. Investigation showed this was caused by the process for persisting the Data-WorkAttach-File record occurring prior to the process that returns the errors, and this has been resolved. | Case Management |
INC-194180 | 704637 | 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-209404 | 710407 | MultiFilePath supports file upload with leading special character | Updates have been made to the pzMultiFilePath control in order to support uploading a file with a special character such as "%" at the beginning of the name. | Case Management |
INC-210787 | 710394 | Multiple child case assignments open correctly in Ajax container | After configuring two cases with a parent-child relationship, the child case was configured with a parallel process with two assignments. When trying to open the child case assignments in an Ajax container, only the first assignment would open. Investigation showed this was caused by the "reloadAlways" parameter not being sent to openAssignment due to a custom control being used. To resolve this, the reloadAlways has been added as an argument to the OpenAssignment function call in pyAssignmentsLabel. | Case Management |
INC-212896 | 711189 | Resume Flow will print Flow Action Label in audit history | After calling Resume Flow for processing the assignments, when the Assignment was processed the Flow Action Name was printed on the Audit History instead of Flow Action Label. Investigation showed that in the Complete assignment activity, there was no code in the 'if' loop to set the value of actionLabel. If the value was null, the property set in the next step sets actionLabel to flowActionID and the audit history result is FlowAction ID instead of FlowAction Label. To resolve this, logic has been added in the CompleteAssignment Activity step 5 to set ActionLabel with Flow Action Label. | Case Management |
INC-192673 | 706242 | Tab highlighting updated | Not all elements were indicated with yellow highlighting when tabbing through the screen. This has been resolved. | Case Management |
INC-210680 | 712071 | 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-187350 | 703199 | 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 |
Cloud Services
8.7.2 Patch Resolved Issues for Cloud Services
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-209435 | 707376 | 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-215877 | 715233 | Handling added for Oracle "NUMERIC" type | When a product rule was created in an environment using Oracle, importing the product into the cloud environment with database table schema changes resulted in errors. This was traced to a change in Oracle's JDBC driver which was reporting Number as a JDBC "NUMERIC" type instead of the previous "DECIMAL". Pega uses the NUMBER data type and expected a type=DECIMAL for an Oracle number, causing the errors. This has been resolved by adding a check for flex numbers if column is NUMERIC. | Cloud Services |
INC-211299 | 706317 | Handling updated for rule export errors | After exporting the rules from E2E, the import to the production mirror failed. Investigation showed that the process encountered a time out from an Adaptive Decision Manager table when exporting the product rule, resulting in the product file not containing the mandatory jar files. This has been resolved by updating the handling of errors during export, and suppressing auto-chaining when generating app JSON. | Cloud Services |
INC-202004 | 705170 | Hotfix documentation updated to point to Hotfix Manager page | The readme file attached to hotfix downloads contained an outdated reference to use "PRPC Hotfix Installer on the Update Manager landing page." This has been updated to point to the Hotfix Manager landing page. | Cloud Services |
INC-208516 | 705099 | 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-205453 | 706570 | 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-218457 | 713986 | Updated debug logging | Debug logging within IndexReferenceSynchronizer and FastLoader has been updated. With this update, IndexReferenceSynchronizer debug logging will indicate what the action is for each instance, FastLoader will include information about the keys being loaded and statements being executed, and duplicate logging has been removed from BatchSQLExecutors. | Cloud Services |
INC-205181 | 697801 | 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 |
Conversational Channels
8.7.2 Patch Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-202878 | 713790 | Handling updated for social messaging items with very large embedded images | Job scheduler was running out of memory while handling large/multiple files, causing nodes to crash while handling Social Messaging items. Inline images were also not being sent in the ACK email. Investigation traced this to a custom job scheduler and activity used to create PDFs from email communication and send the PDFs to a third-party system. This used the standard Email Triage/PegaSocial functionality for the emails, which were stored as instances of PegaSocial-Message. The custom Job scheduler and activity then leveraged the Data Page D_pxEmailPosts to retrieve the emails in order to harvest the text from the emails. The issue occurred when a number of the emails had multiple or large embedded images in them, meaning the PegaSocial-Message instances are very large. This resulted in the node running out of memory and crashing. To resolve this, code has been added to support inline images in ACK email and the complete message from Pulse will be used instead of the original message as the email body for the ACK email. | Conversational Channels |
INC-212549 | 706073 | HTML attachments conditionally shown in email listener cases | When Rich text/html (non-plain text) emails were ingested in email, the original mail was not getting added to the case. Investigation showed that the pzCreateTriageWork activity had an explicit delete step to remove any attachment that started with 'email-content'. Since the HTML attachment name starts with 'email-content', it was deleted in above activity. This has been resolved by adding a when rule named 'pyLinkEmailTriageContentHTML' which will conditionally show email-content.html. | Conversational Channels |
INC-214294 | 710827 | 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-212966 | 713955 | Support added for email attachments stored in repositories | Attachments sent through email were received as corrupted. To resolve this, support has been added for retrieving content attachment file content from external repositories using data page D_pzGetExtStorageContent[ContentLocation:.pyContentLocation,RepositoryName:.pyStoredInRepository].pyFileSource | Conversational Channels |
INC-211417 | 711610 | 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 |
Data Integration
8.7.2 Patch Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-216261 | 714413 | Cases processed during archiving | Cases were not being properly processed during archiving. This was traced to a missing pxObjClass in the clipboard page when the work index was being deleted, and has been resolved by adding pxObjClass to the clipboard page before sending the request for deletion. | Data Integration |
INC-199192 | 689037 | 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-211101 | 709879 | 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-197479 INC-202183 INC-212729 |
705111 710296 705111 |
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-208424 | 707614 | 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-204998 INC-211599 |
705629 708543 |
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-211178 | 704592 | 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-207009 | 701555 | 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-213308 | 712074 | 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-211480 | 712418 | 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-217029 | 713142 | Improved performance for Agile Studio web nodes | Large data pages configured as queryable or searchable were unexpectedly getting added to the cache and not cleared, causing some performance issues. To resolve this, the caching logic has been modified to skip adding queryable and searchable data pages if they contain pyImplicitParameter. | Data Integration |
INC-219627 | 715994 | InvokeHTTPConnector security updated | "Allow invocation from browser" has been disabled for InvokeHTTPConnector, and "Require authentication to run" has been enabled. In addition, an unsafe reflection used to load JCIFS libraries for NTLM operations has been removed, which removes support for custom JCIFS libraries in Connect HTTP. | Data Integration |
INC-207159 | 707619 | Localization added for delegated datatype tab | Localization was not working for the title of a thread which opened when attempting to edit the delegated datatype. This has been corrected. | Data Integration |
INC-211655 | 714059 | Removed extra space in Malaysian locale | For the ms_MY locale, an extra space was being appended to Number formats, such as " 0", " 1". This has been corrected. | Data Integration |
INC-219233 | 716175 | ReportStats delete query performance improvements | A database connection spike was maxing out the allowed database connections, causing login delays and termination of stream nodes. Investigation traced this to the delete query on pr_log_reportstats, which was a full table scan generated from SQLGeneratorPostgres.purgeTableContainingClass. To improve performance, the full table scan sub-query has been removed and 'limit' syntax has been added to run the necessary deletion in batches. | Data Integration |
INC-193485 | 695640 | REST authentication settings use fully qualified name for resolution | The application setting used in REST connectors for authentication was resolving to similarly-named rules instead of matching the exact name of the rule. This has been resolved by enhancing pzGetSettingID to use both parts of the fully qualified name (name and category) provided by the pzSettingsORA control when determining which setting from the report to return. | Data Integration |
INC-219453 INC-219995 INC-220031 |
715998 717159 717168 |
Security update enhanced to support custom implementations of InvokeAxis2 | The QueueProcessor activity indirectly invokes a Connect-SOAP. After installing the Security A22 patch, custom implementations on InvokeAxis2 reported runtime failure. This has been resolved by replacing reflection library use with explicit type checking and casting to get the array length in step 14 of InvokeAxis2. | Data Integration |
INC-216313 | 713525 | Server push DSS name corrected | Server push was not working. This was traced to an error in the specified name in the DSS, and has been resolved by modifying "prconfig/server-push/websocket/max_text_size/default" to the correct "prconfig/server-push/websocket/max-text-size/default". | Data Integration |
INC-213808 | 710299 | 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 |
INC-211292 | 705885 | 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-220137 | 715266 | UpdateDateTime casing corrected in filters | When using Job Scheduler with MS/SQL, the error "Cannot find either column 'mktdata' or the user-defined function or aggregate 'mktdata.pr_read_from_stream', or the name is ambiguous." This was traced to a casing issue and has been resolved by updating the pxupdatedatetime property to pxUpdateDateTime in Filters F1 and F2. | Data Integration |
Decision Management
8.7.2 Patch Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-208709 | 710809 | 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-213945 | 709366 | Additional logging and executor work for Adaptive Decision Manager | The Adaptive Decision Manager Pulse operation stopped running on some of the ADM nodes, causing an impact on the model update. To address this, some additional protections have been added for pulse operations running in a scheduled executor, and ERROR logging has been enabled. | Decision Management |
INC-213189 | 707345 | 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-218757 | 714551 | AESRemote updated to be asynchronous | The Autonomic Event Services (AES) agent PushCDHMetrics became stuck and was not pushing metrics to the console. This has been resolved by updating AESRemote to be asynchronous. | Decision Management |
INC-213176 | 709975 | 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-207357 | 703349 | 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-206109 | 706237 | 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-212704 | 707116 | 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-211251 | 706541 | 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-215005 INC-217728 |
713191 712731 |
Made CommitLog messages more resilient to class change | Persistent class mismatch exceptions were seen while refreshing the ADM models after updating from Pega 8.5. This was caused by changes to the Cassandra adm_commitlog message schema which caused the commit log messages generated to be incompatible with the deserialisation logic present in higher versions of Pega, but as the commit log messages had a time to live of 24 hours the issue self-resolved. However, this has been resolved by setting serialVersionUID for the ModelParameters class so CommitLog messages are now compatible with future minor and patch releases. | Decision Management |
INC-179727 | 704544 | 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-192826 | 685795 | 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-216490 | 713633 | pxIdentifier dynamically set for DecisionData while using GOS | When using a Decision Data component in a strategy which was wrapped with Globally Optimized Strategy (GOS), no results were generated from the DataJoin shape under optimized execution. Investigation showed this was caused by a missing .pxIdentifier for the DecisionData shape during GOS execution. There was a workaround of unselecting the checkbox on the Advanced tab in the Decision Data component, but this has been resolved by updating the strategy kernel service so it will dynamically construct the pxIdentifier based on the skills assignment module (SSA). | Decision Management |
INC-210639 | 705346 | 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-211349 | 709606 | 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-213217 INC-220642 |
714192 717033 |
Updated context handling for executing data transforms in dataflows | When performing a sort operation in a data transform on a page list and invoking the Data transform through a Data flow, a java.lang.UnsupportedOperationException was generated on the sort step even though the data was correct. Investigation showed that the dataflows were using a different execution context than the context used for regular activity execution. An update has been made to ensure the correct context is being used while executing data transforms in dataflows. | Decision Management |
Low-code Application Development
8.7.2 Patch Resolved Issues for Low-code App Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-194330 | 708711 | 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-216935 | 714047 | Corrected decision table scroll bar display in resized section | Resizing a decision table window was causing the horizontal scroll bar to move out of the section while scrolling. This has been resolved by updating the HTML and adding the needed CSS. | Low-code app development |
INC-213625 | 712296 | Corrected null values being set to 0 in GenerateExcel | The pxGenerateExcelFile activity was loading $0.00 in place of a null value for decimal columns. This has been resolved by updating the logic for GenerateExcel.java to skip double properties default value for non-existent clipboard props and extend the same fix to the integer class. Safety checks have been added before setting cell type to check if property exists, and handling has been added for a specific exception instead of generic exception for both decimal and integer use cases. | Low-code app development |
INC-205666 | 702936 | Database table correctly prevents deletion if there are descendant classes | When deleting a concrete class with descendant classes via an activity (Rule-.Delete), the Rule-Obj-Class.ValidateDeleteInternal activity was throwing an error message indicating the class could not be deleted due to descendant classes. However, the corresponding database table rule was deleted anyway. Investigation showed this was caused by ValidateDeleteInternal not reaching the Obj-Save-Cancel step. This can be fixed by modifying step 11, the post when conditions, to jump to END and set the END label at the Obj-Save-Cancel step instead Exit-Activity, but this issues has been resolved by updating all failure states to run end step. In addition, security has been updated to disallow "Allow invocation from browser". | Low-code app development |
INC-213918 | 714452 | Discard button works consistently | After check out, the discard button was not working consistently for decision tables or MapValue. Investigation showed this occurred when an exported file was being downloaded in the same window, as the thread would be busy with the file and not able to perform the discard action on the window. To resolve this, the configuration for the download on the same window has been removed, exportToDecisionTable has been modified to handle an iframe, and a runScript action has been added to register the exportToExcel activity and download in iframe. | Low-code app development |
INC-217991 | 714331 | Display of 'check all' check box made configurable | A new overridable 'when' rule pyShowSelectAllCBInSurvey has been added to allow customizing a survey to hide the 'Select all' checkbox in the ComplexQuestionCheckboxTemplate section. | Low-code app development |
INC-209426 | 706804 | 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-200802 | 714845 | 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 |
Mobile
8.7.2 Patch Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-214160 | 709282 | Access group context handling updated for Mobile | After update, a new mobile application for a specific access group was not applying the correct access group for an operator with multiple access groups but instead used the default access group. This has been resolved by moving the logic responsible for switching access groups for Pega Mobile Client from the Authorization.getInitialAccessGroup class to the SessionAccessgroupInfo class to ensure Authorization/SessionAuthorization gets the information about the default access group for the current context. | Mobile |
INC-211208 | 709647 | 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-192649 INC-195601 |
706133 685770 |
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-210526 | 705639 | 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-201633 | 706556 | 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-198249 | 705092 | Security updates for packaging mobile app | Unsafe properties such as password and userId are now explicitly filtered from the Operator object during the mobile app packaging process. | Mobile |
Project Delivery
8.7.2 Patch Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-217942 | 716931 | BIX article updated for XML extract rules | The BIX article "Creating and running an Extract rule" has been updated to reflect that the "Get all properties" option fetches basic properties only, and that properties must be selected manually for non-BLOB tables. | Project Delivery |
INC-207693 | 700542 | 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.7.2 Patch Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-198725 | 707484 | 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-217974 | 715427 | Handling added BIX extraction failure when called from custom activity | After update, BIX extraction was failing but email from the schedulers indicated success. Investigation showed that when extract was called from a custom activity by calling pxExtractDataWithArgs, the stepStatusFail 'when' rule in the custom activity was not capturing all the exceptions specific to database extracts. This has been resolved by adding the necessary handling. | Reporting |
INC-209399 | 708571 | 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-211184 INC-218491 |
708499 717432 |
Removed ORDER BY clause duplication when using MSSQL | After updating from Pega 8.4 to Pega 8.7, executing the query for the report definition generated the error "SQLServerException: Incorrect syntax near the keyword 'ORDER'." Investigation showed the ORDER BY clause was added to the Native SQL query from the standard dataflow background task and from the native SQL API as well when using an MSSQL database. This has been resolved by adding changes to restrict the order by clause if the SQL query has order by clause already for MSSQL. | Reporting |
INC-202480 | 711699 | 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-201625 INC-215209 INC-216359 |
698654 714620 714617 |
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 |
Security
8.7.2 Patch Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-212265 | 714013 | at+jwt header type support added | After upgrading from Pega 7 to Pega 8, using JWT validation in the REST service package with type "at+jwt" resulted in the JSON web token being rejected during signature verification with the error "header "typ" (type) "at+jwt" not allowed". Pega uses the third-party Nimbus jar to generate and verify JWT tokens, and this issue was traced to a difference in the versions of that jar: Pega 7.3 uses the nimbus-jose-jwt 5.1 version jar, while Pega 8.6+ uses the 8.20 jar version. Nimbus rejects at+jwt header types by default from the 8.0 jar version. To resolve this and improve backwards compatibility, at+jwt header type support has been added. | Security |
INC-186897 | 705203 | 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-217461 | 714308 | Key ID made optional for JWT | After update, Connect-REST services were failing with a Admin_Security_Token.Action error. This was traced to kID (key ID) being mandated following previous work done to address an issue. To resolve this and better support backwards compatibility, the kID has been made optional in the JWT header. | Security |
INC-202702 | 713724 | Ruleset creation process updated to maintain thread scope | On creating a ruleset, the system generated the error "There has been an issue. Please consult your system administrator." If browser cookies and site settings were cleared and the browser was relaunched before logging in and creating a ruleset, the issue did not occur. Investigation showed that the Application page was at the Requestor scope for some of the threads due to handling in the ruleset creation process that removed the Application page and recreated it in the default scope of the thread with the latest state. To resolve this, the process for deleting the Application page and recreating it on the Requestor page has been removed. | Security |
INC-215343 | 711087 | Security updates | Security updates have been made relating to rulesets using allow lists, checks for Java code injections, SAML-based SSO code, and supporting SFTP as part of the validation in the pxValidateURL rule. | Security |
INC-198571 | 708633 | SSO update | In order to ensure shared SSO direct links are used as intended, an update has been made which will explicitly require re-authentication for each use of a direct link. | Security |
INC-211426 INC-216053 |
706060 716444 |
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-182827 | 691527 | URL security updated | Security has been updated for URL tampering defense and Rule Security Mode. | Security |
System Administration
8.7.2 Patch Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-215937 | 713771 | Added exception handling for PageGroup alerts | Queue items were going to the broken queue if there was an issue fetching the alert configuration from the Queue Processor rule. The error "java.lang.IllegalArgumentException: Alert id cannot be blank" was seen. This has been resolved by adding exception handling while gathering alerts from PageGroup so that a malformed alert configuration will not cause overall failure of a processed message, but instead an empty alert will be returned if configuration-data is corrupted. | System Administration |
INC-206288 | 705268 | 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-210346 | 709711 | 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-202793 | 698506 | 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. | System Administration |
INC-207307 | 709715 | 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-200030 | 719228 | 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-213610 INC-213763 |
708114 708110 |
Job Scheduler explicitly unlocked after nodes restart | If a job scheduler was in running state and the utility nodes were restarted, the background processing nodes were not coming up and resuming as expected and PersistentJobCleanupFactory:PresentMembersJobCleanup was throwing a stale execution exception. Investigation showed locks were not being removed from the database for the job scheduler when the restart was performed (noted in pegadata.pr_sys_locks table), preventing further runs. This has been resolved by adding an explicit lock removal process for this condition. | System Administration |
INC-217781 | 714183 | JobScheduler updated to better handle DST change | If a job scheduler was set to run on a weekly basis between 1 AM CET and 3 AM CET, the DST time change caused the job scheduler to skip that week. During DST, there is one 23-hour day in the year, and if execution time is set to that missing hour the system was throwing an IllegalArgumentException for the non-existent date. This has been resolved by adding a check that verifies whether a given date does exist; if it does not exist, the system will postpone execution time by one hour. | System Administration |
INC-218340 INC-218909 |
714661 715280 |
Override added to delete records for a stream dataset after processing | Kafka data was accumulating for a Stream data set due to huge volume of inbound calls. This has been resolved by adding support to override pyDeletedProcessed through a DASS in order to remove the records for a particular stream dataset (topic) as soon as they are processed by Pega. | System Administration |
INC-213821 | 708314 | 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 | 709323 | 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-209387 | 706151 | 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. | System Administration |
INC-202865 | 709920 | 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-184964 | 705933 | 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-213502 | 711796 | 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. | System Administration |
User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-211911 | 713052 | Able to expand rows when other rows are expanded | When multiExpand, threadProcessing, and readonly flags were true, attempting to expand multiple rows at the same time collapsed already opened rows and generated an error indicating "target is not defined". This was caused by 'handleEditItem' not calling the collapse functionality for an opened row correctly, and has been resolved by adding a check which allows the expansion of multiple rows for readOnly details. | User Experience |
INC-211655 | 712349 | 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-208199 | 706446 | Added input null check to resolve loading error | The application was freezing while loading if action was taken on the controls while a page level message was visible. This has been resolved by adding an additional null check for input before calling the focus API. | User Experience |
INC-209906 | 704865 | 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-216358 | 712229 | Auto Complete working in Mobile Browser configuration | Autocomplete was not working in the mobile browser when logged in as a user and configured with display mode:"in-a-table" and "display as full screen in mobile" disabled. Autocomplete results will always display in List mode in the mobile browser, but with the configuration "in a table" selected and "Display results full screen on phone" unchecked, pzGetACData (which gets called for List mode) was not registered and returned a 403 response. To handle this, the conditions file ActionAssembly.java has been removed so pzGetACData will always be registered. | User Experience |
INC-188644 | 708959 | 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-216927 | 714495 | Conditional handling added for perceived invalid valuelist reference in design time | After adding a value list property '.pyDateTimeValue(2)' in a section configured in the view editor, the design time error "config issue" was shown. There were no errors at run time and the application's behavior was correct. Changing the subscript of the value list property to (1) ran without an error. In this scenario, the actual usecase configuration will populate .pyDateTimeValue(2), but the view editor believed there was an error in the section because there was no reference to pyDateTimeValue(1) first. This has been resolved by conditionally changing the pyValue to a template property in design time when a perceived invalid valuelist reference is provided as property in the panel. | User Experience |
INC-208499 | 714947 | 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-205517 | 705991 | 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-215912 | 711381 | 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-210760 | 708531 | 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-215582 | 712285 | 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-208848 | 703874 | 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-200340 | 719088 | 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-206483 | 707092 | 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-212623 | 709550 | Dropdown label is accessible when combined with placeholder or tooltip | The screenreader was not reading the dropdown label if tooltips or placeholders were added to the dropdown. This was caused by the label of the element being overwritten, and has been resolved by replacing aria-label with aria-describedby on the input element. | User Experience |
INC-220351 | 715873 | DSS added to control whether empty captions are skipped for display | When the property used a prompt list table type and a prompt value for one of the fields was empty, it is not being shown in drop-down. This caused unexpected default values to appear in drop-down lists. To resolve this, a DSS has been added which may be used to skip empty values. The default behavior of skipEmptyCaption is false to show all values as-is. | User Experience |
INC-190855 | 681092 | Duplicate items resolved for questionnaires | When there was only one question page for a questionnaire, the question page title was being displayed twice and the breadcrumb showed duplicate steps. When there was only one step in the screen flow, the survey navigation was hidden. This has been resolved. | User Experience |
INC-213833 | 710186 | HarnessActions.handleMenuAction able to invoke Show-Harnes | A 403 Forbidden issue occurred when Show-Harness was called from pega.ui.HarnessActions.handleMenuAction. This has been resolved by adding code to register 'Show-Harness' when it is called in this way. | User Experience |
INC-205394 | 706790 | Hidden subprocess steps highlighted in screen flow navigation | When a subflow was used as a last step within a screenflow and the subflow steps navigation links were hidden, the subprocess step was not highlighted as current. To correct this an update has been added that will highlight the circle on the navigation for a subprocess set as last step with substeps hidden, and the lines on the navigation step will be highlighted on the left side for a subprocess set as a step other than the last step and which has substeps hidden. | User Experience |
INC-194415 INC-211253 |
710824 711279 |
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-210495 | 708118 | 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-214338 | 712497 | Navigation updated for checkbox control in table cell | Keyboard-only navigation was not working correctly when there was a checkbox control in a table cell. This was traced to the manageFocus function in the pega_ui_templatizedGridComponent js file which was setting the tab index to -1 when the checkbox value was updated. This has been resolved by skipping the execution of this function for checkbox control to handle the case when escape is not pressed before tabbing to come out of the table when there is a checkbox control in a cell. | User Experience |
INC-211018 | 707526 | 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 key | User Experience |
INC-209071 | 706039 | 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-188141 INC-198784 INC-199137 INC-208116 |
678158 712911 708166 712907 |
PD4ML upgraded | Issues with PDF generation have been resolved by upgrading PD4ML to version 4.0.13. | User Experience |
INC-199469 | 707515 | 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-190233 | 675485 | 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-217304 | 714588 | Regex handling updated for non-empty inputs | Expression evaluation for non-empty regex has been updated to include testing for unicode characters to align with recent updates made to CKEditor. | User Experience |
INC-208729 | 711402 | 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-208629 | 704589 | 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-206773 | 708375 | 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-200936 | 703344 | SFTP support added to ValidateURL rule | SFTP has been added to the list of schemes which are accepted as part of the validation in the pxValidateURL rule. | User Experience |
INC-213247 | 708869 | 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-210864 | 706384 | 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-204349 | 704562 | 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-186072 | 678753 | 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-205269 | 703386 | 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-215215 | 713854 | Validations fire on collapsed accordion layouts | Client validation was not firing on the selected tab of a layout group if the accordion layout was collapsed. If focus was switched to the second tab, the client validation on the first collapsed tab did not work. This has been resolved by modifying the 'else if' condition to pass the validation for the fields places in layout group tabs. | User Experience |
INC-219310 | 717115 | WorkSearchGadget updated in Theme-Cosmos-02-01 | The search icon was not working in Cosmos after update, which was traced to the search icon not having an action set. This has been addressed in Theme-Cosmos-03-01, but in this scenario Theme-Cosmos-02-01 was set as the Application definition instead of Theme-Cosmos-03-01. To resolve this, Theme-Cosmos 02-01-01 has been updated to use the newest version of the @baseclass.WorkSearchGadget section. | User Experience |