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.4.1 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D68235 | 534783 | 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-D70674 | 535485 | Handling added for mobile upload of filename containing dots | An issue with uploading a file name containing dots (such as 2019.12.12) while using the mobile browser has been resolved by updating the AttachFile activity in the propertyExist function. | Case Management |
SR-D70768 | 547018 | 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. | Case Management |
SR-D73536 | 538403 | 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 RD pzFetchApplicationLogo. | Case Management |
SR-D75835 | 539304 | Added handling for Google Chrome drag and drop of Outlook email | Attempting to drag and drop an email from Outlook to a case opened in Google Chrome resulted in the email being moved to the Outlook deleted folder. This was traced to Google Chrome defaulting to defining the "dropEffect" attribute as "none" when the expectation is it should be "copy". To resolve this, the recommended handling from Microsoft has been added as an event to make a copy (and not a move) an email from Outlook when dragged and dropped with Google Chrome. | Case Management |
SR-D76291 | 547843 | 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-D79113 | 543723 | Updated DisplayAttachment to handle SIngleClick download from Case Worker portal | On using the script "pega.ui.HarnessActions.doAttachmentSingleClick" in the Worker portal to download attachments displayed within a screen flow, the entire application was hanging and no action was invoked even on clicking the Continue or Finish buttons of the screen flow. Whenever an attachment is downloaded using the script function pega.ui.HarnessActions.doAttachmentSingleClick() , an iframe is used and changetracker is called to communicate data between different iframes. However, the case worker portal is a single thread model while the manager and admin portals are multi threaded, which resulted in changetracker freezing on the worker portal. To resolve this, the DisplayAttachment HTML rule has been updated to build the necessary changeTrackerMap for the worker portal. | Case Management |
SR-D84480 | 546189 | 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 | 548165 | 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-D88141 | 550010 | 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 |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.4.1
Conversational Channels
8.4.1 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D54120 SR-D75636 |
542260 549349 |
Improved handling for attachments not using UTF-8 encoding | When an email was received that used a charset encoding other than UTF-8, special characters in the HTML body were not displayed and instead the replacement character was shown. To resolve this, the system will read the encoding from the email rather than use the meta tag, and will add the attachment's HTML encoding information in Data-WorkAttach-File so that the same can be used to process and display the original HTML properly. | Conversational Channels |
SR-D63638 | 544018 | 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 |
Data Integration
8.4.1 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D53835 | 524214 | 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-D59158 | 534821 | CMIS Update Request corrected for single Value List property | After upgrade, following the process of searching Documents by connecting to CMIS and getting the results, then selecting the document, editing it, and resubmitting the document to the CMIS repository by clicking on the update button worked when passing a multi row of values to the Value list property but failed when passing a single row of value to the Value List property. An error was generated with the message "pega.pegarules.pub.services.InboundMappingException: Failed to process CMIS service 'updateProperties' ". In 7.2, updateProperties CMIS functionality uses the Apache API opencmis.commons.spi.ObjectService#updateProperties() whereas in 8.3 it is refactored to use the API opencmis.client.api.CmisObject#updateProperties() and this API allows multi-valued property to be updated with multiple values only. To resolve this, the CMIS connector has been modified to update the properties implementation such that it will pass-on the property update value to Apache OpenCMIS API as either List or Scalar based on the property definition (whether Property is configured as multi-valued or not). | Data Integration |
SR-D60284 | 550560 | 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 | 533031 | 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-D61199 | 533480 | Support expanded for postgres versions and logging improved | While trying to import data into the Data Type Tables using a CSV file and selecting the 'Add or Update' option, an error appeared and the import failed. Using 'Add or Delete' worked as expected. This was traced to the import of data failing for postgres version 10.x because UseMerge for postgres did not use merge if the version of Postgres was not 9. Support has now been added for versions of Postgres higher than 9 in SQLGeneratorPostgres.useMerge(), and logging has been enhanced to improve triaging issues such as this. | Data Integration |
SR-D62490 | 527292 | Application/CSV type explicitly included to assist Android Chrome | Android Chrome was unable to recognize a CSV file under content-type="application/*" , resulting in the download being rejected. To resolve this, "application/csv" will be explicitly included in the request content type when appropriate. | Data Integration |
SR-D63774 | 540508 | Resolved .PDF extension preview issue | Previewing a PDF that had the extension capitalized as ".PDF" did not load, but one with the extension ".pdf" worked. This has been corrected by modifying pxUploadFile and pzUploadFileToADocument to convert the filetype extension to lowercase to prevent possible preview problems. | Data Integration |
SR-D64083 SR-D87093 |
542887 548146 |
Compilation logic error corrected | A compilation failure on upgraded systems using the JDK 11 compilation of libraries that include Pega 7 functions that have INCLUDE statements that are not supported in JDK 11 was traced to a logic error added when enhancing debug logging. This has been corrected. | Data Integration |
SR-D64197 | 536590 | Handling added for passivated file upload and attach | When storage type repository was configured and any file type other than image was uploaded while pyIsStreamBasedUpload was set as true, uploading a file and keeping it idle for 15 minutes before clicking on attach caused pyattachInputStream to become null on the DragDropFileUpload pagelist. This caused an activityterminateException in tracer and the assignment was not submitted. This exception was due to a check in attachFile activity that calls terminateactivity when streambasedupload is true and attachinputstream is null. To resolve this, a validation rule has been added to check if the page exists, streambasedupload is true, and pyattachinputstream is null or has a value. If it is NULL, a message will be displayed about reattaching the file(s). | Data Integration |
SR-D64608 | 544389 | 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-D65112 | 541150 | Added support for imported rules to populate bixreportpage | Extract rules were not holding the filter criteria after upgrade while performing save-as (for the first time) of the imported rules from the previous version. Criteria were held when the filters were created in the new version. This was caused by BIX extracts created in earlier releases (7.x) not having bixreportpage included. When an environment was upgraded to 8.x versions, opening an extract required the bixreportpage to be populated with Report Definition metadata including the filters defined in the actual extract. Although the filters from the original extract were converted to filters that are acceptable by ReportDefinition, they were not being added to bixreportpage on opening the extract. To resolve this, the system has been updated to copy the filters back to bixreportpage on opening the extract in the upgraded environment. | Data Integration |
SR-D66615 | 536243 | API added to minimize calls to set parameters in datapage | Differences were seen after upgrade when using a datapage associated with a property which was application-specific and that had Data Access for the property defined as “Copy data from a data page" with parameters whose value was set by an activity from the associated property of type single page. Prior to upgrade, only one call was seen to set the values for the parameters in datapage, but post-upgrade multiple calls were used to set the values to these parameters. This was traced to logic used for extraction and invoking the perform, and has been resolved by adding the new API 'DeclarativeAction.shouldExtractWatchedProperties'. It will return true or false, depending whether the extraction of watch properties is needed or not. | Data Integration |
SR-D66674 | 538973 | DSS added for fall back to legacy decision table format | After upgrade and switch to IL, non-working decision tables created in one class had pyWorkPage mapped to another class. In the column, the properties were mentioned as "pyWorkPage.xxxxx", but at runtime when the non-working decision tables ran as standalone, the system did not ask for values to be entered to evaluate the result. Tracer showed the error as "Goal seek requires missing input property pyWorkPage.All_Offln_Trans_In on page pyWorkPage; details: (unknown)". Investigation showed that the Legacy assembly for the decision table used the lazy evaluation pattern to resolve the expression in the column header in the generated Java code. This resulted in the property for the column header only being read when it was used. However, for IL-based decision tables all properties are read immediately before any rows are evaluated, which requires the property already be present on the page. This missing property from the lazy assembly then resulted in the exception. To resolve this, Executable.generateOrCompileSource and Virtual tableassemblyHandler.useIL() have been modified to fall back to legacy decision table format if the DSS InternalLanguage/disableIlBasedDecisionTable is enabled. | Data Integration |
SR-D70569 | 538510 | Tracer retains modified user settings | User settings in tracer were not shown when the settings window was closed and reopened. Investigation showed that settings are filtered based on watchInsKey, but this parameter was passed as "null" for global tracer because of a missing condition to check the session type. This has been resolved by adding a check so the WatchInsKey parameter is passed if the session type is rule watch. | Data Integration |
SR-D70890 | 542872 | Enhanced diagnostic logging for automatic search re-index | To better analyze an out of memory error, enhanced diagnostic logging has been enabled for the below classes to get more information regarding re-index triggered automatically after search index is complete. PegaSearch.SearchManager.SearchInitlizationUtils PegaSearch.SearchManager.BuildIndicesTask Rule_Obj_Activity.pzLPFTSManagerRunBuildIndex.Pega_Search_Manager.Action PegaSearch.Indexer.AbstractIndexer |
Data Integration |
SR-D71041 | 537897 | Default compiler pool size increased | An issue was seen where the nodes were continuously terminating and Stream service was not started. Error messages indicated a "WARN - Long running request detected for requestor", and that tasks were waiting for the generic object pool. Analysis showed that it was possible for a deadlock to form during the startup of the system or during the first few rule executions and compilations when there were more than five rules trying to compile. Once the variable LibraryMetadata.TypeEnvironment.resolver (ClassLoader) is initialized, the problem would resolve. To prevent the deadlock, the default compiler pool size has been increased from 5 to 10. | Data Integration |
SR-D71145 | 536370 | 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-D71977 | 535603 | Obj-Browse will retrieve more than 50 records | After performing multiple skims, a newly added property was not retrieved when an Obj-Browse was performed. In Obj-Browse action, when a class is mapped to an external table and does not contain BLOB column pzpvstream, in a specific case where pxObjClass value is a reference to a parameter, a list of properties mapped to the class explicitly by querying pr4_rule_property table using NativeSQL is fetched. This call by default returns only 50 records: in cases where there are more than 50 properties for an external class, some of the properties from the obj-browse response mapping are therefore missed. To resolve this, the limit of 50 records has been removed from this NativeSQL call. | Data Integration |
SR-D72389 | 541948 | 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-D72886 SR-D76291 |
543756 541016 |
Check added for Repositories before saving attachment | When creating or updating a case through email listener, the Link-Attachment defaulted the pxStorageType to 'WebStorage'. This caused an issue when using PegaS3, which needs pxStorageType 'Repository'. To resolve this, a check has been added to see if Repositories are enabled, and if they are the storageType will be set accordingly. | Data Integration |
SR-D74534 | 538946 | 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. | Data Integration |
SR-D75053 | 540914 | Corrected Agent schedule time conversion | After upgrade, a mismatch between the agent configuration and schedule was seen, causing an agent scheduled at 6PM Europe/London time to execute at 6AM Europe/London instead. Analysis of the Agent schedule rule showed that if the pyStartAmPm property was empty, the internal code miscalculated the AM_PM string as AM. That meant that if an agent was configured with 24 hour clock format and was set to run at 18:00 hrs, it executed at 6AM. The workaround for this issue involved resaving the agent, triggering the data transform pzSetStartAmPm to correct the field pyStartAmPm, but the issue has been corrected by adding handling for the pyStartAmPm == "" corner case. | Data Integration |
SR-D75431 | 544199 | DMaps cleared to set correct JobScheduler next run time | When items were added into a QP, the items shown under Scheduled and weren't being processed immediately. Investigation found that the job scheduler which fetched the entries for QP to process wasn't running as expected, and the "Next run" time stamp for JS was incorrectly populated and entries weren't being fetched at all. To correct this, updates have been made to clear entries in DMap belonging to the node during shutdown and from the membership listener so the correct next run time is set. | Data Integration |
SR-D75945 | 541084 | Data transform updated to remove @java references | The usage of @java expressions in data transform rules has been deprecated. The pyProcessDocumentCompletedEvent data transform was given as an extensible data transform intended to be overridden by customers to have their own processing logic of document completion event, however this caused confusion and when used in the out-of-the-box form it resulted in an error when saved at design time. To resolve this, the shipped data transform has been updated to call to a Rule-Utility-Function to return the file's base name, and the @java references have been removed. | Data Integration |
SR-D76861 | 544607 | 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-D78531 | 542002 | Encoding added for special characters in JFROG filenames | A blank screen or the error "Unable to get the file from Repository" appeared when attempting to attach a file from JFROG Repository if the file name contained special characters. This has been resolved by modifying the artificatory URL generation to properly encode special characters during file download. | Data Integration |
SR-D81651 | 545239 | 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 | 546397 | 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-D82490 | 547366 | 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-D83023 | 549689 | Apache Commons Compress library upgraded | The Apache Commons Compress library has been upgraded to v1.19. | Data Integration |
SR-D84099 | 547826 | 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 | 547968 | 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-D84876 | 547691 | Performance improvement for Oracle 12c queries | In order to compensate for a known issue with Oracle 12c that can cause repeated queries at certain times to cause database contention, Oracle pre/post processing steps have been added to improve performance in this environment. | Data Integration |
SR-D84880 | 546892 | 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-D85653 SR-D90051 |
548601 549494 |
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 Chrome Versions greater than 70 and was caused by 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 | 548664 | 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-D87870 | 548774 | 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-D88376 | 548336 | SQL query handling added for case-sensitive DBs | An Email Listener in RUNNING state was not picking up the emails as expected. This was traced to the column names (pr_log_service_email) being defined in lower case for native SQL queries: since MS SQL server db is case sensitive, it was not able to detect these column names and therefore failed to save the message stub. This has been resolved by adding the necessary handling. | Data Integration |
SR-D88997 | 548897 | 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 |
Decision Management
8.4.1 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D68707 | 529871 | Update Handler will not run during migration | Rolling restart of DataFlow, ADM ,VBD, and Util Tiers failed with a PENDING_JOINING error after an in-place upgrade. This was traced to the logic for the update timing: when nodes start after an upgrade from 7.x to 8.x they will migrate data flow runs. Migration happens on only one node, and while it's in progress the other nodes will wait until migration finishes before they come up. At this point the state of the data flow services will be 'PENDING JOINING'. The issue is that while migrating runs, the Data Flow Update Handler was triggered to validate whether there were nodes available on the service the run belongs to. This call can cause the corresponding data flow service to be initialized, but the call will be blocked since all services wait for the migration to end. This resulted in a deadlock which prevented all nodes from coming up successfully. To resolve this, the process has been updated to skip the update handler during migration to avoid triggering the initialization of client services that are waiting on the migration lock. | Decision Management |
SR-D74117 | 539463 | DDS service will not run Hazelcast check if external Cassandra is configured | Services were not responding, and thread dumps seen in the logs indicated that a large number of threads were waiting for one to come back from getting the cluster state for a DSM process. Investigation showed that the threads were waiting for a Hazelcast response about the cluster state. However, since a Hazelcast call is not needed when Pega is configured with external Cassandra, the DDS Service code has been changed to not to check for candidate nodes if configured with external Cassandra cluster. | Decision Management |
SR-D75519 | 536719 | Corrected calculating propensities | Several PMML models designed to compare the outcomes to a control dataset experienced an issue where the probability scores in Pega did not match the original control dataset. The PMML model was also tested using KNIME; those results matched Pega but not the original control dataset. Investigation showed that the JPMML evaluator contained outdated code, and the incorrect calculations have been resolved. | Decision Management |
SR-D77157 | 544473 | 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-D78940 | 542928 | Dataflow monitoring enhanced | Enhanced monitoring and healthchecks have been added for dataflow and alerts. | Decision Management |
SR-D79145 | 543055 | Added tokenizer for KeyWord-Based Topic Detection phrases | KeyWord-Based Topic Detection was not Working for "Enrollment/Re-Enrollment" as a word, for example a categorization model with the text 'This is an email related to Enrollment/Re-Enrollment'. To facilitate this use, a tokenizer has been added to break 'should',' must', and 'and' words into components for a taxonomy match. | Decision Management |
SR-D82150 | 546532 | 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 | 547725 | 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 | 546342 | 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 | 548287 | 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-D89012 | 550801 | 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 | 550393 | 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 | 548293 | 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 |
Low-Code Application Development
8.4.1 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D63307 | 542771 | Unneeded class name filter removed from GetRelevantPropertiesForDataType | Given one class with a set of properties and another class inherited from the first class containing a relevant records set for class 2, then a new harness did not show the base class fields. Investigation showed that the fields present in the parent class and marked relevant in the case were not being fetched due to pzGetRelevantPropertiesForDataType having a class name filter along with filter by rule resolution. To resolve this, the class name filter has been removed as it is not required due to the report already filtering by rule resolution and relevant class through a join. | Low-code App Development |
SR-D67316 | 541206 | Cross-site Scripting protection for PegaRULESMove_Skimming_Query | Cross-site Scripting protection has been added for input parameter toRSV of the activity PegaRULESMove_Skimming_Query. | Low-code App Development |
SR-D71475 | 538722 | Check added to apply values of newAssignPage.pxFormName | After upgrade, trying to open existing assignments resulted in a different harness being opened. This was traced to changes in how the property newAssignPage.pxFormName was used, and has been resolved by checking whether the harnesspurpose is dynamic before setting the pxFormName. If formname is already present, the system will proceed with picking the harness from the shape. | Low-code App Development |
SR-D72141 | 542664 | 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-D78467 | 542319 | 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 | 546417 | 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 | 544795 | 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-D87671 | 547574 | 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-D90544 | 550808 | Corrected row focus for deleting in App Studio case model | When attempting to delete a row of properties from the 2nd 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 |
Mobile
8.4.1 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D56148 SR-D74839 |
537406 537323 |
Corrected map zoom issue with iOS13 | After including a map control with markers in an application for iOS13, viewing via a mobile app and zooming introduces a gray bar across the map. This has been resolved by setting transform translateZ to the div of address map. | Mobile |
SR-D68572 | 543005 | 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 | 539127 | 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-D76620 SR-D85551 |
544578 548077 |
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-D76927 | 541424 | VirusCheck added to all Pulse uploads | The upload file activity has been updated to invoke VirusCheckActivity for all Pulse uploads. | Mobile |
SR-D77268 | 542339 | Updated URL opening for iOS 12 & 13 | Attempting to open a URL did not work on iPad/iPhone with iOS 12 and 13 and PIMC version 8.3.500. This has been resolved by updating previewPIMCAttachmentOnline function to handle URL opening by using the application.openurl function. | Mobile |
SR-D81859 | 543766 | Maps and signatures inside layout groups scroll correctly | A map configured in the screen was getting grayed out while scrolling horizontally. Analysis showed that when an address map is inside a layout group, the layout group swipe was triggered instead of scrolling. To resolve this, the target parent now has the data attribute "data-nogestures" = true so the layout group swipe will not be triggered. This will also prevent swipe on signature while scrolling horizontally. | Mobile |
SR-D85780 | 547815 | 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 |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.4.1
Reporting
8.4.1 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D53176 | 541796 | 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-D56293 | 536779 | Resolved timeout errors related to getIndexInfo | When attempting to import large files (around 300MB) via Designer Studio a time out error was seen, but the same upload worked as expected from the command line. Investigation showed that the "approximate" argument in getIndexInfo caused wasteful analytic operations to be run on the database, hampering performance. To resolve this, areas where the results of the analysis are not needed have been modified to have aApproximate set to be true so it will not be run. | Reporting |
SR-D64231 SR-D86978 |
539235 549173 |
Export to Excel cell style control added | If a column was formatted with an auto generated numeric control, a new cell style was generated for every row during the export to Excel process. Since there is a limit on the amount of cell styles, once the number of rows in the file was greater than 64000 an error was generated. To resolve this, the system will disable the creation of a new cell style for every instance when an auto-generated numeric control is used. | Reporting |
SR-D65327 | 534572 | Backspace keydown handler updated for all textinput modes | Attempting to use the Backspace key to remove input from a number cell (either Integer or Decimal) did not work. When the action was performed by a Manager, the Backspace key works as expected. Investigation showed the logic in the keydown handler for the backspace key in pega_report_events.js was only ignoring the e.preventDefault() call when the textinput node type was text, not number or other input types. To correct this, the keydown handler has been updated so the backspace key in pega_report_events.js maintains the default backspace functionality for all textinput modes, not just those of type 'text'. | Reporting |
SR-D66986 | 539415 | BIX command line support improved | Post-upgrade, it was seen that changes to the engine which validate that Data-Admin-DB-Name is not defined multiple times caused the BIX command line extracts to no longer work the same way. In order to improve backwards compatibility, updates have been made to loosen the validation in JdbcConfigurationFactory to always prefer prconfig settings if there are multiple definitions. | Reporting |
SR-D69098 | 534043 | Export to Excel works for for report definition with duplicate columns | After adding a date column to a report definition (2nd column in the report), the data displayed correctly in the UI but Export to Excel failed with the error "Section 'pzRDExportWrapper' execution error on page '' of class 'Rule-Obj-Report-Definition'. : The Reference .pyDateValue(2) is not valid." This was traced to an out of bounds exception thrown if there were two or more columns with the same calculation. When preparing for export, the column with the duplicate calculation would not get added to the map of report UI fields. To resolve this, the system has been updated to allow report definition columns with the same calculation to be properly mapped to a UI field. | Reporting |
SR-D69108 | 543847 | Handling added for drag-and-drop with deleted report templates | After adding a new report, an error appeared when trying to use drag-and-drop to add a column (Page List) from the Data Explorer in the report browser. This was traced to refactor work done to use the Record API throughout reporting: the ruleset on new reports was not being reset from a Pega- ruleset to an application ruleset, causing columns the referenced properties defined outside the platform to be rejected. This use case was missed because case types define their own report templates on creation, but in this scenario those had been deleted. To resolve this, the system has been updated to call pxChooseBestRuleset from pxShowReport in order to enable the use of properties defined in the application prior to saving the report. | Reporting |
SR-D71408 | 534936 | DIrty check flag triggered by adding columns and filters | If a report was edited and closed without saving, the dirty check worked as expected. However, if new columns or filters were added and the report closed without saving, the dirty check did not appear. This has been resolved by updating the check logic. | Reporting |
SR-D73777 | 539970 | Logic added for client-side Somaria decoding | When Somaria (an Advanced Data Visualization control) was used with Predictor Performance, the special characters were displayed as ASCII values instead of the actual values in the label. This was traced to Somaria encoding special characters of the visualization data into HTML entities on the server in order to protect against cross-site scripting attacks, but these entities were not being decoded on the client side. To resolve this, logic has been added to decode HTML entities in Somaria data on the client. | Reporting |
SR-D75097 | 542361 | DSS added to allow disabling Excel cell export security | In order to avoid calculation injection during Export to Excel, an apostrophe character was added to the cell on export to close a vulnerability. However, sites using an external tool to consume the Excel document needed a workaround for this security feature. The resolution for this issue adds a DSS setting "TurnOffSecurityForExportToExcel" which can now be used to turn on/off the security feature that adds char " ' " in front of the cell value. Further refinements to this work will be included in a future release. | Reporting |
SR-D75097 | 539517 | Improved handling against formula injection attacks in Export to Excel | 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-D75757 | 540640 | ReportBrowser script updated to ensure older version refreshes on creation | When using the old version of the Report Browser, the count at the report category did not update after being saved into a category until logout and login back to the portal. This was a missed use case for the old browser during updates to the UIKit and has been resolved by including the reportbrowser script in the header section pyCMReportBrowserHeader to ensure a refresh. | Reporting |
SR-D76150 | 539455 | Logging updated for EmailListener and Data-Agent queue items | In order to avoid the pr_sys_queue_ftsindexer table being overwhelmed with Data-Admin-Connect-EmailListener and Data-Agent-Queue instances for queued items, the Data-Admin-Connect-EmailListener and Data-Agent-Queue class definitions have been modified to filter queue items to incremental indexing if updates are from system and instance type is data- . | Reporting |
SR-D80589 | 544842 | 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 | 547920 | 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 | 545752 | 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 | 548094 | 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 |
Security
There were no Resolved Issues for Security in 8.4.1
System Administration
8.4.1 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D46133 | 534651 | Colon in folder or file name will be replaced with underscore during unzip | After creating a product file (zip), attempting to import the same file into an updated system resulted in an exception. Investigation showed that in this case the zip file was a Product rule form which had applications packaged with a colon(:) in the name of the application, a format that was allowed in 6.x versions. Because Windows machines restrict creating creating any folder or file with : in its name, the zip file could not be inflated as part of the import process. To resolve this, the system has been updated so that a colon(:) will be replaced by underscore(_) during inflate operations. | System Administration |
SR-D52604 SR-D64523 |
548062 545672 |
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-D66521 | 536140 | Logout Redirect updated to handle special characters in IDP parameters | When using "HTTP Redirect" in Authentication Service, the Logout Redirect service was failing due to the query parameter name containing "_" (underscore). This was traced to IDP sending parameters to assertion consumer service or logout request endpoint with names which contained any special characters, as the system was trying to put those key values on the parameter page for additional processing. To resolve this, the system has been updated to suppress exceptions when the parameters from IDP includes special characters. | System Administration |
SR-D70872 | 545858 | 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-D72636 | 536090 | Added handling for Authorization Server login loop | When the Authorization server returned an error, it was redirecting back with error, error_description, and parameters. The system then tried to start the login process again, the same error parameters were returned again, and it continued to loop this way. To resolve this issue, handling has been added for this error scenario from the Authorization Server. | System Administration |
SR-D77004 | 542349 | View Full History will not include private edits | After upgrade, clicking 'View Full History' and then 'History of All Versions', showed the history of discarded private edits of other users. This was an inadvertent side effect of work done to improve the support for rollback and migration, and has been resolved by updating the system to not save the history when in a personal ruleset (checkouts/private edits). The help documentation has also been updated to note there is no history available for checkouts/private edits. | System Administration |
SR-D78274 | 544094 | 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-D83053 SR-D90485 SR-D90524 |
543314 544270 549270 549048 |
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-D84190 | 547175 | 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-D84795 | 546204 | Handling added for NOT NULL primary key requirement | The CRMFS application upgrade failed during an upgrade of a Production-clone environment to Pega 8.3.1 with the error "Encountered an issue applying DDL: ALTER TABLE pegadata.pr_History_PegaSAFS_Data_ReasonCode ALTER COLUMN pzinskey DROP NOT NULL: Database-General Problem executing SQL to update database schema ERROR: column "pzinskey" is in a primary key." This occurred because the database had a table column as primary key with a NOT NULL modifier while the archive that needed to be imported had a table column with neither the primary key nor NOT NULL modifier in it. Therefore during import the system was trying to drop the NOT NULL modifier first, resulting in the error as NOT NULL cannot be removed if it is a primary key. To resolve this, handling has been added for the use case of not dropping the NOT NULL requirement for the primary key. | System Administration |
SR-D85745 | 545906 | 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 |
SR-D89002 | 549104 | 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. | System Administration |
User Experience
8.4.1 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D36319 | 507362 | Pulse mention emails correctly sent for Japanese locale | When an operator with Japanese locale (ja_JP) was mentioned in a Pulse comment, email notifications were not being sent. This was working as expected for other operators in different locales. Tracing the pyProcessNotification Queue Processor revealed issues with the pySendNotification context that caused D_pyPulsePostDetails to not load. This has been corrected with modifications to the correspondence rule pyAddUserMentionedPost in the PegaSocial_ja 08-01-01 ruleset. | User Experience |
SR-D44769 | 531441 | Resolved non-template harness stale reference for navigation menu | Post upgrade, the navigation menu was initially present but disappeared on click of a menu item. This issue was seen only when the harness was non-template and SPA was enabled on the dynamic container: when launch harness was done on the same harness, change tracker created a new thread object but the client cache was holding the stale reference. When using template harness, mergeBigData adds all the new details into the stale object, preventing this issue. To resolve this issue for non-template harnesses, initChangeTracker in pzpega_ui_doc_lifecycle file has been updated. | User Experience |
SR-D57629 | 536628 | Navigation sub menu shows all options | The switch app menu was running off the bottom of the screen, and using arrow keys to navigate it caused the whole portal to jump up. This was traced to the sub-menu style attribute 'top' being changed to '0' if it was given a negative value. To resolve this, a condition was added to check whether the rendering sub-menu height is greater than viewport, and adjust the top attribute value accordingly. | User Experience |
SR-D58868 | 531801 | Check added for unicode calendar values | After creating a repeating grid section for work report definition with enabled filter option, running the section and giving the filter value in unicode calendar form such as 2019/11/12 did not pass validation. This has been resolved by adding a check for unicode values. | User Experience |
SR-D61560 | 539475 | 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-D62732 | 527695 | V-Scroll bar retained after dirty modal check return | A modal dialog of a repeating grid with 'flexible' and numbers of field items that required a v-scroll bar with auto-size layout (Standard layout) had the scroll bar disappear after returning from pyDirtyCheckConfirm /Cancel. This was traced to the dirty modal setting some inline styles to modal, and has been resolved by updating Dirty modal to clean up any styles set on modal once it is closed. | User Experience |
SR-D64244 | 532984 | Support added for recording with sIngle-option radio button inside a repeating grid | Recording a test case was not working when a single option radio button (i.e., radio button control with property of type boolean) was configured inside a repeating grid. In this case, it was found that the Radio button markup did not have a data-test-id attribute for non-template single option; this has been added. | User Experience |
SR-D64667 | 531808 | Cursor issue resolved for tab within expandable row | When pressing the “Tab” key on an expanded row, the cursor was not moving inside the expanded part. This has been fixed by adding a check to get the correct first focusable element. | User Experience |
SR-D65762 | 527556 | Updated logic for Spinner API used in DateTime control | When selecting 11, 22, 33, 44 in minutes in the DateTime picker, 11 was rounded off to 10, 22 was rounded off to 20, 33 was rounded off to 30, etc. This was due to the match and increment behavior in the UI Spinner Js API used by the DateTime control, and has been resolved by modifying the logic used to calculate the nextIndex in the keydownHandler API under ui_spinner.js . | User Experience |
SR-D67012 | 537310 | 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-D67674 | 537589 | Check added to skip validationtype for disabled controls with Accessibility | On enabling Accessibility, a disabled DateTime control was throwing a 'required' error. This was due to the dropdown markup having the validationType="required" attribute set if the control was configured with a required 'when' expression. Even though the expression evaluated as false, validationType="required" was still set. This issue was seen only in non-template datetime control, and has been corrected with a check to skip adding a validationType attribute for a disabled control in Accessibility mode. | User Experience |
SR-D68277 | 541817 | Added logoff check for requestors | After upgrade, the error "java.lang.InterruptedException. Requester has been destroyed" was appearing in the logs. Investigation showed this was related to unregister requests being submitted after logoff, and has been resolved by updating the system to check for logout before sending unregister requests. | User Experience |
SR-D68311 | 535988 | Corrected table row highlighting on iPad | A table row was highlighted when clicked on an iPad in landscape view, but when the device was rotated to portrait view the row was not highlighted. This was traced to the background CSS overriding the selected style, and has been corrected by modifying py-responsive-overrides.css. | User Experience |
SR-D69452 | 536401 | Layout management corrected for nested gadget sections | After update, some buttons were missing or mis-aligned, specifically the 'Reopen' and 'Cancel this Assignment' buttons were missing, and if 'Cancel this Assignment' was clicked, the Back button was missing. Investigation showed that when using nested gadget section includes, the necessary stack management to pop previous gadget parameters was not present. This has been resolved by adding a check for template rendering, as there is separate handling for template rendering to manage the stack. | User Experience |
SR-D70064 | 541963 | Case UI correct following multiple approval levels | After proceeding through different levels of approvals, the UI of the case was incorrect on the final approval submit. This was traced to the forceSkinGeneration parameter, which was set to true, being used by a workformstyles fragment. This has been resolved by changing pzUsePreferenceSkin to "once" and setting the parameter forceSkinGeneration to false after the pyAttachAsPDF activity call. | User Experience |
SR-D70310 | 537141 | Window type check added for icon display logic | When a Role had privileges to use Live UI, Agile WorkBench and Scenario Testing, the Scenario Testing tool icon intermittently did not show. This was traced to an incorrect condition used to check whether current window was of type desktop (portal) window, and has been resolved by adding a check that will also ensure consistency with Agile Studio icon display logic. | User Experience |
SR-D71202 | 535410 | Corrected autocomplete results for parameterized Report Definition in grid | An autocomplete included in a grid and configured with results display as 'List' where the source for the autocomplete was a parameterized report definition and the Report Definition parameter was an associated property of autocomplete did not show any results. If the results display was changed from 'List' to 'Grid', it worked as expected. This has been resolved by adding a null check on rowdetail in the "replaceParamsTokens" method for autocomplete. | User Experience |
SR-D71522 | 539325 | Radio button error resolved for scenario testing | When creating a scenario test case that selected a radio button and navigated the screen, it worked to complete a case and save the scenario test case in a rule set. However, attempting to then run the scenario test case stopped with the error message "Value cannot be blank" for the radio button even though the value "No" was captured for the button. This was traced to the firing of the change event, and the system has been updated so 'pega.u.d.setProperty' will only fire a click event on a selected radio button option. | User Experience |
SR-D71944 | 543732 | Resolved data page loop in templatized UI | A Layout Group was configured with six dropdowns sourced to Parameterized datapages with "disable automatic refresh" unchecked; every next dropdown depended upon the previous property, and the previous property was sourced as parameter, and so on until last dropdown. When the value in the dropdowns changed, the section kept refreshing and the portal became unresponsive. This was traced to the combination of a Datapage as the source to the dropdown with "disable automatic refresh" unchecked and expression evaluation as well. Templatized UI has 'visible when' expressions for all the properties inside the top level page. Changing the first one fired refresh on the next one, and the next one's refresh fired the other drop down refresh until it became recursive. This did not occur in non-templatized UI as it does not have expression IDs and there are no recursive calls. This issue has been corrected by modifying how the temporary mapping is populated by the reloadCells API in Expression Evaluator to prevent unwanted cell refreshes. |
User Experience |
SR-D73224 | 542630 | 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-D73510 SR-D80223 |
538665 542924 |
Cross-site Scripting filtering for ActionStringID | Cross-site Scripting filter logic has been added to the ActionStringID function. | User Experience |
SR-D73847 | 537828 | Added exception handler for URL decode error | After logging in to Pega Deployment Manager, clicking Users -> People in the left navigation panel resulted ArrayIndexOutOfBoundsException. This was traced to an incomplete trailing escape (%) pattern and has been resolved by adding checks and exception handling for incomplete data from the browser. | User Experience |
SR-D74008 SR-D77359 |
537291 542138 |
A filter on the grid shows value for a second click | A Filter on the grid was not showing any record value for a second click. This was traced to a conflict in considering column headers caused by the Filter Icon delegating two Grids, leading the process to take the context of the other Grid instead of the one which had been clicked. To resolve this, a check for the right context of the Grid has been added to the filterOnProperEvent method. | User Experience |
SR-D74057 | 540062 | Updated aria handling for Dynamic Layout Group 'Accordion' | The Dynamic Layout Group display type 'Accordion' was not getting initialized properly on the browser developer inspector. This was traced to the aria-selected attribute set to always be true, and has been resolved by adding logic to set and unset aria- selected only on the active tab. When the tab is not active, then aria-selected will be false. | User Experience |
SR-D74165 | 537515 | DateRange clear button localized | Localization has been added to the 'clear' button in DateRange. | User Experience |
SR-D74704 | 535943 | Section and navigation rule localization added | Localization has been added for sections and navigation rules that include standard rules such as Locked and Get help. | User Experience |
SR-D74992 | 546878 | 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-D75205 | 543568 | Refresh with DT or pre-activity added to dirty pop up check | Given a button which when clicked launched a data transform to set a few properties on the UI followed by a section refresh, a dirty warning popup did not appear when closing the work object even though the property changed via the refresh section. This has been resolved with an additional condition in the dirty pop up check to handle a refresh section using a DT or pre-activity. | User Experience |
SR-D75964 | 542687 | 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-D75966 | 537946 | Check added so DT parameters passed when using anchor tag | When using a link control configured such that the value of the text in the link control refers to an anchor tag such as Text, clicking the link to launch a harness and call a DT with passed parameters was not working. Investigation showed that when the link had an anchor tag, pyDataTransformDynamicParams was not getting passed as query string parameter. In pega.desktop.showHarness function, there is a If condition which checks whether any "=" is present in preDataTransformName variable and if there is any, it does not add pyDataTransformDynamicParams. This was not an issue with anchor tag itself, but rather a generic issue: any value with "=" would behave in the same way. To resolve this, the pega.desktop.showHarness API has been updated to check against the proper value (pyDataTransform=) instead of just = to identify old modal parameters. | User Experience |
SR-D76178 | 538602 | Corrected Cosmos dropdown positioning in right-to-left locales | When using the Arabic locale with the Cosmos UI, the dropdown was located on the right side of the field instead of the left side. This has been corrected. | User Experience |
SR-D76826 | 543097 | Corrected SmartInfo header text overlap with close icon | SmartInfo header text was not consistent in being wrapped to the next line, and when it did not wrap it was overlapping with the close icon. This was traced to the method used for applying the inline style to SmartInfo's header div by getting the body div's offsetWidth. In working scenarios, the body div's width has fractional portion (ex. 368.188px) and offsetWidth returns a rounded number like 368px in this case. This resulted in the header content not fitting in single line because it exceeded the space it was given, and wrapping resulted. In the non-working scenario, the body div's width did not have a fractional portion and therefore matched offsetWidth, meaning the header content fit to single line and overlapped the close icon. To resolve this, SmartInfo Header Div has been updated to be always be slightly less than the SmartInfo Body div. | User Experience |
SR-D77557 | 544684 | 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 | 547267 | 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 | 545361 | 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-D78562 | 543531 | Calendar Mode accessibility enhanced | Accessibility has been added for datetime control's calendar mode by adding alternative text and an aria-label for the image icon with a value from fieldvalue "Choose from calendar". | User Experience |
SR-D78659 | 545761 | 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 | 544789 | 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 | 548826 | 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-D84180 SR-D86200 |
546574 550231 549034 |
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-D81726 | 544011 | 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 | 548651 | 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 | 546763 | 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-D83931 | 545874 | 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 | 546249 | 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-D85228 | 548201 | 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 | 548183 | 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 | 549062 | 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-D86360 | 548572 | 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-D88057 | 549112 | 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-D91030 | 550797 | Date time control custom length honored | A custom length for the date time control in the Presentation tab was not working. Investigation showed that the Span tag containing the date time controls input box was missing a display:inline-block style attribute, causing the input box to overflow the span tag so the width was set to 100% by default if the date time control had any custom width configured. This has been corrected. | User Experience |