Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.3.3 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D68235 | 534781 | Stale WorkSearchPreference data cleared when switching apps | The D_pyWorkSearchPreferences data page data was not refreshing while switching between apps, causing stale data to be populated under the case search dropdown for all the applications after switching the application from one to another. This has been resolved by removing the D_pyWorkSearchPreferences data page as part of pzProcessApplicationSwitch. | Case Management |
SR-D73536 | 538401 | FetchApplicationLogo modified to Filter by rule resolution | It was observed that the Report Definition rule "pzFetchApplicationLogo", referenced by Activity rule "pzLoadApplicationLogo", always returned the older version of the Binary File "webwb • pyapp-logo • svg" because it had been set to retrieve a maximum of one record and in this case the results were sorted in an order where the oldest record was at the top. As the Report Definition did not indicate any sorting, most DBMS were returning the results in no particular or predictable order. To resolve this, "Filter by rule resolution" has now been enabled for Report Definition pzFetchApplicationLogo. | Case Management |
SR-D76291 | 547839 | Updated retry logic for S3 AddAttachmentFromEmail | When using the AddAttachmentFromEmail activity with S3 repositories, performing an obj-save on the data-workattach-file page executes a deferred save while also saving the file into the repository. if the data was inserted into S3 successfully but encountered an issue when saving the related data-work-attach-file page, the system was trying to call the save operation again. This tried to insert the duplicate attachment again to S3, causing an error on that side of the process. To resolve this, the duplicate Obj-Save functionality in AddAttachmentFromMail Activity has been removed. | Case Management |
SR-D84480 | 546187 | FilterHistory decision tree used for audit log status | Attempting to use the “FilterHistory” decision tree in the work class to return value “false” for “pyCloseOpenAssignmentsOnResolution” to hide the “pyCloseOpenAssignmentsOnResolution” field value (“Unfinished assignments were cleaned up by the system after the completion.. ”) from history was not working as expected, and still returned the audit message. This was due to the system setting this AuditNote parameter within the “pzProcessResolutionStage” activity, where Param.UpdateHistory was set to true always. In order to support more flexibility, the Param.updateHistory paramter in step3 of the pzProcessResolutionStage activity will be set based on the FilterHistory decision tree. When set to false in FilterHistory decision tree, pyCloseOpenAssignmentsOnResolution will be set as false and audit will not be logged. | Case Management |
SR-D84754 | 548163 | Resolved erroneous problem assignment error | If a user processed a work item while the SLA agent was also attempting to process it, it sometimes resulted in an assignment with the error: "Error: Flow Not At Task." In this scenario, an error message was displayed stating that "Assignment already completed" even though the assignment was not yet finished, causing confusion. Investigation showed that in cases where the success indicator was -28, the assignment was marked as problem assignment even though it was processed. To resolve this, the system has been updated to skip marking the assignment as a problem when the success indicator is -28. | Case Management |
SR-D87898 | 552588 | SaveAttachment Activity in Data-WorkAttach-URL updated | A 'when' condition was not properly evaluated for Activity SaveAttachment (CL:Data-WorkAttach-URL ), causing the Next assignment screen to not be displayed. This has been resolved by modifying the handling of Page Names used as activity parameters to remove the use of the specific PageName "pyAttachmentPage" in the operation and make it generic to Primary in the SaveAttachment Activity of CL: Data-WorkAttach-URL. | Case Management |
SR-D88141 | 550008 | TemplateButton field correctly set read-only | When a control was added to a section using the DX API, a pyTemplateButton field was added to the XML definition of the section with read-only set to 'false'. This has been corrected so the pyTemplate Button field does not allow input. | Case Management |
SR-D90528 | 550665 | Localization added to File upload alerts | When uploading files as part of adding attachments, error and warning messages were displayed as alerts in English despite using localization. This was traced to the pzMultiDragDropControlStandard control rule having the HTML alert messages hard coded instead of using field values which could be localized. To resolve this, field values have been created for the messages related to DragDropMaxSize, FileNotExistMessage, FileUploadSupportMessage, and UnableToLoadFileMessage. | Case Management |
SR-D92352 | 553615 | Completed onChange will reset FileInput value to null | When attaching a file using the "Select File" button, it was not possible to attach the same file after deleting it. Re-attaching the file worked as expected when using Drag and Drop. Investigation showed that the onchange event occurred only when the value of an element was changed, so in this case trying to attach the same file did not change the value of the element and did not fire the onchange. To resolve this, the value of FileInput in pzMultiFilePath Control will be set to null at the end of the onChange event so that an onChange event will be triggered next time even if the same file is added. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.3.3
Conversational Channels
8.3.3 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D63638 | 544015 | Performance improvements for opening cases with embedded images | Opening cases containing email interactions was taking an excessive amount of time. This was traced to the use of embedded images, icons, etc, in the message body and signature, and was caused by the pyGetAttachmentsbyCID activity running multiple times due to discussion threads that were duplicated over and over. In some cases, more than 360 calls to the database were seen. This has been resolved by shifting some case opening processes to executing when the listener thread gets the mail, and storing the results in a .pynote property, and a URL will be used to get images instead of embedding them directly to the HTML. If preferred, this can be reverted to the previous behavior by changing the when rule (pyUseCachedHtmlForDisplay) to false. | Conversational Channels |
SR-D81707 | 544671 | Webchat bot interaction box cleared on submit | After upgrade, when using Google Chrome responses to webchat bot questions were not getting cleared from the chat input window after the enter/send button was clicked. This has been resolved by changing the order of refresh section and set value and disabling submit on refresh when refreshing pzSubmitArea. | Conversational Channels |
SR-D86837 | 547992 | Webchat interaction timeout updated | Interaction timeout was not working as expected in Webchat channels. This was traced to the system looking for total interaction timeout instead of user inactive timeout, along with the Web chat interaction case clipboard page being stale. To resolve this, timestamp propagation has been updated for pxProcess in Work-Channel-Interaction.pxAcquireInteraction. | Conversational Channels |
SR-D87188 | 551349 | Mentioned user in Pulse correctly converted to hyperlink | In the Interaction portal, mentioning a user in Pulse using @ was not converting the name to the user name with hyperlink for Email Interactions. @ mentions were working as as expected in Phone Interactions. This problem was introduced as part of using OWASP to sanitize HTML user input in Rich Text support, and was due to OWASP converting @ to an HTML entity. To resolve this, the @ will be excepted from HTML conversion. | Conversational Channels |
SR-D92688 | 551339 | Optional feature to improve pxETReport performance | Poor performance was seen when using pxETReport. This was caused by the system loading the recent cases widget by looking up all the ET cases within last 30 days, opening each ET case to check if it is from the same pyFrom email address, and then if yes, opening its related service case. On a complex system, this was potentially a slow process. To improve performance, the "Related cases" feature can now be disabled through an overridable 'when' rule. | Conversational Channels |
Data Integration
8.3.3 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D40785 | 515098 | WorkPageName preserved during passivation so attachments are correctly tracked | When a work object was left open but inactive for a period, using the delete button in the pyAttachFieldRequired section caused the deletion of the Attachment Links for the 500 most recent attachments in the system with the same value for the AttachmentFieldName, regardless of which work object they were attached to. This was due to the delete attachments activity being executed with missing parameters: since data page loading was disabled and read-only data pages are not passivated, the value for the autopopulate property 'WorkPageName' was passed as empty. This has been resolved. | Data Integration |
SR-D50664 | 531686 | Support added for tracing PageList during automations | When using the out-of-the-box email reply on an email triage case, an exception was observed in the tracer stating "com.pega.pegarules.pub.clipboard. WrongModeException: The property To.pxResults was of mode Page List while com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getObjectValue() was expecting Java Object mode." This has been resolved by adding support for tracing PageList during automations. | Data Integration |
SR-D53835 | 524212 | Handling added for custom authentication in embedded mashup | After embedding the Mashup gadget in an external application, at browser refresh a Cross-Origin Read Blocking (CORB) warning appeared and the gadget did not load as expected. A second refresh cleared the error. Investigation showed that when custom authentication is configured, 'use SSL' is checked in Authentication service. That meant that when the user was authenticated, the redirection was not considering the query string entered before authentication and the CORB warning was issued due to a change in response. Because there is special handling for the above use case and post-authentication redirection does not happen through the normal flow (HttpAPI), this issue has been resolved by honoring the query string stored in requestor (entered by user) while redirecting. | Data Integration |
SR-D60284 | 550558 | Delete Requestor method updated for use with CMT | JMS MDB Listeners with Container Managed Transaction (CMT) enabled in Websphere 8.5 had global transactions fail. To initialize a JMS-MDB listener, a requestor of type APP is used. Upon the service being fully initialized, the requestor is removed by executing a delete operation followed by a COMMIT. However, in this scenario, the initialization operation is running within a CMT context and a SQLException was raised indicating that the commit was not allowed. To resolve this, the delete requestor method has been refactored to take into account the CMT context so the commit is not executed if the transaction is managed by the container. | Data Integration |
SR-D60830 | 533027 | Logic update for classloading synchronization | The synchronization logic for classloading has been updated to resolve intermittent deadlocking seen when two DataFlow threads are executing a distribution test. | Data Integration |
SR-D61747 | 526196 | Null check added for MutationKeepert dataProvider | Trying to open the shape "NBA Designer Setting" from Strategy "RealTimeControls" resulted in an null-pointer exception thrown from the MutationKeeper code during PageCopy. This was traced to the dataProvider for the MutationKeeper object being null due to a node in the runtimetree which was marked as removed, and has been resolved by adding a check for a null dataProvider before trying to copy it in the constructor of MutationKeeper. | Data Integration |
SR-D64570 | 546713 | Resolved Thread deadlocks during RAP imports and MT rule loading | When using a time-intensive large query to build a cache to hold complex property references, multiple threads on a single tenant executed this query in a sequential manner and thread locking problems were seen. To resolve this, an update has been made so that for the same tenant, only one thread will run the query. All other threads waiting to acquire the lock will not execute the same db query but will instead make use of the result fetched by the first thread. In addition, a prconfig has been added to control the loading of tenant-specific declarative rules: by default, declaratives/ignoretenantspecificdeclaratives will be set to false and all declarative rules will be loaded. When the config is enabled in a multi-tenant environment, the loading of the tenant-specific declarative rules will not happen and only the declarative rules which are shared will be loaded. In Non-MT environments, this configuration will not have any effect. | Data Integration |
SR-D64608 | 544386 | Corrected filedownload extension header issue | Filedownload header contained plain non-ascii characters which caused a security violation issue. This has been resolved by removing the filedownload header from the HTTP response when the sendfile API is used with inputstream to download a file. | Data Integration |
SR-D65239 SR-D81659 |
547821 548899 |
Handling added for encrypted messages using IMAP | Log errors were seen related to Email Listeners while processing encrypted emails from specific mail IDs, including "Unable to determine DSN, EmailClientRuntimeException: Unable to load BODYSTRUCTURE" and "isMimeType(JavaMailMIMEMessage - Unable to determine partIsEncryptedMessage". This issue is related to how certain servers work with the IMAP protocol to parse messages, and has been handled by creating a new instance of MimeMessage from the original MimeMessage and working on it. | Data Integration |
SR-D67142 | 548640 | Enhanced CMIS connector logging | Additional diagnostic logging has been added to enhance investigating CMIS connector health. | Data Integration |
SR-D67308 | 552343 | fetchWSDLDocument rule withdrawn | The fetchWSDLDocument rule has been marked as withdrawn. | Data Integration |
SR-D70768 | 547016 | Handling added for unavailable oWnd | After using a Snap Start URL to open an assignment, terminating the requestor and hitting the URL again resulted in a blank screen. This was traced to the pzUnknownSessionAlert script throwing an error when oWnd.pega was not available, and has been resolved by adding the needed handling. | Data Integration |
SR-D71145 | 536368 | PropertySet will iterate over changeList map copy to resolve CME | An empty menu was seen intermittently when handling incoming email, and a ConcurrentModificationException error was logged. Investigation showed that a step scope changeList map used in the handleChaining method was sometimes modified by another process while the first one was iterating over it. To resolve this, PropertySet will receive copies of the change list map from clipboard pages instead of the original map. | Data Integration |
SR-D72389 | 541945 | Handling added for JSON with top level array | When using serialize mode in a JSON data transform where the Top element structure was Array and the “For JSON only” relation was selected for relation mode, the result had an incorrect JSON structure. In order to support this configuration, generatePropertyAsJSON has been amended to set isTopLevelPageList to true in instances where automap is off, the top level is an array, and the JSON context is updated within the first step. In addition, generatePageAsJSON has been updated to check this flag when processing mappings in order to ensure these context changes are processed, and updates have been made to generatePropertyAsJSON to ensure that the context is popped when appropriate. | Data Integration |
SR-D74376 | 552257 | Check added for string vs boolean for pzscan JSON | When calling the CloudRemoteMaintenance/Work-/pzscan API, the response JSON had boolean values in the form of String which caused the JSON parsing to fail. The system was using ClipboardProperty.toStringValue() while generating outbound JSON from the clipboard page, which did not correctly interpret a boolean value. To resolve this, a check has been added that will assess the value and invoke ClipboardPage.toBoolean() when needed so that the value is converted as per type before generating the JSON. | Data Integration |
SR-D74921 | 551786 | Error condition will close WebSocket connection | An async listener has been added that will close the WebSocket connection when an error condition is encountered. | Data Integration |
SR-D76861 | 544605 | Job Scheduler will be stopped by node shutdown detection | LifeCycle Job Scheduler was trying to start already stopped background services during node shutdown, causing exceptions to be logged. This has been resolved by stopping Job Scheduler execution when node shutdown is detected. | Data Integration |
SR-D81328 | 549992 | Kafka Disk Space auto cleanup improvements | High disk space consumption was seen when using a custom QueueProcessor and standard retention policies. To resolve this, an enhancement has been added which will allow consumed QueueProcessor messages to be removed from the stream as soon as they are processed to avoid out of space issues. This will ignore partitions with undefined positions. | Data Integration |
SR-D81496 | 547168 | Data Social tag class FTS index query improvements | A query intended to select from the link tag table to see if any cases were linked to the tag in question and then index the tag change was causing performance issues. Investigation showed that checking tag associations during FTS indexing fetched all matching rows from the table even though one was sufficient. To resolve this, the query will be created with max result count = 1, fetching up to 2 rows from the table. | Data Integration |
SR-D81651 | 545236 | Added check for signed-data in encrypted email | Numerous java.lang.UnsupportedOperationException messages were seen in the logs. Investigation showed that signed email which arrived as encapsulated within another email with header content-type = "application/pkcs7-mime; smime-type=signed-data; name="smime.p7m" caused the exception. This was due to a missed check for 'signed-data' while parsing the email and checking for encryption, and has been resolved. | Data Integration |
SR-D81673 | 546395 | ClipboardToJSON Serializer enhanced | After creating a JSON data transform with the top level structure set to Object and a step that mapped a Pagelist in clipboard to an Array of Objects in JSON, calling the data transform in Serialize mode resulted in a JSON mapping exception. This was a missed usecase for using the JSON serializer with nested pagelists in page, and has been resolved by adding pagegroup support for data transform serialization and skipping pagegroup serialization when automapped. | Data Integration |
SR-D81911 | 553093 | Reference property copying updated | An error appeared on screen when performing the local action "NonProceed case" after upgrading. This was traced to the way copying reference properties was handled as part of pxDeleteAssignmentsForWork, and has been corrected. | Data Integration |
SR-D82490 | 547364 | Invoke Connect-SAP method of IDoc type repaired | Attempting to implement SAP connection via IDoc type connector failed and an empty error message was shown. This has been resolved with modifications to the SAP Connector functionality. | Data Integration |
SR-D82695 | 546538 | Correct tenant ID set in execution of SLA Agent | An incorrect tenant ID was set in the execution of service level agent, causing the SLA Queue item to fail with the error "You are not authorized to open instance SYSTEM-QUEUE-SERVICELEVEL." This was traced to an incorrect access group which was set in QueueProcessor for a processed item and not restored correctly, and has been resolved by populating the access group on the security tab of the relevant standard agent with the value “PRPC:Agents”. | Data Integration |
SR-D83023 | 549687 | Apache Commons Compress library upgraded | The Apache Commons Compress library has been upgraded to v1.19. | Data Integration |
SR-D83329 | 546657 | AWS S3 client SDK upgraded | The com.amazonaws group has been updated to version 1.11.740 . | Data Integration |
SR-D83605 | 545587 | Resolved cookie issue for Service call headers | After upgrade, a difference in how cookies were passed in headers in Service calls resulted in failing to capture the HTTP cookie header necessary to support frontend digital signing. This has been resolved by modifying the code positioning and conditionalizing the resolved value check. | Data Integration |
SR-D84099 | 547824 | Atmosphere library updated | Multiple setAttribute exceptions were logged related to the Atmosphere component, indicating "The request object has been recycled and is no longer associated with this facade." Investigation showed that since the request object was destroyed, an illegalstateexception was thrown. To resolve this, the Atmosphere library has been updated to version 2.4.5.7 which contains the fix for this error. | Data Integration |
SR-D84122 | 547965 | Added min INT comparison for BrowseByKeys | Running the dataset with the Browse option worked as expected, but running it using BrowseByKeys operation and giving a negative value caused results to not be populated. To resolve this, a minimum INT value comparison has been added. | Data Integration |
SR-D84880 | 546888 | Null check added to resolve addmapcasetomap error | Using a createcase flow shape to create child cases by looping on a page list on the parent case resulted in pzaddmapcasetomap throwing an exception related to the activity pzLoadCaseHierarchyWrapper in step 5. This was traced to a page being removed after the list of pages was received in findPageByHandle, and has been resolved by adding a null check. | Data Integration |
SR-D85410 | 549568 | Improved queue processor tracing | After starting to trace the queue processor, the message "waiting up to 1 minute for queue processor, <<Name>> to start processing an item" was displayed as expected, but if the tracer was closed and then there was another attempt to trace the queue processor, the message "Trace request with the current requestor is already registered. Multiple trace requests from same requestor are not allowed." appeared. Research showed that this was related to the implementation around canceling a background task, and has been resolved by adding code to handle the scenario of terminating an on-going trace request on window close and then beginning another trace request with the same requestor. | Data Integration |
SR-D85653 SR-D90051 SR-D90505 |
548599 549492 550989 |
Repaired Tracer use with Google Chrome | After running Tracer while using Google Chrome, closing it and trying to run another resulted in an error indicating "Cannot Launch multiple tracer sessions for a requestor". This was identified as a bug with Google Google Chrome Versions greater than 70 and was caused by Google Chrome deprecating the use of sync XHR on page dismissal, and has been resolved by modifying the system to use a beacon API instead. | Data Integration |
SR-D85699 | 548662 | DASS given for overriding boolean transformation to true/false | In order to ensure greater backwards compatibility, support has been added for not converting boolean values in the DOM-based Parse XML assembler based on the DASS as below : Pega-IntegrationEngine • ParseXML/DOM/DoNotConvertBooleanValues This will maintain values as 0/1 and override the default of transforming them to true/false which was enabled as of v8.3. |
Data Integration |
SR-D87605 | 547295 | Indexes and tables updated to improve purge query performance | Due to work done previously, purge queries to clean up the application ruleset index and application hierarchy_flat tables were running slowly or not returning the expected results. This has been resolved. | Data Integration |
SR-D87870 | 548771 | Resolved putting JMS Message through JMS Listener interface | When using MS Listener integrated into Pega running on WebSphere Liberty, the listener was running correctly and able to consume JMS Messages. The JMS Listener ruleform provided options to browse and put JMS messages. However, when attempting to put a message into the destination queue, an error occurred. Investigation showed that if the resource lookup was using 'Resource references' on JMS Listener, the naming context was initialized with a null hashtable. This has been corrected by modifying AddJMSMessage and GenericViewJMSMessage to initialize the naming context with the default constructor RefreshJMSMessages to set JNDIServerName and pass the current parameter page when calling GenericViewJMSMessage. | Data Integration |
SR-D88490 | 548185 | SQL query performance improvement | An SQL query was running sequential table scans with UPPER keyword while also doing an index scan without UPPER, causing performance issues. The query was used when there was a conflict of a Page property pointing to different Page in the hierarchy of class while creating a dedicated Index, and used the Upper function for a filter condition on pyClassName and pyPropertyMode. In the Database the value will be in MixedCase and the code will pass it as mixed case, so the Upper function has been removed from the query to utilize the index scan for filter condition and improve the query performance. | Data Integration |
SR-D88997 | 548895 | Improved accessibility for labels and instructions | In order to improve accessibility, a label has been added to the delegation filter input and a search input box has been added to pzRecordsEditorWrapper along with the ability to use the 'Cell read-write classes' option to hide it in the UI. | Data Integration |
SR-D90311 | 549726 | Parse Delimiter rule updated for special character handling | Attempting to run a Parse Delimiter rule with a CSV file was failing with a 400 bad request and the message "Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986." Inspecting the HTTP request showed this was an issue with the \ character value being present in the FilePath property. To resolve this, encodeURIComponent() has been implemented to ensure the FilePath parameter of the HTTP Request meets Tomcat restrictions. | Data Integration |
SR-D94505 | 553016 | Toggles added to allow file listener performance improvement | In order to offer flexibility in improving the performance of file listener CPU usage while processing intake files, rsf.setSaveIntermediateState( true ) has been replaced with rsf.setSaveIntermediateState( listener.getListenerProperties().getAttemptRecovery() ) in FileActionImpl. This change allows the option of not selecting the setting for attempting recovery on the file listener rule-form, which then would skip the intermediate save state normally performed per record/per file in case recovery is needed, thereby speeding up the processing. A toggle has also been added to see whether the system should bypass the ListenerState check at the end of each record. To use this, set the Dynamic System Setting "listener/skipListenerStateCheck" in the "Pega-IntegrationEngine" ruleset to true. Additional Installation Instructions: Please create/set the Dynamic System Setting "listener/skipListenerStateCheck" in the "Pega-IntegrationEngine" ruleset as true. |
Data Integration |
Decision Management
8.3.3 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D74534 | 538943 | Decision table and tree obey allow missing properties checkbox | Calling the decision table/tree inside another decision table/tree which has a missing property was throwing an error even though the "AllowMissingProperties" checkbox was enabled in the caller activity. Analysis showed that the setting for AllowMissingProperties did not carry into any subsequent DecisionTree/DecisionTable calls from the top DecisionTree/DecisionTable, and this has been resolved by modifying the decision table and decision tree obtain value functions to pass AllowMissingProperties. | Decision Management |
SR-D77157 | 544471 | DataSet preview will use date instead of datetime | While using a DataSet preview functionality, the date appeared as reduced by one day. This has been resolved by parsing date as 'date' instead of 'datetime' to avoid issues with timezone interactions. | Decision Management |
SR-D82150 | 546530 | Properties persist after revision import | When properties were added to a form, they sometimes disappeared after revision import even though the properties always remained visible in a strategy. Investigation showed that the Form changes made in a DD rule were not properly updated in the pyEditElement section. To correct this, logic has been added to handle the form changes in the DD in the following activities: Data-Rule-Summary.pyMergePropositions Data-Rule-Summary.pyRemoveDDRules Data-Rule-Summary.pyWithdrawDDChanges Data-Rule-Summary.pyRemoveRestoreDDRule |
Decision Management |
SR-D82727 | 547722 | Improved management for table pr_log_dataflow_events | The Lifecycle event table was sometimes growing too large. This additional strain of database transaction volume caused poor performance on the Dataflow tier and lead to cluster instability and time-consuming cluster restarts. Due to problems in one of the Pulse tasks, the Pulse thread was not processing single case metrics properly and causing the unbounded queue for single case to grow. This has been addressed by switching to a fixed queue size, which is configurable with the DSS: dnode/single_case_queue_size. The default value of the DSS is 4000, and if changed a system restart is required. An error will be logged each 1000 queue misses, and metrics will be dropped if the queue is full. In addition, the Pulse task frequency has been improved and managed to prevent interference with other Pulse tasks and will be triggered only if a run is system-paused for a long interval. Rebalances now have a failsafe if something unexpected happens during the Pausing of the run, and If the cluster becomes unstable, the life cycle events logs may be disabled with dataflow/run/events/persist . | Decision Management |
SR-D85095 | 546338 | Updated COUNT logic for strategies with ssavm set to true | An error was seen when attempting to save a strategy after setting ssavm to true, indicating an issue in the “COUNT” method in Group By shape. Since the source field is not used and does not need to be evaluated here, the system has been updated to ignore the source field if the operation is COUNT. | Decision Management |
SR-D85558 | 548285 | Handling added for prolonged Heartbeat Update Queries | After restart, the pyFTSIncrementalIndexer queue size had hundreds of thousands of entries even though it was empty prior to the restart. Investigation traced this to a job scheduler that checked all the database connections everyday at 1 EST by using a list that contained some connections which did not exist. Checking those invalid connections caused other update queries to queue and wait, resulting in the update heartbeat query taking longer than its default beat. This caused a Split Brain issue wherein other nodes considered the long-executing node to be dead and triggered a rebalance while the node itself continued to execute partitions thinking that it was healthy. This caused duplicate processing of records. To resolve this, a fail safe has been added: while updating heartbeat in Service Registry, nodes will enter safe mode when the update query is taking longer than the default beat. |
Decision Management |
SR-D86469 | 551895 | Performance improvements for Test Strategy data flow | In the Test Strategy panel under Single case -> "Settings", selecting the "Data flow" option and choosing CustomerData dataflow was taking an excessive amount of time to run on a system with an extremely large database. To improve performance, two areas have been addressed: 1) the default behavior for record key suggestions in the test panel has been modified to collect only the ID as the additional data is not necessary at that time; 2) a DSS has been added that will opt out of reading and collecting the customer IDs in order to minimize data stored on the clipboard. | Decision Management |
SR-D87709 | 552397 | Default context check added for saving adaptive model with locked rulesets | When updating an adaptive model rule in Prediction Studio, the error message "No unlocked Rulesets/Versions found that are valid for this record. Unlock at least one Ruleset/Version that can contain records of this type." appeared when clicking Save. This occurred when a branch was used in the default context of the Prediction Studio settings. Although there was a workaround to use Dev Studio to Save As the adaptive model rule to the required branch, this has been resolved by adding a check for default context and then saving the model there if it is mentioned. | Decision Management |
SR-D89012 | 550799 | DelegatedRules refresh icon made accessible | When using Accessibility, the refresh icon in pzDelegatedRules was being read as "Link". This has been corrected by adding text for the refresh icon. | Decision Management |
SR-D89428 | 550391 | Data Flow StartTime uses locale timezone | The start time of the dataflow was displayed in GMT instead of the operator locale timezone. This has been corrected. | Decision Management |
SR-D89643 | 548290 | Old Tumbling Time data in event strategies given TTL for cleanup | Old Tumbling Time data keys in event strategies were not being cleaned up, causing Cassandra timeouts after the dataflow run had been running for several months. The longer the dataflow was running using standard compaction, the more the data was potentially spread out across SSTables and the slower it became. This has been resolved by adding a 'time to live' value for tumbling time windows, and event strategies has been switched to use leveled compaction by default. | Decision Management |
SR-D94409 | 553302 | Strategy Explain message includes Component ID | The Component ID has been restored to the Explain mode message for strategy results. | Decision Management |
Low-Code Application Development
8.3.3 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D72141 | 542661 | Approved flow rule image unlocked | When the Approval Required check box was enabled for rulesets (i.e another person with access to this work queue should approve changes to the rules), a rule which was approved was unlocked and moved back to the original ruleset as expected, but the binary image associated with the flow rule remained locked and any other user other than the one who previously checked in the rule was denied access with a "check out failed" error. This locking error has been resolved by modifying the Rule-Obj-Flow!CleanUp activity to set Param.IgnoreInstanceLockedBy = true. | Low-code app development |
SR-D76492 | 549968 | Added check for test case creation when cross-site scripting security enabled | Test case creation was failing. Investigation showed that when the "Cross-Site Request Forgery" security setting was enabled, the CSRF token and Browser fingerprint were not included in AJAX calls, and the Ruleinskey was not getting passed. This has been resolved by adding a check to evaluate whether security measures are included or not when making a server call from AJAX, and including the tokens required when appropriate. | Low-code app development |
SR-D78467 | 542317 | Component rule check added to suppress unnecessary guardrail warnings | After creating a component application using Configure > Application > Components, guardrail warnings were seen when saving the component. The component application allowed adding rulesets or other applications, but did not have all the tabs found in a normal application, so there was no option for adding the associated classes to define the UI class, Integration class and data class in the component application. As component is mostly a part of (or embedded inside) an application, this function was not given options to justify or suppress guardrail warnings like Rule-Application. To resolve this, a check has been added for component rule before generating guardrail warnings for Empty UI page, Empty Integration class, and Empty Data class. | Low-code app development |
SR-D79397 | 546415 | Rule-Utility-Function references updated with library information | The "changeSystemName” operation failed. This was traced to the function “getLocalizedValue” (Rule-Utility-Function) being saved into the PegaFS library due to runtime resolution based on the function signature even though the actual Rule-Utility-Function from “Pega-Rules” ruleset needed to be picked in this case. To ensure the correct ruleset is picked, Rule-Utility-Function references have been updated with library information to resolve the resolution collision scenario. | Low-code app development |
SR-D80539 SR-D88451 |
544793 550847 |
Testcases are not available for 'access when' rules | Attempting to create test cases for access when rules resulted in guardrail warnings about the need to create a test case. Because Test Cases are not available for the Access When rule type as per Pega expected behavior, the guardrail warnings are not valid and have been removed. | Low-code app development |
SR-D85111 | 549196 | Paging method updated for Select All in Broken Queue | After clicking the 'Select All' box in Broken Queue In Admin Studio, scrolling up and down rapidly caused the checkboxes to be unselected. This was traced to the use of progressing paging in this scenario, and has been resolved by removing progressive paging and replacing it with the out of the box '1 of X' paging method. | Low-code app development |
SR-D87671 SR-D87673 |
547572 548626 |
PegaCESvcsIntegrator security updated | Security updates have been made which now require authentication to consume the services from the PegaCESvcsIntegrator package. | Low-code app development |
SR-D90520 | 552017 | REST parameters updated for SauceLabs compatibility | After configuring a call to SauceLabs testing through Deployment manager, the REST call was timing out. Investigation traced the issue to SauceLabs changing its parameter name from "browser" to "browsername", and the Pega parameter names have now been updated to reflect that change. | Low-code app development |
SR-D90544 | 550371 | Corrected row focus for deleting in App Studio case model | When attempting to delete a row of properties from the second page of the data model of a case type while using App Studio, clicking on the delete icon brought up a dialog box asking for confirmation for deletion but at the same time the screen went back to the first page of the data model instead of remaining on the second page. Because of this, clicking on the OK button to confirm the deletion caused a random property from the first page to be deleted instead of the targeted row of the second page as expected. This was due to the refresh being triggered immediately within overlay UI actions, and has been resolved by updating the first trash icon action set for the section pzExpressFieldActions to be a modal instead of an overlay when launching local action. | Low-code app development |
SR-D92158 | 555083 | App Studio performance improvements | In order to improve performance for opening data models, submitting changes, and opening views in App Studio, pzShowDataTypeInExpress has been modified to remove a readonly condition that caused a database query for every row. | Low-code app development |
Mobile
8.3.3 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D68572 | 543002 | Added check for duplicate attachment names with S3 | S3 Storage does not allow duplicate file names, but the AttachContent function was allowing duplicate file attachments. Due to this, the sync was failing to attach on the server and the message was never communicated to the client. This has been resolved by adding a check for duplicate file names when the storage is repository. | Mobile |
SR-D73237 | 539124 | Pagination updated to resolve repeating Pulse notes | After adding a case and entering 15 Pulse notes, scrolling down resulted in the notes being duplicated. Investigation traced this to entering more than 10 posts in a single interaction on a previously empty case when "Progressive pagination" was enabled for the repeating dynamic layout. On Private Edit, if the pagination was changed to "NONE" then the issue was resolved. Pagination depends on the pzPagingStartDateTime property, which is set on D_pzFeedParams, but since there were no results in this scenario this property was not being set. To resolve this, an update has been made so that pzPagingStartDateTime will be set if it is empty. | Mobile |
SR-D74246 | 543724 | Accessibility improved for Pega Survey Question pages | Question Pages in Pega Survey lacked accessibility. This was traced to aria-label not being generated for Radio buttons and Drop-downs, and "title" not being generated for other controls used in Question and Question Pages. This has been resolved. | Mobile |
SR-D76620 SR-D85551 |
544576 548075 |
Resolved touch events issue with updated Google Chrome | After upgrading Google Chrome, touch events on a flow action under the Action Button in a case or on the application under "Launch web interface" were not reacting and the flow actions were not accessed. Investigation showed that Google Chrome's latest upgrade (79.0.3945.130) removed the ontouchstart property in the window, causing the isTouchable capability identification method to fail. This has been resolved by adding a check for navigator.maxTouchPoints to identify for Google Chrome whether the device involved has a touchscreen. | Mobile |
SR-D82882 | 544165 | Special characters excluded in the create tag activity | The system was allowing the creation of a tag with special characters at the case level from the Actions tab. This was traced to the pxCreateTag activity 3rd step, which passed the current page parameter without invoking the pyValidateTagName activity. This has been corrected by updating the logic. | Mobile |
SR-D83630 | 546142 | IsQuestionHidden property added to skip validating hidden questions | After configuring a simple question which had a validation rule defined on it and a display 'when' rule configured to show or hide it based on another question condition validation was still being fired on the hidden question and it was not possible to proceed. This has been resolved by adding code to skip validations for a question if it is hidden, based on the pzIsQuestionHidden property. | Mobile |
SR-D85780 | 547813 | Corrected iosVersion handling for getDirections | When opening the map function in the iPhone app, it first navigated to Google maps but clicking on 'get directions' opened Apple maps. This was traced to pzpega_control_actions_getDirections. When using the getMapURL function the value being assigned for iosVersion dictates the behavior: If the iosVersion is greater than 8 it opens Google maps, else Apple maps. However, an error caused the value to be sent as string instead of integer, causing the iosVersion check to fail. This has been corrected. | Mobile |
SR-D86079 | 548108 | Label truncation added for pinned item title | While pinning a Space, document, or URL, the length of the item title was causing validation issues if it exceeded 64 characters. This has been resolved by modifying the pzGetPins activity to truncate pyLabel to 64 characters using the truncateLongText function. | Mobile |
SR-D89427 | 548936 | Corrected Microsoft Internet Explorer displaying checkboxes as sliders | Checkboxes were displaying as sliders in IE version11.1304.17134.0 due to IE returning Table pc 2.0. Since Pega HTML class includes tablet, .tablet related styles were getting picked up and displaying the checkboxes in tablet mode. To resolve this, a check has been added to pyIsTablet to evaluate correctly at runtime. | Mobile |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.3.3
Reporting
8.3.3 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D53176 | 541792 | Error when adding function filter will persist | When an exception occurred while adding a filter in the report viewer, the error was shown but cleared due to an immediate refresh of the parent section. Analysis found that step2 of pzGetFiltersFromContent was failing, after which the error was shown, the section reload happened, and the error disappeared. To resolve the error being cleared prematurely, the pzOnLoadReloadReport control has been modified so that when there are messages on the top level page (pyReportContentPage), a parameter will be set on HarnessContextMgr to not to clear them during the next refresh call. | Reporting |
SR-D75097 | 539515 | Improved handling against formula injection attacks in Export to ExcelJJ | Every time a possibly vulnerable cell value was found during Export to Excel, the value on that cell was modified to prevent a formula injection attack. If the value was non numeric, it would still render an apostrophe, although it should be hidden. Previous work on this issue involved the addition of a DSS which allowed this security to be disabled if the Excel was going to be consumed by an external tool, but the security implementation used to protect against calculation injection has reworked the ExcelSecurity utility function to allow the ability to change the cell style of a cell that is potentially vulnerable to formula injection attacks. This change no longer changes the cell value but instead applies a new cell style that has quotePrefix enabled. | Reporting |
SR-D79796 | 544947 | Updates made for deprecated Fusion chart styles | Trying to change the background colors or font sizes for the values on the x-axis and y-axis in a report was not working. This was traced to Fusion deprecating the use of `<styles>` definitions with the introduction of JavaScript charts, and has been resolved by updating the code to compensate for this change. | Reporting |
SR-D80589 | 544840 | Check added before clearing Report definition custom filter section page | When using a Custom Section in the Report Viewer, the Page referred to at the Prefix was getting reset while running the report. Investigation showed the page was being reinitialized in pzCreateCustomFilterPage step 2, and this has been resolved by adding a 'when' rule for clearing the custom filter page. | Reporting |
SR-D83060 | 547918 | Repaired History class report column sorting | Attempting to sort any of the columns in a report using the History class did not render the results and the error "Cannot render the section" appeared. Tracer showed a Fail status for some out-of-the-box activities with the message "java.lang.StringIndexOutOfBoundsException". Investigation showed the logic in pzMergeAutoGenForProp activity was failing because the pyIsFunction property was not set on the UIField pages for function columns. To resolve this, the logic for pzMergeAutoGenForProp has been modified to get pyIsFunction from the field name. | Reporting |
SR-D83373 | 545750 | Stage Label name displayed in chart | When pyCaseStatusControl was used, the cases label was displayed as $label instead of the Case Name. This was related to the version of Fusion Charts included, and has been resolved for this release by modifying library code in fusioncharts.js to fix the issue in datasetrollover listener code. Fusion Charts will be upgraded in v8.5 for a more complete solution to this issue. | Reporting |
SR-D86864 | 548092 | Very long auto-generated index trimmed for use in Report Browser | The creation of a new report via the user report browser failed if there was an index with a long name (over 30 characters). The out-of-the-box method automatically generated the prefix, but the Report editor could not handle the very long declare index name and as a result did not consider properties from the embedded pages. To resolve this, pzUpdateAssociation and pzInsertNewReportColumn have been updated to trim the prefix for the declare index to 30 characters and allow for adding a new column to the report. This work does not cover adding a new filter to the report, as that fix would require substantial changes to reporting logic. | Reporting |
SR-D91038 | 553163 | Corrected report with combo chart in Case Manager portal | After adding the required columns a report in the report viewer and then adding a combo chart and dropping the summarized column on the y-axes and group by column on X-axis, clicking on "done editing" generated the error "pyUI.pyChart: You must have at least two Aggregate Columns in the chart series .pyUI.pyChart.pyDataAxis(1).pyChartOutputType: A Combo chart requires at least 1 Chart Type be a Column". Investigation showed that the second DataAxis page was getting deleted in the pzCleanChartDataAxis activity, causing the validation to fail. This has been resolved by adding a 'when' rule to "pzChartIsSingleY" that checks for "SingleYAxisClustered" chart and refers the same in pzCleanChartDataAxis to skip the data axis deletion. | Reporting |
Security
8.3.3 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D64566 | 547513 | Option added for redirect to SAML IDP on logout | An enhancement has been added which provides a check box to choose to redirect to SAML IDP on logout from Pega. | Security |
SR-D75498 | 545068 | Resolved null-pointer exception for Token based Authenticated Rest | When logging in with auth0 OIDC auth service and then trying to use connect-Rest with an authentication profile using an auth0 provider, a null pointer error was generated indicating connect-Rest could not find the Access token. Even thought the Authentication service (OIDC) and authentication profile (authorization grant) both had the same scopes (“openid profile email”), OIDC flow and authentication profile save the Access Token with different scopes. Specifically, OIDC saves the token with an extra trailing space. Handling has been added to correct this. | Security |
SR-D79181 | 551123 | OKTA receives parameters on logout | When using an OIDC logout endpoint with a parameter set as a data page value, the data page retrieved the ID Token from the database, but when logout was clicked the datapage name was being displayed in the browser instead of the IDToken. To resolve this, code has been added to support sending ID token parameters for logoff endpoint for OKTA logoff using OpeniD connect. | Security |
SR-D86011 | 548152 | Browser fingerprint validation issue resolved | After upgrade, Pega logoff was happening automatically within five minutes while using Microsoft Internet Explorer. This was traced to the COSMOS-based portal in Microsoft Internet Explorer 11 generating different hashes for different parts of the screen, causing a "Browser fingerprint validation failed" error because of the pzBFP token mismatch. To resolve this, an update has been made to exclude the graphic components for calculation of browserfingerprint. | Security |
SR-D90452 | 551808 | SSOPreAuthenticationActivity runs until success | When a user visited a public-facing application via a Single Sign-On (SSO) URL that redirected to SAML IDP for authentication, the first time the URL was hit the system correctly executed pySSOPreAuthenticationActivity as part of pre-authentication to determine if authentication is possible/allowed. If the pySSOPreAuthenticationActivity set the pyAuthenticationPolicyResult to 'false', authentication was not allowed: the user was not redirected to the IDP and an error message was shown. However, if the same URL is hit again after that rejection without any changes, the user was redirected to the IDP for authentication because the preauthentication activity was not run again. This has been resolved by updating the system to continue to call the pre-authentication activity for the SSO URL until a success status is returned by the activity. | Security |
SR-D92837 SR-D89002 |
551004 549102 |
SameSite cookie setting updated for pre-authentication | In work done in previous versions to modify the SameSite cookie handling to support Mashups in Google Chrome v80+, SameSite was set to None only in case of an authenticated Pega-RULES cookie and not for a Pre-authenticated cookie. That caused the Samesite value to not be set when using a pre-authenticated cookie, and the blank value was treated as 'Lax', causing a login challenge. To resolve this, Samesite will be set to 'None' when using pre-authenticated cookie, which will match the way it is being set in authenticated cookie. | Security |
SR-D96395 | 555117 | CDK key loading modified for better database compatibility | Users were unable to log on to the system and received the error "There has been an issue; please consult your system administrator." Investigation showed the log errors stating "(dataencryption.DataKeyProvider) ERROR localhost - Could not get CDK from systemKeyManagementCache - System CDK is null". This was an issue specific to the MS SQL Server database when there were 6 or more CDKs in the database: CDK keys are loaded from database into Cache using an SQL statement which had the ORDER clause. By default, the ORDER clause treats NULL values differently on different databases, and this caused MS SQL databases to not load a necessary CDK key. To resolve this, the SQL query has been modified so the result will be the same for all supported daatbases (Oracle, Postgres & MS SQL Server). | Security |
System Administration
8.3.3 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D64523 SR-D52604 |
545670 548060 |
Stream Registration deprecated and replaced | Previously, Stream Registration, which was added as an extra layer of protection during the display of stream rules, automatically registered any streams being used in the context and checked this registry during reloadSection/reloadHarness calls to prevent Broken Access Control attacks. However, only an alert was thrown and no further action was being taken on it. With platform added support for URL Tampering, Stream Registration is no longer required and has been deprecated. The URL Tampering function has the capabilities to register for auto/non-auto rules and configure whether to display warning or reject the request for all the activities, and not just the stream rules. Note that URL Tampering will do registration/validation only when security/rejectTamperedRequests is explicitly set to true. | System Administration |
SR-D70872 | 545856 | Kerberos authentication parameters propagated for deployment | Attempting to perform a deployment using Kerberos authentication to an Oracle database failed with an authentication error. This was traced to the java system properties (for example, -Dname=value) required by the Oracle JDBC driver for Kerberos authentication intermittently not being set when connections were being made to the database. When they were not being set, the connection would fail due to authentication. This has been resolved by ensuring the java system properties (-D's) that were provided to the 'custom.jvm.properties' property in the collection of deployment related *.properties files are being propagated to every part of the deployment scripts. | System Administration |
SR-D77956 | 547256 | Column type configured correctly in Care Management | When using database tables for concrete class groups with the column pyassignedoperator as character type without size, upon installation on higher environments the message "ERROR: length for type char cannot exceed 10485760 for colum "pyassignedoperator" CHAR (2147483647)" appeared. As a workaround it was possible to manually change the column type, but this issue has been resolved by updating the handling of BPCHAR types while cloning the table. BPCHAR type will be taken as CHAR. | System Administration |
SR-D78274 | 544091 | Handling added for dual privileges with MSSQL | After setting up dual privileges, the Admin user was able to create a table but the base user received an "insufficient privileges" error. Investigation showed this was an issue when using MSSQL: the generated grant statements used the server login name as the user in the grant statement, instead of the database user. For all other databases, the username passed into the connection is the correct user to use for grants. Only MSSQL has a distinction between this connection user name (the login) and the database user, and since the login did not exist in the user table, the grant failed. To resolve this, when MSSQL is used, the system will fetch the underlying database user when determining the user for grant statement generation. | System Administration |
SR-D79178 SR-D92877 |
543310 551030 |
SameSite cookie setting added for Mashup support in Google Chrome v80+ | The Google Chrome browser version 80 and above now treats SameSite with a blank value as "Lax" by default, causing mashup scenarios to break. In order to compensate for this change, support has been added for setting SameSite=None in Cookie Settings; this value automatically includes the “secure” cookie flag, which enforces HTTPS for the Pega server and mashup. For mashups to work, SameSite should be set as None. Create a Dynamic system setting in the Pega-Engine RuleSet with the name “security/csrf/samesitecookieattributevalue” and the value "None" and restart the server. (The SameSite value "None" works only in secure HTTPS connections.) Note: The SameSite cookie may be set to None/Lax/Strict, based on the requirement. For cookie requirements other than mashup, it should be set as either Strict or Lax, depending upon your application. |
System Administration |
SR-D81572 | 551026 | JDBC URL handling added for Oracle over TCPS | While attempting to upgrade an environment over TCPS, the generateDDL.sh script was failing. The same environment ran without issue on Tomcat with the same URL. Investigation showed the JDBC url was not correctly generated while running the upgrade: in a standard scenario, there will be no spaces in the JDBC URL specified. However, because Oracle can send spaces as part of JDBC URL and cause this issue, an update has been made which will quote the JDBC URL argument for the ant target in setupDDL.xml. | System Administration |
SR-D84190 | 547172 | Post-Import Migration Agent query optimized | A Post-Import Migration agent belonging to the Pega-ImportExport Ruleset and set to run every 60 seconds by default triggered the SQL query "select ASTERISK from pegadata.pca_CWT_CXP_Work_Interaction" which ran for an excessive amount of time, caused a utilization spike, and then crashed the utility nodes. Investigation showed the excessive run time and load was caused by the query fetching a very large number of results. To better handle this scenario, the query usage has been updated. | System Administration |
SR-D84364 | 551399 | Check for circular references added to SearchInventoryImpl to prevent recursive call | An out of memory error was traced to SearchInventoryImpl infinitely recursing over a clipboard property, where the child property referenced a parent property and resulted in an endless loop. This has been resolved with the addition of a depth check to ensure that the search does not recurse infinitely. | System Administration |
SR-D85745 | 545904 | DASS and DAS associated to the Pega-ProcessCommander Ruleset | An upgrade was failing at the point of Pega Rules Upgrade in the Installer Instance with the error "Encountered database exception when preprocessing deferred operations <insert updatesCache instance DATA-ADMIN-SYSTEM PEGA not only if new>. This node not found in the database - Either the record was never saved or was deleted. Unable to join the cluster." This error occurred because the strategic application import during upgrade manually included a "systemname" DASS instance which had a value other than "prpc". This caused a override of the platform shipped DASS (with value "prpc), which is required by the upgrade. In order to avoid this condition, DASS and DAS have been associated to the Pega-ProcessCommander Ruleset. | System Administration |
User Experience
8.3.3 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D61560 | 539471 | Support added for multiselect control with SmartTip for iPad | When using a multiselect list control to a lproperty with Smart Tip configured, choosing one item on an iPad and then trying to tap or drag down the vertical scrollbar caused all listed items to disappear. To resolve this, the multiselect control has been updated to handle the popover exit on smart popover hover along with arrow key navigation support for tablets. | User Experience |
SR-D67012 | 537306 | Invalid dropdown time will retain entered time | If a datetime control using dropdown mode and a timeofday property had a validation error, on refresh the current time was being set in the dropdown. This occurred when selecting only one part of the time property (only minutes or only hours), and included an error indicating that the provided time was not a valid time of day value. To resolve this, an update has been made so that if this combination has a validation error, on refresh setting the user-entered time will be given in the dropdown instead of the current time. | User Experience |
SR-D73224 | 542628 | Case manager portal links working with SVG file | After modifying the pyPortalHeader to show a custom logo in the Case manager portal by saving the pyapp-logo.svg file into a ruleset and uploading the logo, none of the Case manager portal links or menus were working and a console error appeared. Investigation showed the SVG file stream was decoded and then encoded using the Base64Util.encode and decode, which was adding new line characters. To resolve this, step 4 in Rule-File-Binary.UploadFile Activity has been modified to remove the Base64 encode and decode. | User Experience |
SR-D74992 | 546875 | Improved CPMHC performance | After upgrade, slowness was seen when using the CPMHC application. This has been improved by adding Microsoft Internet Explorer 11 optimization with the most recent javascript API. | User Experience |
SR-D75421 | 552435 | Parameters added to protect font size in HTML to PDF conversion | Pega uses the pd4ml external library for HTML to PDF conversion. As part of this, the adjustHTMLWidth API was called to avoid truncation issues, but this resulted in font-sizes not being preserved in the exported document but rather changed as necessary to fit in the PDF. In order to support preserving the font size during export, the pyPDFSettings datatransform will call the protectPhysicalDimensions API along with setHTMLWidth, and avoid calling adjustHTMLWidth. With this change in place, any content width should not be set explicitly to some value as it may lead to truncation if the space is not sufficient. If there is no width set, text will wrap automatically. In case of tables with large number of columns, truncation issues may be seen: to avoid such issues, pass a larger htmlWidth value so that table will be reduced in size and in the rest of the page, font-sizes are preserved. | User Experience |
SR-D75964 | 542685 | Check added to ensure enter key triggers autocomplete onchange | Tenant details were not loading, and no requests were seen being generated after the selection of the tenant. Investigation showed that for autocomplete control, a dummy onchange attribute was added, i.e., data-change = "[]". When the value was selected using the enter key, fireACOnElem was not executed in processEvent function as the condition isExplicitConfig(target) was true. To resolve this, an additional check attr(data-change) != "[]" has been added for ClientConditionExecutor to trigger fireACOnElem. | User Experience |
SR-D77557 | 544682 | Support added for custom portal with temporary work object | After creating a screen flow with temporary work object in a custom portal, entering some data and clicking caused the screen to be blank after browser refresh. The same process from Designer Studio or the Case Manager portal worked as expected. Investigation showed that SPA applications with displayonpage actions was sending empty parameters to render the harness due to the 'doUiAction' activity clearing additional pages for single frame portals. To resolve this, the 'when' rule in step14 has been updated to support a custom portal and temporary work object. | User Experience |
SR-D78196 | 547264 | Prepending zero to single digit hour and minute for iOS native calendar | The iOS native calendar was not parsing datetime values if h m values were less than 10, for example 09:05, resulting in an exception and freezing the app. To resolve this, the system will prepend a zero for iOS if the hour and minute values are less than 10. | User Experience |
SR-D78258 | 545359 | Corrected element pick for CaseAssetsParticipants in UI-Kit | The pyCaseAssetsParticipants function from UI-Kit in 8.3.1 was configured with 'launch local action' instead of 'list open local action'. Because of this, the hover event was failing. While there was a workaround of using the action ‘List Open Local Action’ instead of selecting ‘Launch Local Action’ , this has been resolved by adding a check to pick the correct element. | User Experience |
SR-D78557 | 551840 | Check added before generating aria-label | To improve accessibility, logic has been added to dynamic layout generation that will check whether the text value is empty, and if so an aria-label will not be generated. | User Experience |
SR-D78659 | 545758 | Resolved CSV validation overflow in Google Chrome | When using Google Chrome, validation of records was getting stuck in the UI at 32000+ while importing a CSV file with many invalid records when using the import option in Data type’s local data storage. Investigation showed the Call Stack size limit was exceeded in the Google Chrome dev tools due to the ":first" selector being passed to the Jquery find() method to find the element from the first element child of the XML doc. This selector causes maximum callstack exception when the document is large, and this is a deprecated selector in later versions of Jquery. To resolve this issue, the XML function in pzpega_tools_asyncprocess has been updated to replace the ":first" selector. | User Experience |
SR-D79526 | 544787 | ClassName will be updated when element model page is updated | In the event of traversing from Parent to Child, The Declare_pyDisplay datapage in clipboard was not in sync for the Child as the Active UI Element. This was traced to reliance on the pyClassName field of data element model (Declare_pyDisplay.pyDisplay(Developer).pyUIActive(1).pyClassName) to update the client side UI based on a particular condition evaluation. Because some of the properties in the element model are updated only if the page is newly created, using a page which was already present and updating values with some other UI actions was only updating specific properties which did not include pyClassName. To support this use, modifications have been made so the pyClassName will also be updated whenever the page is updated. | User Experience |
SR-D80696 | 548822 | Autocomplete context fetched for dropdown in nested case | The autocomplete dropdown was empty when using SmartTip and the down arrow was clicked while opening an autocomplete case within an Interaction case. Opening the service case directly in a new tab populated the dropdown values as expected. This has been corrected by registering context changes just before the content is fetched for the overlay. | User Experience |
SR-D80825 SR-D86200 SR-D84180 |
546571 549030 550228 |
Resolved tab appearance issues related to resolution support | When trying to add multiple tabs on larger screens, once the first row was filled with tabs then new tabs began appearing at the bottom of the layout group. The layout group worked as expected with the tab overflow having the right and left arrows with the dropdown on smaller screens. In addition, @1440px the overflow arrow on the right side was not working correctly, showing as grayed out even though focus was not on the last tab. These issues were traced to taboverflow with add icon not working correctly at certain resolutions. To resolve this, the todisableslide function has been updated to consider add icon width and layoutgroup has been updated to consider parent width. | User Experience |
SR-D80916 | 544966 | Special characters encoded to resolve Tomcat error | When hitting down-arrow in a subprocess shape's "flow name" box, the error "Server Error, status = 400" appeared on screen. Investigation showed this was caused by Tomcat rejecting any request it considered to have unsafe characters. To resolve this, encodeURI will be used on the query string in the HTTP wrapper of the smartprompt, to encode the query string. | User Experience |
SR-D81726 | 544009 | Corrected refresh section for grid dropdown using Google Chrome | When using the Google Chrome browser on a Windows machine, an incorrect click event fired when dropdown options were changed inside a grid was causing refresh section to not work properly. This has been resolved by suppressing the 'click' action on dropdown in the 'ui_events.js' file. | User Experience |
SR-D81924 | 548648 | Resolved Ajax and autocomplete errors in mobile offline | When logging into the app for the first time on a new session to navigate to scheduled contacts and reschedule one, clicking the right or left arrow icons to move through dates resulted in an "AJAX request failed" error. POST 500 errors were also logged in the Developer Tools console with every click of the icon. It was possible to close the error and continue, and navigating to another screen and returning or leaving the app and restarting it resolved the issue. This has been resolved by adding dataOnly for getParentWorkItem to support a Parent online and child offline scenario. In addition, an issue with console errors caused by a popup when autocomplete did not have any results has been corrected with the addition of a null check to clear the results div only if it exists. | User Experience |
SR-D82148 | 546761 | Localization improved for ToolTips | Attempting to use the Field value to localize the tooltip for Hour and Minute resulted in the time being displayed as "tooltip: Hour". Support has been added for localizing these fields using pyTooltip. In addition, an issue with the tooltip still being displayed after switching helper text to None and saving (without manually clearing the existing text) has been resolved with an update that will clear the tooltip value when helper text is selected as 'None'. | User Experience |
SR-D83476 | 550785 | Layout Group (Tab) keyboard navigation behavior made consistent | When using keyboard navigation for Layout Groups (tab), arrow keys (up/down/left/right) are used to navigate the tabs once focus is set on the first tab, and the tab contents of each tab is opened automatically. It was noted that pressing tab a few more times caused the second tab to gain focus, but the contents of the tab did not open automatically or when enter was pressed, which was unexpected behavior. For accessibility best practices, tab focus should not be allowed on tab groups. To resolve this issue, this has been removed and the system will continue to follow auto activation of tabs on arrow keys. | User Experience |
SR-D83931 | 545871 | Header style inheritance corrected | When a header style for a container was explicitly set, any layout underneath inherited that style when using container formats set to 'Use Skin Base Settings'. This has been resolved by increasing specificity for the header title. | User Experience |
SR-D84436 | 546247 | Popup position calculation check added for frameless portals | When trying to select any node under the agent, the complete section was scrolling up to the top. This issue was observed in frameless portals when the user scrolled down and launched the popup, and was the result of the the parent div's scrollTop value being added to the popup's "top" value. To resolve this, an additional check has been added for frameless portals (document.body.scrollTop) while calculating the popup's position. | User Experience |
SR-D84882 | 551988 | Resolved duplicate messages from HarnessErrorList section | When using pyCaseErrorSection to call HarnessErrorList and display any errors on Clipboard page, when the Clipboard page had more than one error then the error message was shown multiple times. This has been resolved by adding a check that will iterate through the errors to see if it is present on the page already. If it is present it will be ignored, and if it is not present, then it will be added. | User Experience |
SR-D85228 | 548199 | Focus retained after cascading dropdown selection in Microsoft Internet Explorer 11 | Given two DropDown fields sourced with data pages where the first dropdown value was passed as a parameter to the second dropdown source data page, at run time using Microsoft Internet Explorer 11, If the first dropdown field value was selected using the tab key, the focus shifted to the second drop down field and was immediately lost. Pressing the tab key again set focus to the top of the window. This has been resolved by updating the system to retain focus upon cascading dropdown refresh when using Microsoft Internet Explorer 11. | User Experience |
SR-D85339 | 548180 | Calendar AM/PM corrected for Chinese locale | When using the Chinese locale (zh_CN), opening a calendar control in the Report definition to select filter values resulted in the Calendar tab dropdown showing "上午" (AM) when the system time was in "下午" (PM). Investigation showed that when generating a non-auto date time control, ampm text (i.e. string value) was compared with the generated select component using locale specific values which did not match any time, so AM was always selected as it was the first value in the dropdown. To resolve this, the system has been updated to use the locale specific AM PM values for non-auto-generated date time control. | User Experience |
SR-D85400 | 549060 | Reset focus to Rich Text Editor after Spellchecker use | After correcting the misspelled words as suggested by SpellChecker, the corrected words were not reflected in the email. This was traced to a focus issue in Rich Text Editor, and has been resolved by ensuring the focus is returned to Rich Text Editor once the suggested corrections are accepted. | User Experience |
SR-D85848 | 551846 | Improved accessibility for tab key navigation in tables | When using the tab key to navigate to the first cell in a table, the cell itself was taking focus instead of the link and the link did not open when 'enter' was hit. Instead, hitting tab a second time opened the link. By default, the standard was to have tabIndex set on the first cell of every row for accessibility so the link inside the cell gets the next level of focus. To resolve the navigation issue and avoid user confusion, while adding `tabIndex` to first cell of every row, the system will check for focusable content and avoid adding `tabIndex` to `td`. | User Experience |
SR-D86274 | 552507 | Resolved validation conflict with error message display | Error messages set through property-set- messages or edit validate were disappearing when out of focus from the date field if the field had a mandatory condition. This was traced to an edge condition where required validation was conflicting with another error message, and has been resolved by modifying the code so the system will not validate required on blur if the input has another error message. | User Experience |
SR-D86360 | 548570 | Handling added for declare expression targets when harnessid is null | Client expression calculation was not happening in Perform harness. Research showed that whenever text input calculations happened, the expression_calculation js setTargetValuesSuccess function was called but the elementList parameter was passed as null due to the inputHarnessId parameter being undefined. This has been resolved. | User Experience |
SR-D86429 | 551371 | Badge text Control Format supports declare expression target | In the user screen, some properties are shown in 'Text' control with 'Badge text' control format. When the value of this property was set in Data Transform, it appeared correctly. When the property value was set in Declare Expression, no background color was set. This was traced to a missed use case in the implementation work for vtable, which resulted in the control format mentioned in presentation tab of control not being applied on markup when the property was a declare expression target. This has been corrected. | User Experience |
SR-D86694 | 548667 | TeamMembersWidget section include corrected for PortalNav | An error was seen when attempting to include the pyTeamMembersWidget section inside a pyPortalNav section. Investigation showed there was a data corruption in the section. As a local change, it was possible to 'save as' the section to a ruleset and delete the section embedded in the grid, then drag an embedded section layout from Layouts, add it to the grid row, and select pyTeamMembersWidgetRow. As a permanenet resolution, the corrupted section has now been replaced. | User Experience |
SR-D86826 | 549209 | Ensured refresh for Cosmos CaseAssignments pzInskey | An app built on theme cosmos,pzIsAJAXContainerContext was failing. Investigation showed that D_CaseAssignments was not updating the pzInskey after a post-assignment action, and this has been resolved by ensuring that Assignment and stages are refreshed after submit. | User Experience |
SR-D87203 | 550994 | Required field accessibility improved | In some instances, there is no non-visual indicator that a field is required. Because the asterisk character is commonly ignored by screen readers, the <required> attribute or <aria-required> should be used so that non-sighted users have explicit information about the required status of the field. To enable this, when client-side validations are disabled on the harness and clientValidation attributes are absent, the system will run an additional check so that aria-required is added. | User Experience |
SR-D88057 | 549110 | Calculation logic updated for SLA with Goals and Deadline | The DateTime control was displaying the date reduced by one day in runtime if it was configured with an SLA using Goals and Deadline. This has been resolved by removing the seconds and milliseconds in the calculation. | User Experience |
SR-D89672 | 550524 | Custom error label styles work for 'required' | When using the default 'required' error message, the class "labelError" is added when the required field is empty. However, when the default 'required' is replaced by a custom error message, a UI error was seen because the class "labelError" was not added when the field was empty. This was traced to an error in the non-template to template code transform, and has been resolved by updating webwb_pzpega_ui_dlcelltemplate_js to add the labelError class based on the presence of an error message. | User Experience |
SR-D90284 | 551471 | Added 'when' condition to class change in ShowColorPicker activity | When using an included color picker control in a section, selecting a color resulted in the color picker pyworkpage class content changing to Embed-Skin-Controls. This has been resolved by modifying the previous behavior of always changing pyWorkPage's obj class as part of the ShowColorPicker activity by adding a 'when' condition to change the class only if it is empty. | User Experience |
SR-D90331 | 553606 | Context-specific APIs used for RefreshHarness with AJAX container | After creating an interaction case and letting it go idle, attempting to continue and process the service cases in that case was intermittently resulting in a transaction ID mismatch error. This was traced to handling in the AJAX container, and has been resolved by updating the system to use context-specific APIs for refreshHarness case in doc_submit. | User Experience |
SR-D90711 | 553090 | Portal harness maintained when opening email link | When an email link was opened (pxOpenAssignmentLink), the portal harness was replaced with the case Perform harness. This has been resolved by ensuring the 'flex' CSS class is added for the portal harness div when using pyMobileSnapStart and a top navigation portal. | User Experience |
SR-D91846 | 550789 | Complex question checkbox labels displayed | Checkbox labels were not shown when a survey was rendered in read-only mode. This has been resolved by updating pzComplexQuestionCheckBoxTemplateRowDetails and ComplexQuestionCheckboxTemplate section to show labels and icons for check boxes when a complex checkbox question is displayed in read-only mode. | User Experience |
SR-D91964 | 551090 | Negative values in optimized table filters show markup | HTML markup was shown in the filter popup when Number control was used in a Table cell and there were negative values in the cells at runtime. This was traced to work done on template grid filtering, and has been corrected. | User Experience |
SR-D92913 | 553903 | Aria-collapsed replaced with aria-expanded to improve accessibility | Previously, the system used the aria-collapsed attribute for the left and right navigation toggling. In order to improve accessibility, this attribute has been changed to aria-expanded and the value will be set to true/false accordingly. | User Experience |