Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.5.4 Patch Resolved Issues for Case Management
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-161463 | 638002 | Case Dependency corrected for different access groups | Creating a queue item as part of the case dependency was not working as expected when the access groups of the dependent cases were different. Investigation showed that in this scenario, the logic was looping differently and the DependencyList page in pxCheckFlowDependencies was getting removed. To resolve this, the DependencyList page has been moved so it is processed inside the DependencyList.pxResults loop. | Case Management |
INC-161948 | 638962 | Locking settings enabled for circumstanced case types | Optimistic locking options were not present for a circumstanced case type, and the option to select the "Lock parent case when an action is performed on this case" check box was not available. However, when the parent case type was enabled with optimistic locking, a circumstanced child case could inherit a lock from its parent. Because "Lock parent case when an action is performed on this case" was not enabled on the circumstanced child case type, trying to update the parent case from the child case and save the parent case resulted in a "Lock not held on parent" error. This was a missed use case, and has been resolved by enabling locking settings in Case Designer for circumstanced case types. | Case Management |
INC-162168 | 634934 | Refresh works for nested lists | After creating Pagelist A with another Pagelist within (B), a section was created with a repeating dynamic layout to display Pagelist A and a button was added with action set to refresh this section. In the embedded section of the repeating dynamic layout, a nested repeating dynamic layout was created for Pagelist B and a button was set to refresh this section. When using this configuration, the refresh was returning the actionID for Pagelist A regardless of which button was used. To resolve this, an update has been made which will iterate over the stack and append the individual indexes to the encoded value in the pzAPICreateJsonForField function. | Case Management |
INC-162550 | 630273 | Read-only text controls properly localized | An issue with localization of property references used in read-only text controls when calling dx api v1 /assignments/{ID}/actions/{ID} in context of DataGather application in attachment JSON response has been corrected. | Case Management |
INC-162763 | 646110 | Case creation and Save As performance improvements | Performance improvements have been made to the getApplicationRuleSetList() function to avoid unnecessary and repetitive database calls. | Case Management |
INC-162894 INC-169323 |
644181 646268 |
Deleting attachment with icon button works in Attachment section | After upgrade, a delete icon in the attachment section was not working as expected. This was traced to BAC work done earlier, and has been resolved by updating the Delete Attachment function of the AttachmentListViewSelectorScript. | Case Management |
INC-163154 | 638099 | Code updated for bulk actions buttons | After upgrade, hovering over the "Filter case" button in pzBullkUpdate and the "Create" and "Clear" buttons in pzBulkAddActions caused them to disappear. The warning "This button generates markup that was used to support the older browsers. It is recommended that you update it to the newer markup" was shown, and an update code button appeared. Some custom rules exhibited the same behavior initially, but worked as expected after updating the code and saving them. This has been resolved by updating the buttons in pzBulkUpdate and pzAddBulkActions with the latest UI technologies used for button control codes. | Case Management |
INC-165445 | 649150 | Corrected case for Location output parameter name | The activity pzCreateCaseV2Impl which is used for the create case API was not returning the "location" output parameter due to the parameter being set as "Location", with capital L inside activity pzCreateCaseInternal at step 10. This has been corrected by renaming the parameter 'location' to 'Location'. | Case Management |
INC-166820 | 649968 | Blank parameter handling added to assignments function | When calling the Pega v1 API /assignments/{ID}/actions/{actionID} a 500 Internal Server Error status was returned if the configuration included an Autocomplete configured with two fields where the second had the "Use in Search" setting enabled. An error was also logged. Once the error occurred, editing the Autocomplete to disable the second "Use in Search" did not stop the error; the entire Autocomplete had to be deleted and recreated. This was traced to the system trying to set a blank parameter due to the autocomplete being configured with a data page with no parameters, and has been resolved by modifying the pzAPIDetermineOptionsFromPage Rule-Utility-Function to not set parameters when the parameter key is blank. | Case Management |
INC-170041 | 649669 | Check and error message added for filename containing "%00" | At the time of file attachment or upload, if the file name contained % followed by two 0s (%00), the file upload mechanism distorted the UI and the Pega logo screen popped up. The file was saved properly in the ServiceExport directory, but while fetching the attachment info, the file was split in two because the engine considered %00 as a delimiter. This has been resolved by adding a file name check and a pyInvalidFileName field value to be used for an error message. | Case Management |
INC-173953 | 650851 | Updated Pega DX API special character handling | When the using Pega API v1 and invoking api/v1/cases/{ID}/actions/{actionID} for a few fields in section, special characters were being converted into HTML entities. For example,"You'll usually find this information in your terms and conditions." was being converted as "You& #39;ll usually find this information in your terms and conditions" in the API response. This has been resolved by updating the system to ensure the pyDXAPIEncodeValues application setting is honored. | Case Management |
INC-174355 | 652051 | Corrected file download in Cosmos | An unauthorized request error was seen in tracer while downloading files in the Cosmos application. This was traced to the pyAttachmentFeedDescription control in the Theme Cosmos Rule Set not being correctly updated, and has been resolved. | Case Management |
INC-176091 | 652121 | Busy indicator correctly resolves with Microsoft Internet Explorer upload | When using Microsoft Internet Explorer to upload documents, the busy indicator was not resolving after the file was attached. This was due to a missed use case in work done around the timing of the busy indicator when attaching multiple files, and has been resolved by modifying PzMultiFilePath to ensure the busy Indicator is removed when the file count is zero. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.5.4
Conversational Channels
8.5.4 Resolved Issues for Conversational Channels
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-147654 | 642188 | Updates to displaying embedded images in cases | Sending an email with an embedded image to the email ID associated with the email listener successfully created the interaction case, but the embedded image was not displayed when the case was opened from the work-basket. A rule-not found exception was seen in the tracer for pyGetImageDisplay, the rule responsible for displaying the images in the ET pane. Investigation showed that when URLObfuscation was turned on, the decryption of the URL was not successful because "&" had been encoded to '& amp;'. This has been resolved by calling the activity pyGetImageForDisplay using URLMapping instead. An additional issue was seen with displaying images in the email interaction pane where the additional empty new lines moved the image outside the intended place. This was traced to a customization for the reply area which used the pyHighlightedMessage property and converted newlines to br tags even in HTML mode. To resolve this, pyHighlightedMessage has ben modified to convert newlines to br tags only if the mode is plain text. | Conversational Channels |
INC-157214 | 631599 | Mentioned user in Pulse appears correctly | When loading user names while using the "@" functionality in a Pulse post, adding or tagging the operator/user in Pulse by entering each letter brought up the list, but when using copy/paste it was not possible to select the desired value from the user.Suggestions list of operators/users. If by chance the user name was selected from the suggested list, the operator ID was added instead of the full name. This has been resolved. | Conversational Channels |
INC-160372 | 629921 | Resolved unneeded chat survey error logging | After configuring a chat server to do a post chat survey, the post chat survey was correctly served but errors indicating "Cannot find PegaCA-Work-SurveyNPS.Thank you for your feedback. van type Rule-HTML-Paragraph" were logged. This was caused by the method used by the system to distinguish between text and paragraph questions in pyProcessNextStep, and has been resolved by adding additional checks for whether paragraph exists before opening it. | Conversational Channels |
INC-160688 | 632229 | Skip topics from the attachments setting honored | Topic detection was happening for attachments even when it was disabled in the UI. This issue was traced to pyTopics which were not properly configured by selecting checkboxes in iNLP configuration for Email Channel, and has been resolved. | Conversational Channels |
INC-163368 | 634469 | Special character replacement added for Email Bot training data | When training an Email bot in the email channel, the training data was incorrectly added to the model. Although the text was tagged as an entity in the channel and highlighted correctly, after building the model it was seen that the tagged text contained dislocated start and end tags. Investigation showed that this occurred If the training data text had \r's in it. To resolve this, updatetrainingrecord has been modified to replace \r 's with "". The text which is being replaced will not appear in the UI. | Conversational Channels |
INC-165188 | 635776 | Third-party links allowed to pass target attribute in anchor | Attempting to connect to Docusign, a third party application, via Email in an interaction portal was not working, and the error "account.docusign.com refused to connect" appeared. This was caused by the HTML data being sanitized so the attribute 'target' was not allowed to pass and the application could not open in a new tab. To resolve this, an update has been made that will allow the target attribute for an anchor tag. | Conversational Channels |
INC-165886 | 637243 | JWT token support added for Digital Messaging | An enhancement has been added to support the use of JWT tokens for authentication with the Digital Messaging API. | Conversational Channels |
INC-166844 | 651405 | Email bot updated to handle negative and positive feedback on the same text | When positive and negative training was done on the same piece of text, text extraction by Email Bot failed. For example, when using the sentence. “John Smith plays cricket”, the bot detects “John” as person name. If user wants to train the bot to detect “John Smith” as the entity, the user needs to first remove “John” and build the model, and then select “John Smith” and build the model again. In this case, the email bot never again detects “John Smith” as person name due to the negative feedback given for “John”. This was traced to the entities having same the startIndex/endIndex, and has been resolved by removing entities of the same modelName which have the pyIsRemoved property as true so that multiple entity models are detected on the same word. | Conversational Channels |
INC-174475 | 650109 | Removed unnecessary commit in pyGetAttachmentsByCids | Attempting to reply to inbound emails generated the error "This action is not allowed as it is outside the current transaction". Investigation showed a commit was occurring for pygetattachmentsbycids even when there was no change in attachment, and this interfered with the subsequent transactions and resulted in the Transaction id mismatch issue. To resolve this, the commit has been removed and the system has been updated to save only when needed for backwards compatibility. | Conversational Channels |
Data Integration
8.5.4 Resolved Issues for Data Integration
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-145802 | 636324 | Oracle temporary space explicitly freed after writing LOBs | Oracle temporary space used to write the LOB was not freed up after writing records to Log-Service-File when using OJDBC8 or OJDBC10 versions and the table involved had inline BLOB storage such as small blob tables like Log-service-file (2-4kB blobs). This did not occur when using OJDBC7, but investigation with Oracle could not determine why the older version did not have this issue. This issue has been resolved by explicitly freeing the LOB space with a call to free() / freeTemporary() , a utility for LOB objects that was introduced in JDBC 4. | Data Integration |
INC-154026 | 631041 | Resolved exception from expanding deserialized Data Page | When using a data page backed by a report definition where the data page data type was Rule- and the virtual page data type was Rule-Obj-Property, serializing and deserializing the data page and then expanding the deserialized data page generated the exception "the reference .pzInsKey is not valid. Reason: .pzInsKey is mapped to class Rule-Obj-Property, which is not the primary class of the list: Rule-; must specify a group name in mapping". The issue occurred only if "Run on Data Page" on the data page was checked and "Report on descendant class instances" on the report definition was unchecked, and has been resolved by updating the runLoadActivity() of DeclarativePageDirectoryImpl to skip setting pyObjClass for the report definition if it already present, i.e. if already set by the loader activity. | Data Integration |
INC-155624 | 634716 | MSGraph email listener enhancements | Attachments with .eml /.msg extensions were treated as FileAttachments by the MS Graph API and generating a classcastexception. To resolve this, a check has been added to identify the attachment along with content type so .eml will be correctly recognized. In addition, the MSGraph email listener functionality related to converting from Graph to MIME message has been enhanced around the 'TO' and 'CC' recipients in a MIME message and for parsing nested attachments in Item attachment for addition to MsgraphMessage. | Data Integration |
INC-156758 | 629937 | ExpandStream called before Page-Merge-Into to ensure correct merge | The Page-Merge-Into method was not merging the source page into the target page when the use case was run without tracer, but merged properly when run with tracer. This was traced to an intermittent issue with expanding properties, and has been resolved by calling expandStream on the source property if it is unknown prior to checking if the source and target properties are merge compatible. | Data Integration |
INC-158728 | 625588 | Oracle handling updated for upgrade DDL | DDL generated for a Pega upgrade displayed the error "ALTER TABLE PC_ASSIGN_WORKBASKET DROP CONSTRAINT GETNEXTWORKINWORKGROUP" when trying to install. This was traced to a change made by Oracle for optimization, and has been resolved by updating the handling for primary key constraint and the corresponding index name. | Data Integration |
INC-158874 | 647564 | Zero value parameter handling added to Trend Reporting | After converting the Summary Views to a Report Definition, the Chart reporting functionality was not working in the Report Definition drill-down reports; whole records present were being fetched instead of only the graph chart count. Investigation showed that one of the parameters in the FilterBy was missing, and that pxSLAAgeTimeliness used 0 instead of null, causing the system to consider all records. This has been resolved by using the "reporting/useNullForUnqualifiedRecords" DSS setting to handle the 0 value and ensure all parameters are present. | Data Integration |
INC-159143 | 628923 | Methods updated to prevent rounding of JSON response decimals | When using a REST connector for an outside service, precision numbers in the JSON response were being rounded or truncated when parsed for the DataSource page. For example, a JSON message with a value like 6045.900000000000000001 became rounded to 6045.9. This happened in both methods used for fast and non-fast processing, and has been resolved by treating the decimal value as a string and then creating a BigDecimal object out of it to avoid truncation in the fast processing scenario, and by adding mapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); for the non-fast processing scenario. | Data Integration |
INC-159438 | 632186 | HTTP Strict Transport Security update | An update has been made to increase the max age of the HTTP Strict Transport Security (HSTS) header parameter from 7 days to 1 year. | Data Integration |
INC-159717 INC-166102 |
634926 635942 |
Zero Downtime Upgrade mechanism updated | Scheduled Agents were running several times on each node when there were many executions scheduled for the same agent. This was due to the task derived from the agent's schedule not being unique to the agent, allowing the Zero Downtime Upgrade logic handling the insertion to restart agents several times while reacting to cluster topology changes. To resolve this and make the process more robust, the Zero Downtime Upgrade mechanism has been updated with better tracking and logging. | Data Integration |
INC-161645 | 634639 | Java Bean import updated to handling differences in Java 7 and Java 8 | The behavior of the java bean Introspector class is inconsistent across different versions of the JDK when detecting indexed properties built off of java.util.List objects, causing Java Bean import to generate differently in Java 7 and Java 8. This has been resolved by updating PRIndexedPropertyDescriptor to better handle this JDK difference by resolving indexed read and write methods manually using simple reflection. | Data Integration |
INC-161737 | 642673 | Queue processor correctly moves items to Broken Items | When an exception occurred while Queue Processor processed an item, he queue item was not moved to Broken Items. The error " inconsistent datatypes: expected - got CLOB DatabaseException caused by prior exception" was generated. This has been resolved by modifying the NativeSQL builder and NativeSQLBatchExecutor to allow the batch of queries to be retried. Additional changes were also added for Oracle databases to identify the correct column types. | Data Integration |
INC-162198 | 628704 | Tracelist cleared to address parser exception in REST Service | In a requestor pool of mixed types, HTTP and REST, the alert data was not initialized properly if there was a parse exception due to invalid data in the incoming payload. For example, last_input, first_activity, and last_step could all be left over from the prior HTTP service request. This was caused by the system pulling in seemingly unrelated activities for the "Last activity called" in the stack trace of a service when a single alert was created by two different service types which were sharing the same package, and has been resolved by explicitly clearing the tracelist for the service to prevent inaccurate information being reported in the logs. | Data Integration |
INC-162217 | 635890 | Default sorting with Pagination, Data Page and Report Definition corrected | After configuring a section with the table sourced from a data page and personalizing the table with the pagination and sort-by features available in a report definition, the table content sourced with the data page was not sorting the data. This has been resolved by updating the pxRetrieveReportDefinition activity so that the sort order for queryable data pages will not be reset for a first-time request. | Data Integration |
INC-163043 | 645391 | PEGA SOAP Service MTOM attachment handling updated | After configuring a PEGA SOAP service with the Enable MTOM checked, sending a SOAP request with attachment to the service returned an invalid request error stating "Value of content length header is greater than zero - [762], but this request has empty POST". Investigation showed that when the input request reached the getPostBytes method and inputstream tried to read it, there were no available bytes and end of file was detected. This was due to the inputstream having already been read in getMultiPartSOAPHandler() method in FileUploadHandler class. To resolve this, the system will update an 'if' condition in getPostBytes method to skip reading the request attachment when contentType is "multipart/related". | Data Integration |
INC-163292 | 635839 | Portlet service deprecated | Portlet authentication services have been removed from the standard installation package. | Data Integration |
INC-163579 INC-166398 |
649383 647704 |
Assistance and diagnostics added for issue with opening imported 'when' | After upgrade, attempting to open rules that were developed on lower environments and then imported resulted in unknown errors. A workaround has been added to skip and log any corrupted property that might be interfering with the rule opening: enable Skip-Corrupt-Property to put this in place. To improve diagnostics, the new logger NBA-WME-DEBUG has been added. If the error continues after using Skip-Corrupt-Property, Skip-Corrupt-Property should be disabled and NBA-WME-DEBUG should be enabled and kept active until the issue occurs again. | Data Integration |
INC-163791 | 633297 | JobScheduler time zone display expanded | The Time zone control on the JobScheduler rule form displayed only the first few characters for the time zone. This was due to a hard-coded CSS setting for the width, and has been resolved. | Data Integration |
INC-163863 | 632426 | Monthly agents run correctly on non-English locales | Nodes with non-English locales were not starting when using an Agent with a monthly execution pattern. This was due to incorrect handling of the user locale, and has been resolved. | Data Integration |
INC-163985 | 635146 | Class mapped to CustomerData is incrementally indexed as expected | When using a class which mapped to customerdata, instances that were added/updated were not automatically getting indexed unless a full reindex was performed. If the class mapping was changed from customerdata to pegadata then the incremental indexing was done. To resolve this, the UpdateProcessor class that resolves CustomerData to the correct database name has been updated to use PegaData. ConfigurationMapImpl contains the resolution mapping and a call is made to ConfigurationMapImpl to retrieve the correct database name. | Data Integration |
INC-164021 | 638639 | Java object type removed from pyStream to resolve GetFile class error | It was not possible to perform Property-Set on pyStream(java.io.InputStream) to assign it with another object of type(returned by pxGetFile RUF). This was caused by a strongly typed java.io.stream in the pyStream property creating conflict at runtime with S3WrapperInputStream from the D_GetNewFile call, and has been fixed by removing the java object type from pyStream. | Data Integration |
INC-164308 | 634410 | UseNoCacheHeaders default expiration set to "0" | When the prconfig/HTTP/UseNoCacheHeaders/default was set true it used the value "Expires: Thu, 01 Dec 1994 16:00:00 GMT". This has been updated to the more commonly used setting "0". | Data Integration |
INC-164405 | 640185 | Enhancement added to support incremental update | In order to support incremental updates between versions of Pega and versions of Oracle, an enhancement has been added that will allow the engine to handle a mix of database version and JDBC driver version and issue the query that will work on Oracle 11g database despite using a newer driver version. | Data Integration |
INC-164472 | 635114 | Performance improvements for archiving and purging | Archiving and purging jobs were not working in Prod. Investigation showed this was caused by the system timing out. To resolve this, improvements have been made to purging by batching the deletions and refactoring the Where condition to simplify the complex expression queries that determine the cases to be archived. | Data Integration |
INC-165335 | 638773 | ClipboardContext updated to handle nested page lists | The Append and Map to method was looping over the top-level pages instead of specific page in the JSON transform. This resulted in a null when trying to get the children of the page list property because the updateClipboardContext() for updating the mapping used only the immediate parent. To resolve this, the updateClipboardContext() function has been modified to include the context for the root element so finding the children of the page list property works as expected in a nested page structure. | Data Integration |
INC-166631 | 637023 | Default for 'database/oracle/allowOptimization' set to false in patches | Recent patches contained an Oracle query optimizer implemented to prevent performance problems and other known Oracle bugs from impacting environments. However, while these changes were well intentioned, they either required providing additional database privileges or adding some configuration changes to provide the information needed in lieu of the privileges. This does not conform to the expected patch experience. To remedy this issue, the optimizations have been switched to being disabled by default in this release so that the behavior on upgrade is the same as prior to the applied patch release. If Oracle performance issues are seen, it is possible to enable the optimizations and provide either the needed privileges or configuration to make use of them. Please note the default remains 'enabled' for Pega 8.6. | Data Integration |
INC-169055 | 644760 | Performance improvements for database queries and archiving | In order to improve the performance of database queries, repetitive unnecessary database calls have been removed, archival queries have been simplified, and diagnostic metrics were added. Optional batch requestors have been added to all archival services with their own DSS settings to allow processing more cases in parallel. It is recommended to create 2 additional indexes to help with the archival process. The indexes will be on: pegadata.pr_metadata (pyisparent, pyobjclass, pyarchivestatus) INCLUDE (pyinskey); pegadata.pr_metadata (pyisparent, pyarchivestatus) INCLUDE (pyinskey); |
Data Integration |
INC-169518 | 649156 | Email address parsing logic updated | Email listener functionality for case creation and email notifications was not working as expected after update due to a difference in the the service email rule request header properties (pyInboundEmail.pyFrom & .pyInboundEmail.pyFromDisplayName) clipboard values. This has been resolved by updating the parsing logic for the email addresses to look for an InternetAddress object and then fallback to a regex match. | Data Integration |
INC-169764 | 645805 | Decision table query performance improvements | Severe latency was seen after upgrade, and it was not possible to save business rule changes. This was traced to an issue with the decision rule being treated as a custom rule, and has been resolved by inserting a check. In addition, optimization has been added for queries on the pr_sys_decchg table. | Data Integration |
INC-170599 | 645223 | DSS partition count setting made backward compatible | After upgrade, the DSS to limit the number of partition counted was no longer working and instead used the default value of 20. This has been corrected and made backwards compatible. | Data Integration |
INC-170620 INC-170669 |
651804 651810 |
Handling added for RuleNotFound exception | If a declare rule was run on a redux page and the highest ruleset version was withdrawn, a RuleNotFound exception was thrown and step status was set with the message "Failed to find a 'RULE-DECLARE-EXPRESSIONS' ...". This has been resolved by updating the system to avoid throwing a RuleNotFound exception if the candidate list is empty for the declare expression. | Data Integration |
INC-170950 | 652329 | Handling added for datetime set by relative reference | When initializing a datetime property contained within .pxPages() in a data transform rule, if the property being set applied to @baseclass it was initialized as decimal string while all other properties were handled as normal GMT-based Pega date time strings. Investigation showed that the decimal value was set when the target page was given by a relative reference like .pxPages(TEXT) which was also defined on Pages & Classes. This has been resolved with an update to detect relative reference as page name in Pages & Classes tab and fall back to the old assembler. | Data Integration |
INC-171753 INC-173092 |
649440 648737 |
Checks for Apache Tomcat 6 with MSSQL removed | After implementing a specific local Tomcat configuration that removed the Tomcat version number from displaying on Tomcat standard error screens, the error "Tomcat 6 not supported or unable to detect version for custom Tomcat: Apache Tomcat. Contact Pega Customer Support!" appeared and Tomcat failed to start. Because Tomcat 6 was not supported for use with Microsoft SQL Server Systems, Pega used the ServletContext.getServerInfo() method to determine the Tomcat version; if the system used Tomcat 6 or an undetermined version in combination with MSSQL then the system would purposefully not start. As Tomcat 6 is no longer supported in Pega 8.5.2 and above, this check is unnecessary in those versions and the Tomcat version 6 checks in ClassMapImpl have been removed to allow serverAllowsMerge to return as true. | Data Integration |
INC-172546 | 652877 | Resolved classcast exception with assembled HTML controls | A classcast exception was being generated on login. Investigation showed the Static Assembler was unexpectedly using a different Assembler to assemble the Html control rule. Standard behavior is that StreamBuilderAssembler assembles controls of type StreamBuilder and ControlAssemblerForVTable assembles controls of type ControlBuilder. In this case, static assembly for HTML controls using VTable was performed using StreamBuilderAssembler, causing a classcast exception when using VTable because the instance of the generated.html class was incorrectly inheriting from StreamBuilder (the parent class of ControlBuilder) instead of ControlBuilder which is the specified interface in the generated.html Java code. This has been resolved by updating the system to skip rules of type 'Rule-HTML-Property'(control) during Static Assembly. | Data Integration |
INC-172675 | 649453 | Configuration added for extending queue processor timeout | Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds. | Data Integration |
INC-172692 | 650613 | InsID will be derived from handle if null for upgrade | Upgrade from Pega 7.2.x to Pega 8.4.x failed with a null pointer exception in the “Upgrade Context” target. This was traced to a rule where the pxInsID was null. To resolve this, an update has been made to derive the InsID from handle when needed. | Data Integration |
INC-174296 | 650754 | Delayed JS/DF initialization failures will trigger alert | In order to ensure better cluster monitoring, a PEGA0102 alert has been added for job registration failure that will be triggered if there are startup issues. The logging will include the JOB_NAME for improved troubleshooting. | Data Integration |
INC-175205 | 652286 | Agent restart made more resilient | During a timeout outage, agents intermittently encountered a NoClassDefFound error and were disabled. After the database connection was restored, the agents were not automatically restarting. This has been resolved by making the code more resilient to errors; agent will be restarted when a temporary issue is detected, and the restart will be immune to most exceptions. | Data Integration |
INC-175672 | 652942 | ServicePackage threads properly released | After completing a system stress test, the requestor pool threads for the ServicePackage were not released. Investigation showed that the threads were waiting for Data Pages to be loaded in the background even though there was no background job corresponding to those data pages in the Async Services pool. This has been resolved by making an update to avoid removing the object handlers when the load-datapage finds that an entry exists with a NOT_STARTED state. | Data Integration |
Decision Management
8.5.4 Resolved Issues for Decision Management
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-148899 | 615704 | Adaptive models update correctly | Some models had the recorded responses column updated, but the models (number of Positive, Negative and Processed Responses) were not updated. Investigation showed that deleting the modelRuleConfiguration through the stateManager/client did not delete modelFactories related to the configuration. If a new configuration came in with a different algorithm, the update issue occurred. This has been resolved by reseting the configuration according to its factory in that specific case. | Decision Management |
INC-156818 | 628467 | Materialization uses time limit boundary for query | After turning on Materialization for pyIHSummary and OfferOutcomesForPast45Days datasets, an SQL query was taking an excessive amount of time and causing multiple alerts in the logs. Investigation traced the issue to database partitioning, specifically that running a query where the pyOutcomeTime range spanned multiple partitions was causing the indexes for all partitions in the range to be opened. To resolve this, the query has been updated with a DSS to support a partition size of min(pxOutcomeTime) to limit the time range to querying day by day, or hour by hour, or any other chronology unit specified. If there are no records for the current limit, then it will look at the next partition. This should prevent the query from needing to open more than 1 or 2 partitions. | Decision Management |
INC-157357 | 636713 | Hazelcast remote execution not called from synchronized context | After navigating to the Admin Studio portal to view the nodes, the portal was temporarily freezing. Investigation of the thread dump revealed this was caused by a DDS pulse sending a remote execution call to all nodes to update logger settings even though the site was not using DDS. This has been resolved by updating the system to avoid calling Hazelcast remote execution from a synchronized context. | Decision Management |
INC-157629 | 626635 | Duplicate key exception resolved for adaptive model | During the model snapshot update, a DuplicateKeyException was generated while trying to insert a record in to the predictor table. This did not affect the model's learning, but did appear ion the model monitoring report. This was traced to a local scenario of having the same outcome values defined on the model with different cases (Accept and accept). All predictors used in an Adaptive model are inserted into the model monitoring tables as a part of the monitoring job: because the monitoring tables are not case sensitive, this lead to a unique constraint exception since there were multiple IH predictors with the same name. To resolve this, validation has been added which will skip adding duplicates from new responses. | Decision Management |
INC-159836 | 631204 | Upgraded Apache UIMA Ruta libraries to resolve memory leak | A memory leak issue that resulted in a reboot being needed every few days was traced to the class org.apache.uima.ruta.rule.RuleMatch. This has been resolved by upgrading the Apache UIMA Ruta libraries to v2.8.1. A high level of exception logging may be seen under high loads due to annotations in the standard Ruta scripts; this will not impact execution and further work will resolve this in a future release. | Decision Management |
INC-161604 | 631763 | Corrected unreleased database connections | When using a custom activity that calls Dataset-execute on a database table dataset, the DSS Pega-Engine.prconfig/classmap/usemergestatement/default was set to false and the prepared statement for a database table dataset was failing. Upon the failure, an exception was generated that prevented the database connection from being released. This has been corrected. | Decision Management |
INC-161604 INC-163597 |
631761 634741 |
Node stability improved when adding relevant records | A node was going down after maxing out the database connection pool whenever the inbound service call was invoked. This was traced to several relevant record-related database queries being invoked within a short time for marking 'when' rules referenced in the proposition filter rule as relevant records. This has been resolved by adding 'when' rules as Relevant Records based on a DSS and not adding auto-generated 'when' rules at all. | Decision Management |
INC-161829 | 645199 | EditElement Indexoutofbound exception addressed | Attempting to run the activity pyEditElement was failing with an IndexoutofboundException error. Because Java compiles circumstanced pyEditElement sections in the system from the non-circumstanced base version that exists only in the @baseclass, the java compilation of the pyEditElement can end up exceeding the 65 000 byte threshold as the number of Decision Data rule instances and the corresponding properties grows across multiple ruleset versions. As an intermediate fix for the Indexoutofbound exception, the ruleset version has been removed from the circumstance value to reduce the java generation. Please note that this may result in a decision data rule that was created or updated in a branch and then merged to a ruleset version failing a subsequent checkout from the same merged ruleset version. Further work will be done on this issue in the next update. | Decision Management |
INC-163723 INC-165513 INC-166354 INC-171221 |
633440 645683 637301 645988 |
Queue Processors made more robust | After upgrade, multiple queue processors were not running as expected. Attempting to restart them generated an error. Investigation showed that the real time data flow runs were not picking up or accepting assignments because the local node was under the impression it was still processing data. In this case, the need to synchronize the state of multiple threads caused the queue processors to become stuck in an initializing state due to a race condition that caused the data flow engine to think this run still had threads running when all threads were already stopped. To resolve this, the callback handling has been simplified and made more robust. In addition, in some cases the data flow leader node would believe the service nodes did not accept assignments even when they did. This occurred if many runs and nodes were involved, and was traced to an implicit limit on the NativeSQL query used to read the data to see which assignments were accepted. To resolve this, the key-value store in the Service Registry has been modified to allow a query of more than 500 entries at once. | Decision Management |
INC-164581 | 634155 | Import UI option updated to handle data import for upgrades | After upgrade from Pega 8.1 to 8.5, importing data into the datasets using the Actions->Import UI option was not working. This was due to the previous save operation used in import being deprecated, and has been resolved by instituting a new save operation in import to handle this scenario. | Decision Management |
INC-165704 | 639504 | VBD data flow timeout increased and made configurable | Intermittent VBD timeouts were seen when writing records to MSK even though no errors were reported on the MSK side. Analysis showed that while batch data flows retry when a timeout occurs, real time data flows do not retry and the configuration to wait up to 10 seconds for an acknowledgement may not be sufficient depending on the system conditions. This has been resolved by increasing the default timeout to 20 seconds and adding a configurable timeout "vbd/streamPublishTimeoutMillis" to allow a customized setting. | Decision Management |
INC-166230 | 638268 | Updated timing for canvas flow refresh | After launching the PegaCRM Suite and logging in, launching the Customer Decision Hub portal and clicking on Content->Actions from the left navigation menu to open the BlueLabel action rule generated an "invalid operation" error message. This was traced to the flow refresh happening before the canvas was fully loaded, which was caused by an independent canvas refresh being called from a different js rule after rule check out. This was a missed use case that resulted in a race condition, and has been resolved by ensuring the framework handling the canvas flow refresh waits for the canvas "Viewer" object to be created first before triggering a refresh. | Decision Management |
INC-166561 INC-167414 |
645649 646035 |
ADM Models correctly updated | The ADM models were not being updated when responses were processed either via the CaptureResponse API or when the time elapsed that should result in an update reflecting a non-response. This was traced to incomplete handling for a response coming for some other model which was converted to _EMPTY_, and has been resolved by modifying the logic so that the default responses and other responses are processed properly. | Decision Management |
INC-167334 | 639317 | GRS support added for Kafka Key password | An enhancement has been added to support using GRS to set values for the Kafka Key password dynamically. | Decision Management |
INC-168271 | 640348 | ADM performance improvements and duplicate inputs corrected for delayed learning records | Additional work has been done to improve the performance for Adaptive Models used in multi-level decisioning, and an issue with duplicate pxCommonInputs has been resolved. | Decision Management |
INC-168779 | 642416 | Cassandra default driver upgraded | An admin user connection to an external Cassandra server was successful, but all of the ADM nodes were failing with the error "Cannot start service [ADM.Default]. Will retry in 180 seconds. com.datastax.driver.core.exceptions.UnauthorizedException: User n_admin has no CREATE permission on or any of its parents". This has been resolved by upgrading the Cassandra default driver version to 3.6.0. | Decision Management |
INC-169125 | 642400 | Nodes resume correctly after DDS restart | A corner case issue in VBD's code for handling a DDS session was preventing the nodes from recovering correctly after a system shutdown. As part of the process for an event which fires if all DDS nodes are taken down or as part of a switch from embedded to external Cassandra, VBD's cache is invalidated and then re-initialized once new VBD API calls are received or on the VBD service pulse. In this case, the invalidation of the cache did not complete due to logic in the VBD code that can lead to executing a Cassandra query that will not work in the case of all DDS nodes being down. This has been resolved by modifying the handling of a session change event to eliminate inadvertent Cassandra queries so the invalidation can complete correctly and continue the re-initialization process. | Decision Management |
INC-169544 | 649539 | Enhancement for MaxEnt modeling data | An enhancement has been added to create output for the model coefficients, the term frequency, and the inverse term frequency for use in maximum entropy modeling. For MRM processes, every Maximum Entropy (Maxent) based topic model will contain two additional stats resources. These resources can be used to validate and replicate running of topic model outside of Pega. The resources are: 1) Term Frequency file – A CSV file with all words used for training and their cumulative frequency across training set. File name format – TRAINING_DATA_TERM_FREQUENCY_< RandomNumber >.csv olumns – Word, Count 2) Coefficient file – A CSV file with all features (words, taxonomy matches and category matches) and model learnt weights for each topic across training set. File name format – MAXENT_COEFFICIENT_VALUE.csv Columns – Feature, < TopicName1 >, < TopicName2 > ,…, < TopicNameK > |
Decision Management |
INC-170149 | 645724 | pzTenantID removed from Revision management classes | After upgrade, issues were seen with case types in the case explorer. This was caused by the Revision management work classes created in the 7.1.x version having pzTenantId property in the rule XML when it was not defined anywhere in the 8.x versions, and has been resolved by removing the pzTenantId property from the Revision management classes. | Decision Management |
INC-174933 | 651827 | Special characters escaped for use in "is in List" lookups | After creating a specific criterion on any proposition using a string property, the "Is In List" operator, and a customer list with one value containing a "$", clicking save or check in resulted in the exception error "Problem invoking function: pega_decisionengine_propositionfilterfua.pzPropositionFilterMethodBody--(PublicAPI,ClipboardPage) java.lang.IllegalArgumentException: Illegal group reference at java.util.regex.Matcher.appendReplacement(Matcher.java:857) ". This has been resolved by escaping regular expression control characters in string replacement, which will allow the use of characters such as the $ sign for "is in List" lookups. | Decision Management |
Low-Code Application Development
8.5.4 Resolved Issues for Low-Code Application Development
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-162881 | 636993 | Decision Table check-in warnings supported for large tables | After adding an empty row in the middle of Decision Table rows and checking in, the Decision table rule's CheckIn form shows a functionality warning about a conflict in decision table ("This rule contains 1 logic conflict(s). Click the 'Show Conflicts' button for more details."). However, this behavior did not occur as expected if the decision table had more than 500 cells in it, and has now been resolved. | Low-code app development |
INC-163970 | 636137 | Expression Builder updated for special character handling | If a modulo operator (%) was used in expression builder, the expression showed the correct value when it was submitted (closed) but on reopen the expression was changed and not calculated correctly. If the expression was not reopened then it calculated the value properly. This issue was traced to a server call to pzEvaluatePegaExpression which treated certain values as containing special characters, and has been resolved by updating the handling for this scenario. | Low-code app development |
INC-164002 | 639913 | Decision table null input handling updated for backward compatibility | After upgrade, any null values as inputs in the decision tables were skipped if "Allow Missing properties" was not checked. This behavior was different from previous versions. In order to improve backward compatibility, the new function pxEvaluateDecisionTable has been added which has an additional parameter to set AllowMissingProperties, and the older function logic has been modified to take the parameter value from the parameter page. | Low-code app development |
INC-164171 | 635868 | Support added for connect-SOAP run in parallel mode | When connect-SOAP was configured to use the “run in parallel” mode, application settings derived through a datapage had incorrect values. While running the connect-SOAP through an activity, all the values were derived incorrectly. This has been resolved by adding a synchronization enhancement to support parallel run connect.SOAP. | Low-code app development |
INC-164944 | 636292 | Logic updated to handle decision trees over 64k | Logic updated to handle decision trees over 64k An exception was thrown when decision trees reached the 64K size limit. This has been resolved by modifying the logic in the DecisiontableMethodBody Rule-Utility-Function where the split size nPropRowLimit is based on the number of columns. |
Low-code app development |
INC-168094 | 642627 | Security updated for help URL infrastructure | Cross site scripting protections have been added to the help URL infrastructure. | Low-code app development |
Mobile
8.5.4 Resolved Issues for Mobile
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-139861 | 594006 | Cross-site scripting protections added to Case Email | Cross-site scripting updates have been added to rules handling linked email correspondence. | Mobile |
INC-155640 | 622978 | Mobile logging updated for data page required parameters | After upgrade, the number of warnings increased substantially in the mobile app log file for D_Pages, specifying "Required parameter X for data page X cannot be blank." This was traced to the forced logging related to missing required parameters for Parameterized DataPages during DeltaSyncs. In order to increase the value of the logging, the process has been moved from being called before packaging the Data Page to being printed later in packaging code and set to warn only about any unsupported data page configuration with required parameters. | Mobile |
INC-157217 | 631970 | Field Service mobile refresh timing updated | A configuration in the Field Service mobile app used to select and map data from a modal section to a wrapper section used "pega.fsm.mobileutil.reloadSection" to refresh the wrapper section and make the data visible after the mapping. If the refresh was performed after the initial login, the refresh was done on only a portion of the screen and resulted in incorrect data being shown to the user. However, continuing to fill in the section and then saving and reopening the task displayed the correct results. The issue was reproducible only on the first attempt after clearing cache/date: subsequent uses refreshed properly. This was traced to the timing of the configured actions, which caused the refreshSection action to be triggered before the runDataTransform action execution was completed. This has been resolved by adding code that will pause the action queue until the runDataTransform action completed. | Mobile |
INC-157532 | 631715 | Corrected runtime name length check for custom fields to resolve logged error | The error "Notification_MobilePush.Action ERROR - Can't parse JSON string to map" was being frequently logged. Investigation showed that in the Step8 activity in pySendNofication from Pega-Notification-MobilePush class, setting @String.length(customFields)>0 where customFields was a local value caused the runtime length check on customFields to fail. To resolve this, the Step8 activity in pySendNofication from Pega-Notification-MobilePush class has been modified from using @String.length(customFields)>0 to use @String.length(Local.customFields)>0. | Mobile |
INC-160275 | 628104 | Unchecked Include descendant classes in pyFeedUserDetails report definition | After upgrade from Pega 7.4. to Pega 8.4, the use of a custom class 'XX-Data-OperatorLoginDetails' which pattern-inherits from Data-Admin-Operator-ID was causing the error "Union not applied because properties [pyImageFileName, pyEmailAddress, pyUseLocale, pyDefaultTimeZone] are not optimized in Data-OperatorLoginDetails”. This happened when the case manager portal was launched and the report definition pyFeedUserDetails (introduced in newer releases) was running by default, and was due to the presence of a few unoptimized properties when the report definition had "Report on Descendant classes" - include all descendant classes, checked by default. To resolve this, the checkbox to Include descendant classes in pyFeedUserDetails is now set as unchecked by default. | Mobile |
INC-160295 | 635009 | Null check added for pzinskey in CSLoadSelectedArticle | In step 5 of CSLoadSelectedArticle, there is a call to pzGetAssociatedTags. Step 1 of pzGetAssociatedTags is an Obj-Browse with MaxRecords set to 100000000, and there is logic to retrieve records where pxLinkedRefFrom = Primary.pzInsKey. If Primary.pzInsKey is null, then the Obj-Browse will fetch all of the records. In order to prevent an unnecessary flood of results, a when condition has been added in the CSLoadSelectedArticle rule to check pzInskey so that when the context is empty the system will not call the pzGetAssociatedTags and return the entire record set. | Mobile |
INC-160851 | 631619 | Multiple Pulse attachments deleted correctly from datapage | If a Pulse post had only one attachment, removing the post using the Delete option correctly deleted the attachment from Link-attachment and Data-WorkAttach-File. However, if more than one attachment was present, the attachments were removed from view in the UI but were not deleted as expected from the datapage D_AttachmentList. This caused the pr_data_file table to grow very large. Investigation traced the issue to a 'when' condition in the PegaSocial-Message-ValidateDelete activity that was incorrectly being set to true due to a null value and causing the system to skip the deletefile step. This has been resolved by updating the logic to correctly handle removing multiple attachments on delete of a post. | Mobile |
INC-161214 | 640892 | Push notification of shape-created child case opens correct case | In a scenario with two cases, CaseA and its child case, CaseB, when CaseB was created from CaseA with a standard shape and a push notification was sent right after creation, the "Custom message" notification received on a mobile device opened CaseA instead of CaseB. If CaseB was created as a standalone case, the push notification opened it properly. This was traced to an edge case where the Primary.pzInsKey was empty because the child case was not available in database when the push notification payload was created by push shape, leading to the CaseID retrieved by getInstanceHandleFromPage to fetch the parent Case ID instead. This has been resolved by modifying the process to get the pzInsKey from the step page. | Mobile |
INC-161398 | 639854 | DataSync SynchronizationResponseStreamer logging enhancements | The PegaRULES log contained "Response page does not match request, will generate failure response" errors even though no functional impact was observed. In order to enhance troubleshooting, additional DEBUG logs have been to DataSyncHandler, SynchronizationResponseStreamer is now logged on INFO level and contains more detail, and the error message has been modified to "Cannot prepare continuation response because offline package was stale. Will generate reset schedule response." to be more informative. | Mobile |
INC-164532 | 635299 | Correct context set for offline chat email processing | After configuring "Allow end-customers to submit an email when chat is unavailable", the options for email and message were presented in the chat window and an item was queued for the queue processor cyCreateOfflineEmailMessage, but the queue processor became stuck on the queue item. Investigation traced this to the configuration causing the pyShouldExtensionBeLoaded activity to run under the incorrect context, which prevented it from accessing the needed workparty and goal values. This has been resolved by adding the pyShouldExtensionBeLoaded class to the pages to ensure the correct context. | Mobile |
INC-164947 | 639861 | Handling added for missing div when opening work object | In mobile offline app, opening a work object in a specific scenario for the second time resulted in an endless busy indicator. It was not possible to navigate away, and the app had to be closed and reopened to continue. Investigation showed that some app sections had an action that tried to load a harness section where one specific div was missing, and this has been resolved by updating reloadSectionOSCOHandler to handle the missing div in the failure callback. Additionally a console.error() will appear for the missing section. | Mobile |
INC-165779 | 641974 | SQL query handling updated for mobile | When the check box in mobile channel "Disclose application size when users log in for the first time" was enabled it produced the error "There was a problem getting a list: SQLState: Message: ERROR: relation "pr_data_full_sync_stats" does not exist". Investigation showed that all SQL queries passed to *getDb().executeRDB(...)* method were using the SQL table directly, ignoring any customizations to table mapping or database prefixes. This has been resolved by replacing the table name with a class reference ("Class: Pega-OfflineFullSyncSizeStatistics") so that table mapping can replace the reference with a proper table name and proper database prefix. | Mobile |
INC-167388 | 650951 | Values treated as strings for offline data transform concatenate | When using a Data Transform to construct a URL using multiple properties that contain values with a leading or trailing "0", the "0" was trimmed when the corresponding mobile JS code was generated using pega.process.expression.getValue("pyWorkPage.PlanData.SegmentID", "pyWorkPage.PlanData") . This was traced to the offline property type assuming that any numbers-only string should be treated as a number, so the data transform concatenate was converting “0001” to 1. To resolve this, the value will be treated as a string when being evaluated in an offline data transform. | Mobile |
INC-168483 | 644321 | RemoveAssociation cleanup modified | Step 8 of @baseclass.pxRemoveAssociation called an Obj-Delete method with the Remove parameter checked which was prematurely removing the page from the Clipboard when it was needed for further processing. This has been resolved by updating pxRemoveAssociation to uncheck the remove option for obj-delete, and cleanup will be handled by the Page-Remove in step 16. | Mobile |
INC-168935 | 645395 | CalendarGadget updated to display events in Saudi locale | When using the pxCalendar section with the locale setting ar_SA, the calendar was correctly converted to a Saudi calendar but the events which were showing in the English version of the calendar were not showing up in in the Saudi Calendar. This was caused by the CalendarGadget page not populating properly due to the localized Hijri calendar failing a datetime check that was looking for a Gregorian calendar with time in GMT format, and has been resolved by updating the when rule "pzShouldDisplayEvent " to use the proper function for the localized calendar. | Mobile |
INC-173633 | 650277 | Google Key security updated | Cross-site scripting protections have been added for Google Key. | Mobile |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.5.4
Reporting
8.5.4 Resolved Issues for Reporting
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-151293 | 630346 | Out of memory condition resolved for BIX extraction | A node was going down automatically during execution of a BIX Extract rule when working with old objects. Investigation showed this was related to an out of memory error: the work object had nested page lists, and when one of the page lists contained a propertylist which contained more records, the system was trying to add entries to the LinkedList if any properties were missing the reference during extraction. Because LinkedList allowed duplicates, it filled with enough errors to cause the out of memory condition. To resolve this, LinkedList has been replaced with LinkedHasSet, which does not allow duplicates. | Reporting |
INC-158473 | 626278 | BLOB decryption API updated for greater flexibility | A BIX extraction issue occurred after the class had enabled BLOB Encryption. The errors indicated the BLOB had been persisted in an incorrect stage, causing the extraction of the single item to never complete even though some CSV file was created. This was traced to the API used to read the encrypted BLOB, DatabaseUtilsCommonImpl.getStreamBytes, which had the limitation of decrypting only when a Site-specific cipher existed. To resolve this, the system has been modified to use a different API which works for all encryption modes, PageDatabaseMapperImpl.getStreamBytes(). | Reporting |
INC-159759 | 629625 | Report title displayed for empty widget charts | Per design if there is no data to be rendered in the chart from a report added in a Widget in any portal, a static image is displayed saying "No Data to Display". However, if there were multiple reports in the Widget it caused confusion on which report was not being displayed because the image did not show the title of the report. To resolve this, an enhancement has been added to modify pzRRChartDiv to display the report Title even when there is no data in it. | Reporting |
INC-160178 | 632896 | Local time used for report filters | The date format in the filter condition of the report was being displayed in GMT format rather than the Local time Format. This has been corrected. | Reporting |
INC-160608 | 648635 | Added handling for missing deleted/report shortcut for drilldown | Whenever “Report Details” for a drilldown report without category was clicked, a Flow Action Error was generated. This was due to a missing Report shortcut normally stored in the Report Definition, and has been resolved by modifying pzPreProcessReportDetails to handle the edge case of a shortcut not present/deleted for a drill-down report. | Reporting |
INC-162649 | 639399 | DSS added for handling missing attachments | When an S3 repository was configured as storage, some cases were not coming up in search and exception errors were seen in logs for a deleted attachment after every system restart/re-indexing of the search. Investigation showed these case objects were in the broken queue for pyFTSIncrementalIndexer due to a null pointer error encountered when indexing the attachment, and that the attachments were available in the repository but could not be read from the attachment repository during indexing. To resolve this, a new DSS setting has been added which allows selecting one of two behaviors: - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = true : broken item is generated, but with a meaningful error message. This is the default behavior - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = false: case is indexed, but without the problematic attachment. Error message is printed out to the logs. |
Reporting |
INC-163173 | 651077 | Datatype import updated to handle null value | After upgrade, attempting to import CSV files in Data type using the import option provided was not working. This was traced to the AccessPolicy Filter value being set to null in the filterLogic, and has been resolved by modifying the 'if' condition in the NativeSQLSecurityPolicyHelper file to handle an empty value in the logic string of an access control policy condition for a datatype class. | Reporting |
INC-168203 | 641338 | Improved performance for data flow runs | Nodes were intermittently going into safe mode after a service registry heartbeat failure. Investigation found that some of the activities were performing an Obj-Browse that invoked report definition logic to call the database classmap. This has been resolved by modifying the implementation for the initialization and caching of list of classes in a table. | Reporting |
INC-169856 | 649459 | Personalized table sort order limited | After implementing a personalized table, the query started adding more 'order by' sorts, causing system impact. This was traced to the pzPopulateSortOrder activity Implementation having different constants assumed for the same purpose (999 in one place and 99999 in another), and has been resolved by updating the logic in step 1 and step 2 to disregard sort orders higher than 999. | Reporting |
INC-170389 | 645002 | Updated authentication for report filter screen | If the report filter screen was shown first after clicking on the report link in the report browser, an error is generated for users but not for administrators. This has been resolved by registering the activity and adding a BAC registration section to the prompt filter section. | Reporting |
Security
8.5.4 Resolved Issues for Security
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-157095 | 638807 | Enhancement added for tenant-level authentication | In a multi-tenant PDC with a few tenants that utilize their own custom SSO, a pre-authentication activity inside a tenant that should block community access was also affecting tenants that did not have that pre-auth activity set. This was a missed use case and has been resolved by adding a tenantId hash in SchemePRAuth.makeUniqueSchemeName() to create the authServiceName. | Security |
INC-161260 | 634051 | Enhanced logging for CBAC policies | Additional logs have been added to assist in easier debugging of any configuration issues with CBAC policies. | Security |
INC-161660 | 633030 | Authorization token handling and cleanup improved | When using a mobile app configured with default authentication, clicking on the "Trouble logging in?" link opened a new window and displayed the message "please contact your system administrator" along with the error "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY CODE-SECURITY PZGETAUTHORIZATIONCODE". This has been resolved. In addition, the OAuth token generation and handling has been improved, and the purge agent has been updated to accept a DSS setting for the max number of expired records to purge each time it is run. The default value is 5000. | Security |
INC-162434 | 640052 | LookUpList correctly executes during SSO login with model operator | After configuring SSO to create operators on fly using a model operator, a new user logging in for the very first time had their operator ID created using the model operator, but after upgrade new users logging in to the system received the error "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY @BASECLASS LOOKUPLIST". This was due to the methods used for additional security on the activity @baseclass LookUpList which allows it to only be run by authenticated users, and has been resolved. | Security |
INC-163201 | 646911 | BrowserFingerprint updated | Security improvements have been added to the browser fingerprint process. | Security |
INC-168837 | 646973 | CSRF token updated for use with OKTA login | An issue seen while connecting via OKTA has been resolved by updating the CSRF token validation for use with IDP initiated SSO login. | Security |
INC-169310 | 649713 | Cache check added for SQL queries | When performing load testing, a high number of gets were seen for some SQL Queries. In order to improve performance, a check has been added in GlobalTrustStoreCacheImpl.java to assess whether the cache has been initialized or not. | Security |
INC-169332 | 648298 | Added check for blank username in password reset form | The "Forgot password?" screen was allowing the form to be submitted with an empty username so it proceeded to the next screen (verification code). This has been resolved by adding a check for a blank username with the appropriate related error message. | Security |
INC-170423 | 648984 | Added catch for SAML WebSSO duplicate key exception | After logging in from SSO, closing the Pega window and opening it again resulted in the error "Unable to process the SAML WebSSO request : Violation of PRIMARY KEY constraint. Cannot insert duplicate key in object." This has been resolved by updating the session index handling and adding a catch for the duplicate key exception. | Security |
INC-173294 | 650236 | Mobile "Forgot Password" supports circumstanced rule | An enhancement has been added to support a circumstanced rule for the "Forgot Password" flow on mobile. | Security |
INC-173466 | 651456 | Operator security enhancements | It was possible to enable an operator from the operator access landing page even when write access was denied in the data admin operator class. This has been corrected. | Security |
System Administration
8.5.4 Resolved Issues for System Administration
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-159834 | 632248 | StackOverFlow logging improved | Enhanced diagnostic logging information has been added to help find issues when StackOverFlow errors occur. | System Administration |
INC-161984 | 638857 | Web Tier busy threads released on timeout | Tomcat Web Tier Busy Threads were not being correctly released, causing stability and performance problems that included health check pings not receiving a thread to service the request so the node was marked as bad, users were quiesced, and the node replaced. Investigation showed the 'put' on the blocking queue did not time out when the queue was full and waited indefinitely, keeping the thread blocked. To resolve this, the system will use 'offer' on the blocking queue instead of 'put' to force thread release on timeout. In addition, debug logs have been added to understand when the offer (or Put) does not succeed and the state of the queue that is causing this issue; the debug logs for class com.pega.pegarules.session.internal.serverpush.RoboticAutomationImpl should be enabled only if the thread busy issue is observed and for limited time window while actively debugging. | System Administration |
INC-164794 | 637992 | Apache Commons libraries updated | Apache commons-codec has been updated to version 1.15 , and Apache commons-io has been updated to version 2.7. | System Administration |
INC-171587 | 652187 | Resolved Push Node Daily Information exception | The "Push Nodes Info Daily" agent was generating an exception on each of the nodes. This has been resolved by enhancing the PegaAESRemote code to handle the exception and get the node info locally, then push it to the console when it is not able to get it via the cluster management API. | System Administration |
INC-173162 | 650794 | Certificate match will use Subject Distinguished Name | Signature verification was failing due to the system not finding the matching root certificate for the chain. The root certificate was in the trust store, but the system found a different certificate first and that other certificate (an intermediate certificate) was not considered a valid certificate for validating the whole certificate chain. This was traced to filtering on the Issuer Distinguished Name (DN) instead of the Subject DN and was due to intermediate certificates potentially having the same Issuer as a root certificate (e.g. if that root certificate was used to create the intermediate certificate). To resolve this, an update has been made to check the Subject DN instead of Issuer DN. | System Administration |
INC-174298 | 650258 | Instance count logic updated | A performance issue was seen during upgrade that resembled an upgrade hang. This was caused by a combination of incorrect logic in DDLGenerator.getInstanceCountForClass() around counting instances of 'core' classes and all of the site history-data- tables being mapped to the same table that had 1.4+ billion rows. This behavior has been addressed with more correct query logic while performing instance counts. In addition, instance count will be supressed during command line invocations (prpcUtils, platform upgrade). | System Administration |
User Experience
8.5.4 Resolved Issues for User Experience
SR | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-146098 | 633723 | Keyboard shortcuts work in Decision Trees | Keyboard short cuts in Decision Trees used to copy/paste by holding ctrl button in Decision Trees were not working. This was an unintended side effect related to changing non-auto grid to an auto-generated hierarchical table to make the Decision tree rule form multi-browser compatible, and has been resolved by adding cut/copy/paste/insert-after/insert-before functionality to the decision tree context menu. | User Experience |
INC-153266 | 633282 | Error message after submit persists appropriately | When a template grid was in a section of flow action that performed validation and then populated an error message on a primary page post-processing, the messages were unexpectedly cleared after a very brief period. Investigation showed the network request made by the template grid created a state page on server which was being cleared, and this has been resolved by adding an update that will pass pzKeepPageMessages as true in the network request so the error message will persist as expected. | User Experience |
INC-154754 | 629906 | Check added for portal when performing local actions | When using an Interaction case with a service case, performing any local action on this service case and then creating a new service case resulted in the I-related properties like CAParentID and CurrentInteractionID taking the pyID of the previous Service case where the local action was performed. This was caused by the parentKey value not being updated correctly in redux state whenever a local action was opened in a service case in a particular portal, and has been resolved by modifying the pzpega_ui_redux_reducers file to update 'parentKey' only in case of a DC SPA portal. | User Experience |
INC-155070 INC-157367 INC-164892 INC-165277 INC-167747 INC-170304 |
637580 637947 636540 645169 649656 645810 |
PDF generation corrected | Issues with PDF generation have been resolved by upgrading the PD4ML libraries to version 4.0.9fx5. | User Experience |
INC-155878 | 645364 | Class list updated when using ActivateDocument in portal navigation | Global search worked the first time it was used, but failed after another case was opened from the dashboard or there was a click on any landing page home, dashboard, or space. Investigation showed this was caused by the pySearchText being blank in the clipboard, which was traced to a harness context issue related to pega.desktop.activateDocument being used in pzPortalNavigation on DynamicLayout with Application Logo and Application label. To resolve this, an update has been made that will update the class list with the proper one when the data-harness-id is set. | User Experience |
INC-156992 | 628624 | Corrected custom portal JUMP condition | After upgrading Pega from 8.3 to 8.4, a custom portal was not correctly rendering the stream although the activity was getting executed and the clipboard had all the necessary data. This was traced to a syntax error in work done earlier that placed the JUMP condition (.pyDesktopType=="Custom") in ShowDesktop at the pzPopulateRequestor call step, and has been corrected. | User Experience |
INC-157448 | 638924 | Latitude and longitude populated for CreateWork history | After enabling geo location in the casetype rule, when the case was created using the Create menu option from either Dev studio or Manager portal the Latitude and longitude values were set on the pxRequestor page and were available in the Case Audit history in the Map control. When the same case was created using CreateWork action configured on a button, it did not log the latitude and longitude values in the case Audit history. Investigation showed this was caused by a 'when' condition in the AddWorkHistory activity which checks the requestor page for latitude value and which had a null value when a createWork action was used to create the case. To correct this, the template metadata of the form will be populated with latitude and longitude values from pxRequestor page to be used in the latitude and longitude hidden fields. | User Experience |
INC-157662 | 631999 | Accessibility updates added for images and icon controls | In order to improve accessibility, aria-hidden has been added to button and link controls for decorative images, and the alt attribute will be generated by the icon control only when the icon source is Image. The icon control has also been updated to set accessibility roles based the following: if actions are configured -> role=button if no actions are configured -> role=img if type is url/phone/email -> role=link |
User Experience |
INC-157737 | 631688 | Added ability to support multiple domains for users | Previously, the DSS setting MultiTenant/CrossTenant/DomainName supported just a single domain. In order to support multiple domains for internal and external users, an enhancement has been adde so that given two domain values provided as comma-separated values in “MultiTenant/CrossTenant/DomainName” DSS setting, pzSetCrossTenantDomain will determine the correct domain value using pxRequestor.pxReqServer. | User Experience |
INC-157860 | 633947 | Corrected error message display in right-to-left locales | When using the standard report definition view in the Arabic (ar_AR) locale, error messages for a filter condition were displayed with an incorrect extended horizontal scroll bar with white space. This was traced to the legacy popover styling causing an issue with locales that display text from right to left, and has been resolved by setting the default overlay left to 0PX for these locales. | User Experience |
INC-158129 | 635306 | Left navigation expansion made accessible for tab/keyboard actions | The left navigation "aside" DOM element did not expand if reached with the keyboard tab actions, but did with mouse hover. This has been resolved by updating the selectors for focus within left nav and updating the script to collapse the menu pyAutoCollapseLists section. | User Experience |
INC-158974 | 631272 | Messages cleared from WorkPage so "load more" link works as expected | After being migrated, a link button script for "load more" in a repeating dynamic layer was not rendering more data on the UI if there was an error in pyworkpage. Refreshing the UI to clear the error and clicking the "load more" link then displayed the new set of Data. If no error occurred on pyworkpage, then clicking the "load more" worked the first time. This was traced to the success handler ignoring the response if there were errors on pyWorkPage, and has been resolved by updating the pzinvokerdlpreprocessing activity to add 'Page-Clear-Messages' as the first step. | User Experience |
INC-159506 | 635903 | Corrected column alignment for Report Definition exported to PDF | Aggregated columns such as count were not properly aligned in the PDF when a report definition was exported. This has been resolved by adding right justification styles in pyReport_ExportToPdfStyles.css. With this change, the PDF will look similar to the report definition displayed in the UI. | User Experience |
INC-160130 | 630960 | MultiSelect control corrected for Google Chrome on Tablets | It was not possible to expand the multiSelect control dropdown in Google Chrome on tablets. The search worked if text was typed into it. This was due to the method isMobilePhone returning true for both mobile and tablet, causing the system thought it was mobile and stopped the normal behavior. This has been rsolved by adding a regular expression check in the pzpega_control_multiselect isMobilehone() method to check if it a tablet. The isMobilePhone() method will return false if the device is tablet so the dropdown appears as expected. | User Experience |
INC-160624 | 633084 | HTTP Strict Transport Security update | An update has been made to increase the max age of the HTTP Strict Transport Security (HSTS) header parameter from 7 days to 1 year. | User Experience |
INC-160839 | 643469 | Session timer corrected | Configuring pxsessiontimer in the Portal header to log users off after 30 minutes was not working as expected: users were still logged in the next day or after keeping the session idle for more than 30 minutes. After waking up the system, it was possible to search clicking on the search results resulted in being logged out. This was traced to the ShowLogoffTimer activity not being correctly registered, and has been resolved. | User Experience |
INC-160843 | 631727 | Performance improvements for multiple visibility expressions in repeating structures | After upgrade, performance degradation was seen and PEGA0069 alerts appeared frequently. Investigation traced this to performance issues with the expression evaluation on the client when there were multiple visibility expressions in the repeating structures. To resolve this, updates have been made to the pzpega_ui_ExpressionEvaluator.js to reduce the number of calls to _getCtxElement( ) in side loops. | User Experience |
INC-161126 | 631089 | Edit validation message appears on Cosmos UI | When using a flow action in Cosmos, validation messages did not appear on the UI as expected but an error would be thrown while clicking on the submit. This was traced to an unneeded visibility condition present on the section "pyCaseActionArea" when "pyCaseErrorSection" was included, and has been resolved. | User Experience |
INC-161409 | 632725 | Added handling for checkbox group to use form tag when field tag is not available | After configuring the Checkbox group component from the UI gallery in one of the sections in an application built on Theme-Cosmos, the configuration worked as expected when creating a new case type, but opening this WorkObject from the Associated cases section on the child case caused behavior issues including being able to select select multiple options instead of a single radio button. Investigation showed this happened when navigating through the work flow under the Perform Harness, but worked as expected when navigating through the Review Harness. This has been resolved by modifying the selectors to target form tag if the fieldset tag is not available. | User Experience |
INC-161722 | 632868 | Resolved preview button issues with Microsoft Internet Explorer 11 | After opening the case from "My WorkList" when using Microsoft Internet Explorer 11, trying to go back to "My WorkList" /"Dashboard" to preview the case resulted in the preview button shrinking and the text not being completely visible. This was traced to the field -et being initially assigned to the text of the dom element in Internet Explorer, but then being removed while navigating within the pages. To resolve this, an update has been made so field-set is assigned to a variable and the same variable is assigned to the preview text. | User Experience |
INC-161757 | 630690 | CKEditor correctly formats copy and paste | Formatted text from Micrtosoft Word was not retaining its format when pasted into the rich text editor. This was caused by the inch to px and pt to px conversions not happening properly for margins, and has been resolved by adding a margin fix for nested bullets and lists. | User Experience |
INC-161909 | 635149 | Upgraded pd4ml library to support Hindi text | Some Hindi letters were not displayed properly in PDF . This was caused by Hindi text being only partially supported with earlier versions of the pd4ml library. It is now fully supported with the 4.0.9fx5 version, and the system has been upgraded to 4.0.9fx5 jar for better rendering of Hindi characters. | User Experience |
INC-161937 INC-169012 |
640265 651255 |
VMWare workspace One Mobile support added | Support has been added for the VMWare workspace One Mobile app by updating the BrowserUtilsRuntime file to add the necessary user agent. | User Experience |
INC-161996 | 636874 | Mobile back button updated for case completed scenario | Mobile back button updated for case completed scenario In a scenario when a case was resolved and assignments were removed from user pages, the hitting the back button presented the error: "unable to open an instance using the given inputs". This was a missed use case for using the back button on the mobile app after a case is completed, and has been resolved by modifying the back button action in this scenario from "window.history.back" to Cancel action. |
User Experience |
INC-162012 | 633726 | Leeway added for circular reference checks in nested section includes | In the pyCaseMainInnerMobile(“work-“ class) section, attempting to apply a few changes for the pyMainCasePanelMobile section which was already included inside a pyCaseMainInnerMobile Section resulted in the submit button not working from the popup. This was an edge case where a deeply nested section include was referencing sections from a Pega marketing class as a result of backporting sections from the marketing application. To resolve this, constraints on circular reference checks have been loosened. | User Experience |
INC-162122 | 633066 | Create modal is accessible when creating case from Create menu | After creating a new case in the Cosmos User Portal, the “Create” screen Modal Dialog opened but focus did not move to any element within the modal dialog but instead stayed on the “Create” button on the left side menu of the User Portal. It required approximately 50 tabs to reach any actionable element within the modal dialog. Investigation showed that the create modal launched the section in an AJAX container that looked like a modal, but the focus was not being correctly set on the first element. This has been resolved by ensuring there is a focusable element when launching an AJAX container. | User Experience |
INC-162426 | 638770 | Regex handling updated for Rich Text Editor spellcheck | When using the Rich Text Editor and performing a spell check, the spell checker was adding additional CSS to the property. This was traced to the presence of a unicode newline character causing the existing regex to fail to strip the style tags. To resolve this, regex handling for the unicode newline character in the style tag has been added. | User Experience |
INC-162642 | 636139 | Show Stream activities updated | Authentication requirements have been added to Show Stream activities. | User Experience |
INC-163198 | 637797 | Performance improvements for research path interaction | Research path interaction driver composite loading was taking an excessive amount of time due to RULE-HTML-SECTION @BASECLASS ERRORLIST being called multiple times. This has been resolved by changing the ErrorList Section to guard the getMessagesMapByEntryHandle API call with a condition "if (ClipboardPage.getMessageCountAll > 0)". | User Experience |
INC-163341 | 637299 | Discard functionality in dirty check confirm corrected | Clicking on the Discard functionality in the dirty check confirm on popup closed the item rather than launching the expected work flow. This was traced to gDirtyOverride being returned as false instead of null in the explorerFormIsDirty function. To resolve this, the logic used to for gDirtyOverride on a native alert close for dirty handling has been removed. | User Experience |
INC-163544 | 639300 | Accessibility corrected for Cosmos user portal left navigation panel | It was not possible to see the focused control label in the left pane of the Cosmos user portal because it was not expanding when its control received focus from tabbing. Investigation showed the class acting as a polyfill for :focus-within was applied only on the observed element when using Microsoft Explorer 11, and this has been resolved by updating the CSS selectors and ensuring the class is applied to every parent element down the DOM tree. | User Experience |
INC-163596 | 636236 | Checkboxes receive correct focus with accessibility | It was necessary to click the tab twice in order to check the checkbox in the filter popup. This has been corrected by adding a check in the firstfocuselement method so the focus is placed correctly over input type elements. | User Experience |
INC-163651 | 636901 | Cancel button in offline works as expected | When using the mobile app offline, clicking 'cancel' after creating a new case did not remove the case, but instead returned to the review screen. This was traced to the logic used to evaluate the conditions, and has been resolved so that the 'cancel' button will return to the worklist if offline, or display save/delete options when in the create stage of the online app. | User Experience |
INC-163702 | 634969 | Path to image resource files updated for offline app | When using the offline app, "resource missing " errors were seen for some image files. This has been resolved by overriding the images folder path in the userworkform with the correct path to the webwb folder. |
User Experience |
INC-164012 | 640040 | Source edit with formatting resumes process automatically | When opening a paragraph rule and clicking on Actions > checkout out to branch, the rule refreshed and the modal never appeared to allow the selection of a branch on the current application. This was an inadvertent side effect of work done to resume the event queue if it was paused when applying styles, and has been resolved by modifying the work so it resumes the action sequence only when source mode is initialized in the Rich Text Editor. | User Experience |
INC-164311 | 635786 | Correct datetime target property used | When using a declare expression for a datetime property to get its value from another datetime property, attempting to change the source datetime later resulted in the error "28-mar-2021 is not a valid date/time value". This occurred when the source datetime property had display readonly formatting, and was traced to the formatted value being sent in the callGetTargets API instead of the selected date value, which caused the function to be returned as empty because there was no target property in the same page before submission. To correct this, a check has been added which will get the value from data-value instead of element.value and will skip callGettragets if the target is empty. | User Experience |
INC-164979 | 650154 | Column values displayed in modify filter of grid | Column values were not displaying in the modify filter after cancelling the ‘due date apply filter’ condition in grid -Go to My Work -> Work Queue -Apply filter condition for Program and Country/region columns. This was traced to the pysymbolic date value being posted after selecting and before applying the filter, and has been resolved. | User Experience |
INC-165567 | 643382 | Window reference added for custom tab handling | After configuring a tab layout in the portal harness rule to get tab view, launching the portal from Designer Studio and opening the tabs worked as expected, but opening the portal using end user operator and performing any operation in a tab resulted in the error "Uncaught ReferenceError: gIsCustomTabHeaderEnabled is not defined". This was caused by a reference property that was not being referred properly, and has been resolved by using gIsCustomTabHeaderEnabled from the window reference to handle the undefined scenario. | User Experience |
INC-166444 | 642111 | FlexModalTemplate Modal window size consistent | The FlexModalTemplate modal window size was changing on second click. This was a missed use case for dirty dialog CSS implementation, and has been resolved by moving the CSS necessary into the isDirtyDialogOpen if condition. | User Experience |
INC-166706 | 647476 | Handling added for Rich Text Editor base tag in email | Clicking on an email interaction case from the worklist was not opening the case. This was traced to a base tag present in Rich Text Editor content which impacted security protections, and handling has been added to remove this tag. | User Experience |
INC-167379 | 640580 | Unescape function added to CSR portal layout template rule | When older sections previously used by the CSR portal were carried forward into more recent versions and were 'saved as' in the application ruleset, the error "Uncaught TypeError: pega.util.Dom.unescapeHTML is not a function" appeared. Dashboard loading took an excessive amount of time or didn't load at all, and no actions were working on the dashboard screen and tabs. This was traced to there being an older implementation of pega.util.Dom.unescapeHTML in pzpega_ui_template_layout_header, and this issue has been resolved by adding a custom unescape function in the rule itself so that it doesn't fail in cases where the dependent rule is not able to load the standard unescapeHTML utility. | User Experience |
INC-167611 | 652466 | Business users can move dashboard widgets on production portal pages | Business users were not able to use "Edit dashboard" to move dashboard widgets in production portal pages. This was a missed use case of using an operator with different security level, and has been resolved by using the control pzUserDashboardIncludeScript instead of including pzpega_dashboard script directly in the UserPortal harness. | User Experience |
INC-168414 | 641035 | Web Mashup works from nested iframe | Web Mashup was failing with the error "Browser cookies must be enabled for PRPC Internet Application Composer to function" when it was configured within a nested iframe setup. This has been resolved by adding a cookie check and the appropriate handling for this usecase. | User Experience |
INC-168426 | 648090 | Corrected popup placement | SmartInfoContainer element top and left dynamic values were incorrectly calculated for popups. This was caused by the Cosmos application style overriding the platform style, and has been resolved by removing the Cosmos styling and using platform CSS for the tooltips and guided tour elements. | User Experience |
INC-168695 | 643016 | String conversion logic updated for toFixed function | The toFixed function of pzpega_ui_formatNumber.js was incorrectly converting a string while formatting the value. This potentially caused the UI to hang until manually refreshed. To resolve this, the logic has been updated to convert the string to a number before calling toFixed(). | User Experience |
INC-169796 | 649262 | Null check added for pyModes setting | The column filtering function was not working after upgrade from Pega 8.1 to Pega 8.5. This was traced to pyModes being set as null for page group properties, and has been resolved by adding a null check before adding the type to avoid getting an improper result from the Formatter Rule-Utility-Function. | User Experience |
INC-170258 | 645042 | Removed unneeded query parameter in UI | When using an Ajax container without a dynamic container, a refresh harness / section event call related to pyBlockUnregisteredRequests was not being properly registered, resulting in a 403 error and the message "Unregistered request encountered ..". This was traced to a "pyDataTransform=" query parameter that was present in the PZPEGA_UI_MICRODC file, and the parameter has been removed to resolve this issue. | User Experience |
INC-171121 | 648131 | Filter popup persists correctly | When the Apply filter option was selected for a table configured with page list property as source, the filter popup appeared on the screen but disappeared after 3 to 4 seconds. This has been resolved by enabling the stretch for tabs option in the layout group. | User Experience |
INC-172521 | 651551 | Email template content visible in user application | An issue was seen with email templates functionality where the body content given during the email template creation was not visible when the template was used in the application by an end user. This was a missed use case for recent security updates, and has been resolved. | User Experience |
INC-174699 | 652070 | Work objects can open in multiple tabs with Layout group | After implementing the Worker portal with Layout Group(Tab) to open work objects and other options (Pulse, Spaces, My Cases etc.) in multiple tabs, the tabs opened as expected the first time but after all of the tabs were closed any newly opened cases appeared in popup windows instead of tabs. Investigation showed that when the last tab was closed, the display was set to the main div container of the ajaxcontainer so opening the work object again used a new window. Tab Group has been deprecated in the current Pega version, but the site has a requirement to open the cases in same way as they appeared with Tab Group; to resolve this, support has been added by making the width 0 for the active header highlighter instead of using display none for the main container for this configuration. | User Experience |
INC-174921 | 652320 | Client Side required validation applied to dropdown Date field | The mandatory validation on submit of the screenflow screen was not being triggered even though 'Required' was configured on the Date field. This was traced to the validation being applied to a hidden field when the date time control is configured in dropdown mode, and has been resolved by adding a condition for validating this configuration. |
User Experience |