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.2.5 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D47018 | 517032 | Corrected parameter being encrypted during change portal configuration | After configuring a changePortalLayout control using .pyDescription as property, trying to switch the portal was throwing a error page. The same configuration worked in earlier platform versions. This was traced to recent updates where the activity parameter ended up being encrypted along with the activity name, and has been resolved by removing the parameter from encryption input and adding it to encryption output. | Case Management |
SR-D5904 | 511600 | Discard changes dialog now showing for local actions | After having modified case data without saving and clicking on a menu entry (left menu, search, ...), the system shows a dialog box to ask the user to confirm it is ok to discard changes. However, this confirmation dialog did not work with local actions, leading users to lose their work without any warning nor any way to step back. This was traced to a difference in the dirty form check, which was not present when launching a local action from a case. An enhancement has now been added to the handleMenuAction js function in pypega_ui_harnessactions.js which will perform a dirty form check with a prompt. | Case Management |
Data Integration
8.2.5 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D24527 | 504402 | Improved requestor cleanup | Batch- and Browser-type Requestors were building up over time in both the Admin Studio and in the PegaRULES log and not removed until the system was restarted. This has been resolved by adding two extra cleanupRequestor calls to the Email Listener implementation. | Data integration |
SR-D29034 | 500681 | Added support for JSON mapping of deep nested pagelist objects | An exception occurred when using a JSON data transform in the service activity to map the clipboard data to JSON on the third level of a structure formed as Pagelist-->page-->pagelist. To resolve this, support has been added for nested pagelist mapping with deep nesting of objects (configured for one sided actions) and arrays. | Data integration |
SR-D33003 | 511230 | Queue Batch activity correctly passes chlld process access group | When users attempted to create an index using the schema tools landing page, an error displayed in the table history stating "Create index failed". Investigation showed that this happened when a user was authenticated without the PegaRULES:DatabaseAdministrator role and then switched to an Access Group with the PegaRULES:DatabaseAdministrator role. The issue was traced to the activity that launched the batch requestor missing the parameter pzUseCurrentAccessGroupForChild due to the Queue Batch activity only passing the default access group authorization. This has been resolved by adding code to pass the additional authorization which will allow users to create an index in this scenario. | Data integration |
SR-D33214 | 514023 | Added safeURL encoding for Japanese characters in attached filenames | It was not possible to preview a Japanese-titled PDF file attached on a work object. Investigation showed that in case of Japanese characters, file names were not being correctly encoded during the fetch request when JBoss was used. The retrieval worked correctly under Tomcat. In order to ensure consistent encoding, the safeURL API will be used for constructing the URL and for the activities DisplayAttachFile and pzDownloadFromRepository which add the ContentDisposition header. | Data integration |
SR-D33227 | 510825 | Check added for lock expiration when using Save for Default locking | With the default case locking policy, during the process from creating a Case Object to Submit it was possible for multiple users to edit and save the same work object if the lock expired for the original user. No warnings appeared. To resolve this, handling has been added for a lock expiration scenario: previously, Save for Default locking was not considered. This has now been updated with a check that will evaluate whether or not the lock is gone before attempting to save. | Data integration |
SR-D37779 | 514411 | Dynamic System Setting added to Invalidation query to tune performance | Running a RuleInvalidation query on an SQLServer database with a large amount of data was causing performance issues. To improve performance, a force order hint has been added which can be enabled with the Dynamic System Setting racache/useForceOrderHintForInvalidationQuery. | Data integration |
SR-D40785 | 515099 | WorkPageName preserved during passivation so attachments are correctly tracked | When a work object was left open but inactive for a period, using the delete button in the pyAttachFieldRequired section caused the deletion of the Attachment Links for the 500 most recent attachments in the system with the same value for the AttachmentFieldName, regardless of which work object they were attached to. This was due to the delete attachments activity being executed with missing parameters: since data page loading was disabled and read-only data pages are not passivated, the value for the autopopulate property 'WorkPageName' was passed as empty. To resolve this, the data page will be preserved or reloaded as appropriate so the WorkPageName is maintained. | Data integration |
SR-D40883 | 511123 | Updated SendEmail shape to remove newline code from the subject line | When using the SendEmail shape to send outgoing email, the message contained HTML tags on the subject line that caused it to be split and copied into the email body. This has been resolved by updating PegaEmailClientImpl.prepareMessage() to replace new line characters with spaces in the subject. | Data integration |
SR-D41228 | 512107 | DSS added to Request Only Connect SOAP for Robust | After upgrade, creating a new SOAP integration set to "Request only" in the Service tab and then running the activity showed requests coming with no response, then failure after three tries. This was traced to previous changes made to support Robust behavior and log failed asynchronous calls, and has been resolved by modifying the Robust support and moving it to a DSS. If “EnableRequestOnlyFaultMapping” is set to “true”, then the ANON_ROBUST_OUT_ONLY_OP option will be used; otherwise, the default behavior will be ANON_OUT_ONLY_OP. | Data integration |
SR-D42406 | 510669 | Support added for UTF-8 charset in Connect-REST pyRequestAttachmentPage | When using Connect-REST with pyRequestAttachmentPage, Polish characters like "ó" or "ł" were converted to "?". This did not happen when pyRequestAttachmentPage was not used. This was due to the post request body using a multipart handler that ignored the charset being passed in and considered it a respective enum type for Application/json internally instead. This has been resolved by adding support for charset UTF-8. | Data integration |
SR-D42824 | 517010 | Warning logged for encrypted email with missing local keystore | The Email Listener was becoming stuck while processing encrypted email if the related keystore was not configured within the Pega application. Encrypted mail was not marked as read/deleted, causing the system to attempt to process it again and then repeat the attempt. To address this, a check has been added that will mark the mail as completed for system purposes under this condition, and will log a message to clearly state that the mail was marked as read/deleted but not actually processed due to invalid keystore details. | Data integration |
SR-D43402 SR-D44184 |
509972 511444 |
ValueList/Group correctly appears on clipboard | After upgrade the property of type ValueList/Group was missing from the clipboard. This was traced to an extra 'when' rule applied on the visibility of Layout-2 in final section pzProperty (Pega-Desktop:08-02-01), and has been corrected. | Data integration |
SR-D43918 | 511182 | Resolved duplicate task urgency | Duplicate task urgency was displayed when using dynamic layout in non-template mode. Investigation showed that there were three 'when' rules used to display the task urgency based on an urgency value, and two of the 'when' rules were being returned as true, one of which was incorrect. This was due to an incorrect PropertyReferenceImpl object being passed when retrieving the value from the failSafe page because of an incomplete reference, and has been fixed. | Data integration |
SR-D44215 | 512191 | Navigation Breadcrumb honors pyDisplay in navigation link subflows | After configuring a sub process (screen flow) inside a screen flow connected by a decision shape having a fork condition, the Navigation breadcrumb for this subprocess was always visible irrespective of the connector when condition. This was traced to pyDisplay not being considered for subflows while building navigation links, and has been resolved. | Data integration |
SR-D44809 | 511806 | Allowed Property Exceptions will be logged as DEBUG | The Logger was printing an ERROR message when evaluating a declarative expression. By design, declarative expressions throw a MissingProperty exception if fetched without the source value present, but this can cause excessive logging on a system where this condition is allowed and expected. In order to support flexible use for this scenario, the system has been updated so that the log level will be switched from ERROR to DEBUG when MissingPropertyExceptions are allowed. Logging will remain as ERROR if exceptions are not allowed. | Data integration |
SR-D46159 SR-D48369 |
510971 514305 |
Reinitializing Full Text Search will shut down Elastic Search regardless of search initialization status | Pega search was only sporadically working after converting from standard sandbox-marketing to largesandbox-marketing. This was traced to the Full-Text Search initialization having failed on the app-tier node during re-initialization. As part of re-initialization, the existing node is shut down and the Elastic Search node is started. The shutdown process relied on a boolean flag which indicated if the current status of full-text search initialization was successful. In this case, ES was trying to validate all the cluster level settings, for every save of one of the cluster level settings, but could not due to topology changes in the Util Tier node. The boolean flag indicated initialization had failed so the shutdown process was not invoked, yet the system was attempting to start the second instance of an ES node on the same machine. To resolve this, the shutdown FTS code has been modified to shutdown ES regardless of the search initialization status. | Data integration |
SR-D47752 | 513751 | Resolved Assembly time error for findPage signatures with two arguments | Due to the introduction of IL assembly, an Assembly time error was generated after upgrade when saving a 'when' rule that had a page with the same name defined in both Parameters and Pages & Classes. To resolve this, if the system is generating PegaAPI#findPage or PegaAPI#findPageWithException and passing a null as the second argument, then it will be cast as a String. This will ensure the compiler will not become confused as to the type of null when there are multiple findPage signatures with two arguments. | Data integration |
SR-D48248 | 517238 | Cross-site scripting filtering added to URLs | Cross-site scripting filtering has been added to prevent the injection of a script into a URL using ViewXML. | Data integration |
SR-D48960 SR-D50016 |
517879 515903 |
Exception stack trace will be included as comments in generated assembly code | When there is an exception during assembly time, that original exception message is assembled in the generated code. To improve the process of finding the the root cause by examining the original exception stack, the system has been updated to insert the original exception stack trace into the generated code as comments. | Data integration |
SR-D50161 | 514822 | Auto poulate disabled during redux page conversion to prevent concurrent modification exception | Running a standalone data page sourced from a look up of a class was failing sporadically with a concurrent modification exception. The Data page was backed by redux pages: this meant that when the page fetched from data source was converted to redux page, it was iterating through all properties in the mContent of the page and trying to convert those to redux properties. During this process, when any auto populate property was encountered it was getting triggered and modifying the mContent, resulting in a change in iterator. As a result, when the Iterator was trying to fetch the next element, the concurrent modification exception was thrown. To resolve this issue, auto populate has been disabled during redux page conversion to avoid unnecessary problem during data page load. | Data integration |
SR-D50436 | 513849 | Case creation service activity unauthorized response modified | When unauthorized users accessed the URL for creating a case, a blank screen appeared instead of the user being routed to a login screen. This was due to the system returning an HTTP 400 error instead of HTTP 401 response, and was traced to the introduction of an anonymous user type in the authentication activity (Authentication service in the service package). Case creation REST service uses pzCreateCase activity to create the cases, but before introducing the anonymous user type it was exiting from the authentication activity and did not call pzCreateCase. This was traced to the error handling relying on a field value to be in English when instead the site had localized the value, causing a mismatch which did not generate the necessary failed status. To avoid this, the system will now use the new pxStatusFlowSecurity process engine status instead of relying on a text match to determine this error. | Data integration |
SR-D50793 | 514258 | PegaEmailClient Debug level EmailAccount password issue resolved | The SendEmailNotification activity was failing to send email when DEBUG log level was enabled for the com.pega.platform.integrationengine.client.email.PegaEmailClient class. This was traced to the removal of the pyPassword property from the copied object which was done for security reasons, but which is this case led to failed authentication. This has been resolved. | Data integration |
SR-D56079 | 517628 | Content type added to Httpclientutils | The XML Response received from Connect HTTP Service was being converted to Base64 format automatically. This was traced to there not being a content type in the response header from the service, causing the content to be treated as binary and encoded before being mapped to the clipboard. To correct this, content type has been added to Httpclientutils. | Data integration |
Decision Management
8.2.5 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D39956 | 511637 | Corrected method IF use with shortcut function | After upgrade, method IF was not working as expected when used in an expression like "@if(.totalorders_120days>0,(.remakeorders_120days/.totalorders_120days)<0.3,false)". This was caused by a missed use case for the combination of an exception-generating function in combination with a shortcut function (i.e. ternary, and, or), and has been resolved. | Decision Management |
SR-D41207 SR-D43912 |
512087 509737 |
Fallover stategy added to chat routing to keep event processor running | Chats were becoming stuck in the queue and end users were not able to connect with the customer service representative. An excessive number of queued items were observed in a Queue Processor named "EventProcessor". This was traced to the setting "Browse from the offset" having been removed because of a retention policy. This resulted in "Browse from the end of the stream" being used instead even though browse should start from the earliest known offset. To resolve this, Stream Producer will be cached based on topic, and Stream consumer will fall over to an earliest strategy in case the requested offset isn't found so the event queue will be handled in a timely manner. | Decision Management |
SR-D42662 | 516870 | Support added for auto restart of system paused nodes | After the system paused a run, nodes had to be manually restarted by hand. Investigation showed that a node had fallen from the Hazelcast cluster due to an instability and that there was no support for an auto-restart under this condition. This has been resolved by adding a pulse task to resume runs stuck in system pause. | Decision Management |
SR-D47618 | 512602 | Statistic rounding error in ADMSnapshot Agent with Oracle corrected | While running the ADMSnapshot Agent, the exception "internal.mgmt.Executable) ERROR com.pega.decision.adm.client.ADMException: Failed to complete ADM Data Mart snapshot" was seen. This was traced to an issue with the rounding of performance statistics when using Oracle, and has been resolved. | Decision Management |
SR-D47713 | 511970 | Corrected issue with strategy framework testing | Issues were seen in creating a dataflow to test the strategy framework shipped with the Pega Marketing product. It was not possible to use a data transform to test this strategy because it is in the shipped PegaMKTEngine ruleset. Investigation showed the value of appliedToClass was retrieved from "pyRunOnDataFlowClassName" instead of from the running strategy, and this has been resolved. | Decision Management |
SR-D51353 | 516913 | Unit testing validation relaxed for external input strategy | When trying to test a strategy, the testing transform had to exist in the same ruleset/version as the strategy or it would not resolve. Investigation showed that because the artifacts were in a different ruleset and version build on top of the application that the testing strategy belongs to, validation failed because it was using the platform based ruleset validation. This was a missed use case, and has been resolved by relaxing the validation for external input strategy so it does not take into account the ruleset and version of it. This same change has been applied for referenced data transforms. | Decision Management |
SR-D52723 | 516091 | Data join conditions representation updated to avoid overwrite | After upgrade, a Data join component on the Strategies was not working as expected, especially the ones using the DateTime function. If the data join conditions were swapped, i.e the DateTime function was not the last criteria, the strategy outputs were correct.Investigation showed that the implementation used a map to represent pairs of left and right expressions which caused conditions rows with the same leftExpr to end up overwriting one another. This has been corrected by fixing the representation of conditions of a Data Join to a list of tuples which eliminates the possibility of one condition overwriting a previous one. | Decision Management |
SR-D53223 | 516917 | Predictor handling updated for Versioning Adaptive Model | When attempting to update an adaptive model in a branch after it had been versioned, errors were observed on Predictor Type data that had not changed from the previous version. This was traced to an issue in the Adaptive Model rule UI in both Prediction and Dev Studio where if a non-default predictor type is selected, it would show in the UI but not be saved to the database. No error was shown. This silently led to the unexpected and incorrect data being stored with the result that once data had accrued, the rule could not be saved/saved-as due to validation believing the predictor type of a predictor with data was changing. To resolve this, rules have been updated so that the system will no longer override the predictor type of a predictor being edited when it is solely the predictor type that is changing. | Decision Management |
SR-D53225 | 516317 | Rule creation logic updated to include creation branch | When trying to create a new adaptive model rule in Prediction Studio, the “Create” button was not activating. The adaptive model rule was being saved in a branch ruleset, and investigation indicated that the deactivated button could be traced to the lack of an open ruleset version available even though the intention was to create it on a branch. This has been resolved by modifying the rule creation logic to incorporate the branch for creation. | Decision Management |
SR-D54602 | 517308 | Prconfigs added to support Cassandra Speculative Based Execution | In order to achieve high availability for Cassandra, prconfigs have been added to support speculative execution. The available prconfigs will enable it, and set maximum number of executions and delay before the next execution is launched. The prconfigs are: dnode/cassandra_speculative_execution_policy dnode/cassandra_speculative_execution_policy/max_executions dnode/cassandra_speculative_execution_policy/delay |
Decision Management |
SR-D56841 | 518315 | Marketing Offers enahnced to support Always/Never/Timeframe | The Action (offer rule) availability did not align with the availability in Proposition Management. To resolve this, the pxManageProposition platform API has been enhanced to support 1) Always 2) Never 3) Within a defined time period. | Decision Management |
Low-Code Application Development
8.2.5 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D39972 | 513460 | UpgradeOnOpen updated to use property set | After upgrade, using the revalidate & save wizard on MapValue rules (Rule-Obj-MapValue) generated null pointer exceptions in the tracer file and rules failed with bad status. This was traced to changes made in the Java step of UpgradeOnOpen that used the getReference() method, and has been resolved by updating the UpgradeOnOpen activity in the Rule-obj-Mapvalue class to use property set. | Low-code app development |
SR-D40662 | 511397 | OpenRuleAdvanced updated | After upgrade, the Update Page and Append and Map to step in Data transform was generating the error "No Server connection while giving page name to Target and Source". This was traced to the OpenRuleAdvanced_OverLabel control, and investigation showed that a variable was not being resolved when invoking pzEncryptURLActionString. This has been resolved by updating OpenRuleAdvanced and reimplementing two parameters as well as moving the call of these variables to the beginning of the script. Security has also been improved by moving some of the encryption to SafeUrls. | Low-code app development |
SR-D42566 | 512872 | Security improvements for ApplicationInventory and Delete Class | It was possible to call the activity "ApplicationInventory of class Rule-" by appending the activity name in the URL. To improve security, the ApplicationInventory activity and HTML rule have been removed from the system. In addition, it was possible to access the "delete class" screen and perform actions on top of it by directly appending the stream to the URL. This has been refactored so the screen will be presented only if the pzSystemOperationsAdministrator privilege is in the current access group. | Low-code app development |
SR-D43776 | 510762 | Clipboard ExecuteActivity button updated to get classname | In Clipboard, clicking the execute activity button did not trigger any action in the backend. Investigation showed that previously the ID attribute for the HTML element used to be same as the property name, and the value of property "pyClassName" was found in the document.getElementById function. Due to work done to provide a feature that generates unique IDs for UI elements (auto generated controls), this must be done through other functions such as document.querySelector to get the value of the property from DOM. The necessary updates have now been made to the javascript function in control pzExecuteActivityButton. | Low-code app development |
SR-D43783 | 509908 | Comments explicitly excluded from generated ruleset under localization | A generated URL link from Correspondence Fragment (WorkLink) which was saved in Pega-ProCom_ja was incorrect due to an incomplete URL. The ruleset Pega-ProCom_ja is not provided from the platform, but is generated when using localization. In this case, a comment fragment was included in the rule when it was generated, causing the issue. To resolve this, comment handling has been updated to ensure it's not included when generating the rule. | Low-code app development |
SR-D49792 | 515982 | Corrected property mismatch in Create Eligibility condition builder | A parameter mismatch in Create Eligibility condition builder was resulting in properties not being offered in the dropdowns as expected when the top level page was not CaseTypeStages or this page did not exist on clipboard. This has been resolved by changing CaseTypeStages.pyClassName to ConditionsParamterPage.pyClassName in the pzSelectValues_FieldType section. | Low-code app development |
Mobile
8.2.5 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D40605 | 510917 | Corrected mobile password control behavior on failed validation | Given a section on mobile where the out-of-the-box password control was used on a textbox with input field of type Password to set a new password, failed validation on the field caused the cursor on the input field to jump to the left. It was then not possible to delete the text or correct the placement of the cursor. This was traced to a missing type check for password in isTextBox(), and has been corrected. | Mobile |
SR-D42437 | 513648 | Pulse @mention will avoid triggering search request if no suggestion list is available | Search threads were causing requestor Lock Exceptions due to poorly optimized queries sent to ElasticSearch when a Pulse mention was attempting to look up a person (e.g. "@"+typing) and the search of case objects to match to that search were performing poorly. To resolve this, an update has been made to avoid triggering requests if the suggestions list is not available for the search query. | Mobile |
SR-D43272 | 516440 | Local user lookup modifed to use requestor level data page to improve performance | In a system with many users (over 40k), attempting to search for a user to send a private message was taking an excessive amount of time. Analysis found that all of the users were being loaded at once in a page list of type Code-Pega-List. This led to errors indicating the Page List property had more elements than the specified threshold, but pagination could not be added as the activity and Report Definition are final. To improve performance, this process has been modified to use a data page at the requestor level instead. | Mobile |
SR-D44012 | 509881 | Added more error handling in pzCreateThumbnail | In activity pzCreateThumbnail, a null pointer error was generated at step 2. This was traced to the value of originalImage being null even though there was no error in the image file itself, and has been resolved by adding an error check . | Mobile |
SR-D50725 | 516514 | Page cleanup processes updated to facilitate Pulse Task creation | Attempting to create a Pulse Task in an assignment resulted in a "The Operation completed successfully, but returned no content" screen after clicking submit. This was traced to an incorrect usage of createworkpage. To resolve this, the system has been updated so that before calling createworkpage, a page-remove will be done so createworkpage will not clean the assignment page. | Mobile |
SR-D53266 | 516396 | Synchronization continuation updated so mobile attachments properly preview | Clicking on attachments in mobile would open them if the attachment had just happened, but otherwise would not open them at all. This was traced to an issue with Synchronization continuation: the page was properly loaded from database but its content was not used to fill the named OfflinePackage page (which contains only the search keys). This has been corrected by replacing the empty page with the one loaded from the database. | Mobile |
Reporting
8.2.5 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D19299 | 511323 | Support added for calling Export to Excel directly from Report Definition | When using Export to Excel directly from a report definition, a date column specified using pxDatetime was shown as applied date format in the resulting Excel file. The column was formatted as expected if the export was called from an activity. This was traced to the recent refactoring of Export to Excel: it was not expected that it would be called directly, but rather that it would be invoked from a report viewer ruleform. In order to support this direct use, step calls have been added to the pzRDExportWrapper activity to call pzMergeAutoGen before the engine call. This step will merge the pyModes pages from pxDateTime control. | Reporting |
SR-D34655 | 513421 | Deferred load works inside custom row section of Report Definition | Deferred Load was not working inside a custom row section of a report definition. This was traced to the non-auto-generated mark up written for the customRowSection include not having the node_type="MAIN_RULE" name="BASE_REF" id="RULE_KEY" base_ref="" attributes. This led to the load manager which performs the defer load to get the base_ref as "pyReportContent" from the "ReportDisplay" section dom node. To resolve this, the RRDataListGeneration has been modified to set the proper base_ref to customRowSection include so the context/base_ref is passed to the customRowSection. | Reporting |
SR-D36265 | 509607 | Export to Excel total result count disabled | After upgrade, an imported report with more than 30k records took an excessive amount of time (6-7 minutes) to be exported to Excel after being run, and the resulting Excel file only contained one record. A child report having around same number of records was exported successfully in around 30 seconds. Analysis showed that during the export process, a thread dump was originating from the thread responsible for performing export. Co-relating this with alert logs showed a PEGA0042 alert around the packaging of the query. This was traced to the paging settings on the pyContentPage not getting properly set from the activity pxRetrieveReportData on step 14: the boolean that sets .pyContent.pyPaging.pyReturnTotalResultCount used a page that will always be empty on the upgraded system, leading to an error in calculating the total result count. To resolve this, fetching the total result count on Export to Excel has been disabled. | Reporting |
SR-D37115 | 515839 | Onclick handler updated to resolve Report Definition UI issue | After modifying the function logic in Report Definition, reopening it in the configuration modal dialogue displayed the function multiple times and it was not possible to open/edit the function. This issue was cosmetic and related to the UI representation of functions: the underlying clipboard page had the correct details regarding the custom logic and functioned as expected. Investigation showed the UI error was related to the onclick handler, and this has been resolved so the system correctly removes the onclick handler when required. | Reporting |
SR-D42095 | 516670 | Added validation function to 'apply filters' to handle custom filtering | A custom filter section with the "Display custom section inline" checkbox checked and required input fields was not firing validation if the input fields were empty. Switching the focus away from the filter section caused validation to appear saying the filter could not be blank, but "Apply filters" (which is missing validation) was still clickable and the report updated. This has been resolved by adding a validateInput function to the "Apply filters" button of the pega_report_events file. | Reporting |
SR-D42159 | 508940 | Large report pagination should use "Previous and Next only" | Some Report Definitions were getting timed out or facing gateway exceptions, primarily due to high time consumed by the DB Queries. Investigation showed the total result count process appeared to stop at the configured pyMaxRecords value as long as it was nonzero. This indicated the issue was related to changes made to fix the inaccurate behavior of the "Last" button in the responsive paginator which included removing logic that set pyMaxRecords to anything other than zero. To resolve this issue, those pagination changes have been reverted. The "Last" button should not be used when the paging mode is set to Numeric: in the case of large reports, the paging option should be set to "Previous and Next only". | Reporting |
SR-D43788 | 512543 | Corrected Last Added By values for reports created in report browser | After creating a report using report browsers in the case manager portal, opening that report definition rule in Designer Studio showed the person's name who created the pydeafult report instead of the expected values for Last added by(Operator ID & Name) and Last Moved by (Operator ID & Name,Date). This has been resolved by adding steps to pzRRSaveAs which will fix the history details when making a new report in the report browser. | Reporting |
SR-D46535 | 512847 | Accessibility label added to RBShortcuts7 report browser search field | In order to improve accessibility, a hidden label has been added to the Search field in the pzRBShortcuts7 report browser for use by a screen reader. | Reporting |
SR-D47414 | 513077 | "Use null if empty" checkbox honored for GetSelectValues | When Report Definition rule uses parameters as a value for filter criteria, a moderate performance warning was generated: ''Some of your filters are using a parameter with the "Use null if empty" option NOT selected. Please ensure that you do pass the parameter. Otherwise, the filter will be dropped entirely and execution of the report will result in very poor performance. If you do not want this behavior, select the "Use null if empty" option.'' When the "Use null if empty" checkbox was selected as suggested, the "Select values" button gave an empty list of possible values. This was traced to refactoring work done on Select Values which changed it to be backed by a Report Definition and Grid instead of a List View: the option was intended to be only temporarily disabled, but was missed. To correct this, the activity pzGetSelectValues has been updated to honor the checkbox and appropriately disable the "Use null if empty" option on the selected filter on the temporary copy of the report definition before it is executed. | Reporting |
SR-D48173 | 515339 | Resolved hang caused by cancelling report calculation | When dragging a calculation into the report editor filter area, clicking X on the cancel modal that appeared caused a JavaScript exception to occur. This exception later prevented the ability to click the "done editing" button on the report. This has been resolved by modifying the pzpega_report_rafpopup.sj -- doRefresh API to pass the correct argument to reload the section API. | Reporting |
SR-D48442 | 514046 | ExportMode parameter sent to resolve duplicate rows in Export to Excel | On performing Export to Excel for a report definition, duplicate rows were being exported for a column which had a TextAreaWithExpandSmall UI Control. Investigation showed that this control was looking for the exportmode parameter, which was not being sent. This parameter is now being sent. | Reporting |
SR-D49491 | 515319 | Updated sorting parameters order for better matching | After choosing sorting for a column in a main summary report and then drilling down, a message appears indicating no records found even though there were results. The query showeds that the values for the 'where' clause were sent in the wrong order, causing a parameter mismatch. This has been resolved with an update to get the iterator before sorting so parameters match up correctly. | Reporting |
SR-D50805 | 516098 | Eligibility Builder Select Values search box is visible | On the Offer rule, Eligibility tab in Eligibility Builder, when creating an eligibility row that used ' {property} equals {value}', on the Select values menu -> Existing values, there was no search box to navigate the list of property prompt values. This was traced to the select values gadget not using the "Prompt value" to be displayed as its label, and has been fixed. | Reporting |
System Administration
8.2.5 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D32972 | 513488 | HTML entity handling added to URLObfuscation | When URLObfuscation was enabled through the configuration settings, clicking on Operator -> Profile page generated an ArrayIndexOutOfBoundException. When obfuscation is used the decrypted string is parsed and the request map is populated, but HTML entities were not considered during this process. To resolve this, handling has been added for HTML entities and characters during obfuscation. Please note: URL Obfuscation is a legacy feature with many known limitations and it is no longer recommended that these settings be used. |
System Administration |
SR-D37894 | 505975 | Query parameters will be cleared after redirection from authentication | When using the /PRAuth Servlet, running a snapstart URL generated from a secondary application correctly executed SAML Authentication and Pega processing, but a second URL generated with different parameters ran with the parameters from the first request. The third and subsequent requests processed as expected with the parameters sent in with the request. Investigation showed that the previous parameters were picked due to the query string parameters not being cleared after redirection, and this issue has been resolved by updating the system so it will clear the parameters after issuing a redirect from the authentication policy engine. | System Administration |
SR-D38318 | 515960 | Data pages explicitly cleared after QP use | The Util Node was showing as Offline in the Search Landing Page, and when Jobs were submitted for execution from other Nodes the message "Detected active run with unreachable nodes" was logged. The util node, configured as a backgroundprocessing node, was running QPs; the queue size for custom QPs is 500 messages /queue items per minute, but investigation showed the requestor level and thread level data pages corresponding to the QP activities were not being cleared after use. This led to high heap memory issues that made the node unreachable, and has been resolved by adding code to explicitly remove the data pages when processing has finished. | System Administration |
SR-D46536 | 515793 | Custom agent next run time will be rescheduled if the run failed | If a customized agent that was set to run every day encountered an exception and failed to run, restarting the agent did not update it to the next run time; it still returned the passed trigger time as its next execution time. This has been resolved with an update that will reschedule the run if the next run time is in the past. | System Administration |
SR-D46681 | 514433 | SnapStart supports SAML2 Authentication | When using an HTTP Post to SnapStart into Pega using PRCustom style or PRAuth style SAML authentication, the login was looping back to the login request. Investigation showed that the Pega ACS was posting data properly back to the RelayState URL, however the login activity was not getting the SAMLResponse and simply sent a SAML Login Request again. This has been fixed by updating reqContextURI in case of SAML2 Authentication service so pyActivity=value will be passed. | System Administration |
SR-D47685 | 514646 | Cookie logging restored | As part of security updates, Cookies were restricted from being logged. However, this caused some business use cases such as a custom function call to obtain the list of cookies that are present in the application to stop working. To resolve this, the cookie logging restriction has been reverted. | System Administration |
SR-D51554 | 514061 | Local UUID cache will be updated when merge event is detected | Cluster-related issues were seen in multiple production clusters. For some nodes in the cluster the Cluster Management screen showed all expected nodes with valid Node IDs displayed, and on other nodes the Cluster Management screen showed the node ID of itself, SERVER@localhost:5701. On an impacted node displaying the wrong ID, the Node Information landing page did not work and displayed the error "Unable to execute job on ." Multiple advanced agents running on nodes in the affected clusters, both with correct and incorrect IDs, also failed with a similar error "Unable to execute job on <node's job id>". This was traced to a merge performed after a split brain. To resolve this, the code has been updated to handle merge events: when the node UUID is changed as part of a split brain recovery, the local UUID cache will be updated when the merge event is detected. | System Administration |
SR-D52969 | 514703 | Column population honors thread count of 1 | The thread count parameter in the column population activity was not being honored, causing repeated deadlocks when trying to populate columns. Investigation showed that the ExposeCols process did not honor the thread count when it was 1 (the default is 4), and this has been fixed by adding the necessary code so that if the thread count is 1, it will not run in multhreaded mode. | System Administration |
SR-D53408 | 516735 | Expired Oauth Refresh Token will persist for obtaining new token | OAuth2.0 was providing the refresh token only once in the first time response of the token endpoint. Once the token expired for first time, it was possible to get a new access token using the refresh token. However, if the access token expired for the second time, it was not possible to generate the new access token automatically because the expired token was set as null. To resolve this, the system has been updated to persist the previous refresh token in order to get a new access token. | System Administration |
User Experience
8.2.5 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D29918 | 503066 | Resooved duplicated aria-level attribute in layout headings | Headings on layouts automatically applied the aria-level attribute. This meant if the markup was an H tag with an aria-level attribute, the screen reader read it out twice. This has been corrected. | User Experience |
SR-D32528 | 502217 | Reduced triggering for checkbox click calling resize | When using Microsoft Internet Explorer, checkboxes were slow to respond. For example, when clicking two checkboxes in succession, the second checkbox did not change. This was traced to the Layout Resize function getting called numerous times by the _toDisableSlideOnTabsClick and _resizeActions functions during onload refresh. This has been resolved by updating the system so that an LG header cell item checkbox click will not trigger the resize. | User Experience |
SR-D32655 | 510344 | Enhancement added to hold Change Tracker values until UI is loaded | Sporadically, an agent attempting to answer a queued call within 10 seconds received a loading screen. By the time the load completed, the next agent had already taken the call. This is a scenario where based on a change, the agent was trying to refresh something on the UI (a section or harness) which was not yet loaded/present on the UI. To address this use case, an enhancement has been added to hold the change tracked values and handle them once the UI is loaded. The new function pega.ui.ChangeTracker.prototype.handlePendingCTChanges in pzpega_ui_changetracker.js is used to handle the pending CT changes. A hook has been added in the pzpega_ui_doc_lifecycle js file to invoke the above function once the UI is loaded. | User Experience |
SR-D34214 | 511812 | API available to skip defer loading in Single Page Applications | The wait message "Loading ..." was displayed on check on defer load in Single Page Applications. The browser refresh worked as expected if 'defer load' was unchecked. This was traced to SPA not containing the handling necessary to publish the forced replace to other modules: in SPA cases, the dashboard is forcibly replaced with workobject harness, causing defer loads in dashboard to be processed in the wrong thread. To resolve this, there is now an exposed API pega.ui.DCUtil.skipDeferredLoadFrom() to skip defer loading when true in SPA. | User Experience |
SR-D37348 | 514839 | Added handling for placeholder in Multi-Select List Control | After adding a placeholder in Multi-Select dropdown properties to hold the default value as 'please specify' by way of a refresh section on the action tab of multi-select property, the multi-select drop was showing the 'please specify' placeholder after refreshing the section even though there was value in it. This has been resolved by adding handling to make the placeholder empty when there are values. | User Experience |
SR-D39369 | 513096 | Handling added for images in true/false checkboxes causing security policy issues | The out-of-the-box Pega security policy AllowPegaCollaborationServices, which is included functions such as Pega Customer Services for Healthcare and required by Pega Cloud Collaboration Services, was blocking Pega images from webwb. As an example, using a checkbox "*truefalse" configured with two images for true and false values when this Security Policy was set (which has Image-Source self set), a console error was generated. This was caused by the images URL being a base-64 string instead of a page URL. This meant that when the checkbox was configured with an image, the image was being converted to bytes as if for offline. To resolve this, separate handling has been added for online cases. | User Experience |
SR-D39577 | 507203 | Dynamic Layout Group renders properly when nested sections use PageGroup as source | After upgrade, an included Section rule was not rendered in Dynamic Layout Group (repeat) layout at run time. This issue was only seen when PageGroup was used as the source for the dynamic layout group, and investigation showed that under these conditions the pagegroup state for nested sections was not propagating a needed editable property. This has been corrected. | User Experience |
SR-D40762 | 510369 | ReloadSection passes event object explicitly | After upgrade, 'replace current-model' was not working when used in a section with a link control that had an onClick event that was intended to launch a local action. Investigation showed that the link control was not working in the latest Google Chrome version, and this has been corrected by passing the event object explicitly to the reloadSection function in PZPEGA_UI_DOC_SUBMIT.js | User Experience |
SR-D40778 | 512975 | Asterisk symbol displayed for radio button set to required always | When marked as required, the "Asterisk" symbol did not show up on the radio button label. This was traced to an XML cleanup issue with the pyReqRunOnClient property when required was configured as 'always' and has been corrected. | User Experience |
SR-D40941 | 512592 | Identifier property added for worklist with filter by format | After configuring a Grid layout which displayed a users worklist, one of the properties representing the column in Grid had the property type as boolean. The property was derived from another report definition in the main report and a join was performed to display the property. Investigation showed that the filter for Boolean column did not show any filter values like ( [No Value, Y,N ) when run through a case Manager Portal, however the Boolean Column filter worked when run through Report Definition. Other properties from the same class that were not boolean worked with the filter. This was traced to the WorkListWidgetGridsAuto being set to Optimize code, causing filter by format to not be visible in the column properties of pxPages. To resolve this, code has been added for the identifier property | User Experience |
SR-D41035 | 513205 | Handlign added for OpenAssignment triggered from confirm harness | Triggering openAssignment from the confirm harness was replacing the whole Ajax container DIV, leading to 'submit' no longer working. This has been corrected by adding additional handling for this usage. | User Experience |
SR-D41114 | 508945 | Localization added for 'NoResultys Found" | It was not possible to translate/localize the message 'No Results Found' (autocomplete) to Spanish due to auto complete not containing any property or field value corresponding to this message. This has been corrected by adding the field value and corresponding code handling needed. | User Experience |
SR-D41130 | 510079 | Handling added for precision decimals in cascading dropdown on mobile | A cascading dropdown with a parameterized datapage configuration containing decimal values with precision (such as 22.3,20.000) showed the values as expected on desktop, but the values were empty on mobile. The values did show on mobile as well if precision was not used. This has been resolved by updating templateengine_context so that decimal values will not be treated as a property reference. | User Experience |
SR-D41882 | 510092 | Resolved Ajax container blank tab | When using an Ajax container in tabbed mode, opening a work item from the dashboard and clicking on the Begin button resulted in the Workitem closing automatically and the main tab becoming blank. This was rtaced to the system attempting to set the last tab header before it was created, and has been resolved by removing an instantiateTabs call in the success callback of the close MDC tab functionality in the pzpega_ui_redux_impl file. | User Experience |
SR-D41984 | 510012 | Added handling to correct '&' displayed as '&' in custom tab name | When using a data transform and custom properties to set the tab title, clicking on a link containing "&" in the label opened a tab name which included "&" instead of "&". This has been resolved by modifying the handleGadgetLoad method in the pzpega_ui_dynamiccontainer file to handle the Cross Scripting FIlter and display the character. | User Experience |
SR-D42583 | 514486 | Label of a field is correctly rendered when a section is re-used with a visiblity condition | The label of a field was not being rendered/visible when a section with a 'visible when' condition was re-used in different Page Contexts. The label was displayed correctly if 'Run visibility condition on client' was checked. As part of performance improvements made in a previous version, label generation was moved under the dlcellvisibility flag. Because of this, if a section was re-used at multiple places with different contexts and one place had visibility false and another had visibility true, the labels were not getting generated for the visible section. To resolve this, Label Generation has been moved out of dlcellVisibility to ensure label metadata will always be generated. Updated performance improvements have been made instead by way of a DSS setting (generateCellMetadata) so that when generateCellMetadata is true, the label generation will honor dlcellvisibility to generate the label metadata. | User Experience |
SR-D42701 | 510922 | Cross-site scripting security added for Case Manager | Cross-site scripting security has been added to the Document features in the Case Manager portal. | User Experience |
SR-D43141 | 512434 | Support added for iFrame Mashup resize when using SPA | After upgrade, issues were seen with an iFrame holding a Mashup not resizing as expected. This was traced to the use of an SPA portal inside mashup, and has been resolved by explicitly invoking the doharnessResize API to set proper height on iframe when using SPA. | User Experience |
SR-D43468 | 511643 | Includes() function changed for Microsoft Internet Explorer compatiblity | The complete screen was not loading due to "includes()" not being supported in Microsoft Internet Explorer, resulting in a console error and the flow breaking. To resolve this, ".includes()" has been changed to indeOf. | User Experience |
SR-D43627 | 509800 | Keyboard tab support added added for Focus on Date control | It was not possible to use the Tab key to move to a section with date control to launch it, and hitting enter when on a calendar did not open it. To resolve these, tabindex has been added for date/time focus and the calendar will open on enter. | User Experience |
SR-D44546 | 512599 | Corrected opening collapsible rows with modal action inside a nested pane grid | After expanding the second level of a collapsible row in a table and then collapsing the row back down again, trying to expand other rows in the table did not work and the error "Unable to get property 'target' of undefined or null reference" appeared on the console. This was an issue with a modal action configured inside a nested pane grid that was attempting to call a target key on an undefined object, and has been resolved by explicitly checking for the existence of the 'event' object before calling the 'target' key on it. | User Experience |
SR-D45360 | 510099 | Support added for non-decimal currency notation | Previously in the pxCurrency control, the options allowed either specifying Decimal places (2 by default) or using the locale to decide decimal places when "Use currency standard" was selected (creating the default for 2 for en_US, 0 for jp_JP and 3 for ar_JO.) However, this did not account for currencies like JPY, TWD, and HUF, which do not use decimal precision. In order to support these currencies, handling has been added to formatNumaber js and pxFormatNumber for locales which do not have decimal precision in their currency. | User Experience |
SR-D45527 | 512325 | Corrected comma in chat appearing as ',null,' | When a comma was sent in chat, it appeared as ",null,". For example, " I am applying the loan now,null, thanks ". Investigation showed that this was caused by Pega code that was overriding a JSON parse native API, and it has been resolved by removing the override and handling the Pega parse via a different API. | User Experience |
SR-D45828 | 518020 | Added variable null check to resolve refresh condition on dynamic layout not working | Given a setup where a parent section had several section includes, one of which had a property that was set to refresh and disable another section when the property changed, on change the refresh action was not working and hence the disabling did not work. Refreshing the browser corrected the behavior. Javascript errors were noted on the console. This has been resolved by adding a null check on the variable to avoid exceptions. | User Experience |
SR-D45848 SR-D51330 |
515526 515246 |
Added toggle to hold radio button value during multiple service case creation | When a field was implemented with a radio button control in the service case screen, starting two cases of the same or different case type (with the same property and control) resulted in the selected value not sticking in the first case when selections were made for the second case. This was traced to multiple radio buttons with the same name in the dom for different AJAX containers: as per radio buttons behavior, only one could be selected if they have the same name. To correct this issue, updates have been made to change the name on radio buttons which are inside the hidden AJAX container and toggle the changes when the buttons should be shown. | User Experience |
SR-D46532 | 512376 | Aria-label added to 'clear search option' icon | After applying a search in the reporting functionality, the Clear Search icon becomes active. In order to improve accessibility, an aria-label attribute for icon/image control has been added to this icon. | User Experience |
SR-D46542 | 514151 | Alt attribute removed from non-image content | The links under the reporting categories contained an alt attribute. As Alt attributes should only be used for images, these tags have been removed. | User Experience |
SR-D46543 | 516182 | Error messages made more accessible | In order to improve the accessibility of error messages, an aria-describedby attribute will be placed on the input that will link to the error message. To further support screen reader users, the focus will be moved to the first input field with an error after the user clicks submit. | User Experience |
SR-D46545 | 511852 | Count of remaining characters in a text box made accessible | In order to improve accessibility, aria-describedby has been added to the Text Area character counter span element's ID so the remaining number of characters to enter in the text field will be read by the screen reader. | User Experience |
SR-D47401 | 512617 | Corrected multiplying errors on dirty flag | The error message "Value cannot be blank" was appended on the screen every time the browser gave a dirty flag and OK was clicked. This was due to the context for the error message not being set correctly after toggleErrorMessage, and has been corrected. In addition, due to Context being incorrect when there was a check on the errors on the element, further work has been added to set the correct context before checking if errors exist. | User Experience |
SR-D48887 | 512945 | Read-only text inputs remain read-only after browser refresh | Read-only text inputs were changing to editable after a browser refresh. This was traced to work done to better handle a displayOnPage GET request that was sent with all of the parameters in the parameter page (data-model) that was causing a 400 Bad Request due to the browser URL length limitations. That issue was resolved by removing the parameters which are not actually required for the displayOnPage GET call during the refresh case; to resolve this issue, the readonly parameter for displayOnpage action has been restored and will be passed. | User Experience |
SR-D50372 | 514613 | Interaction Driver now supports more than 7 open items | After creating 7 items in an interaction so they are open in the interaction driver, adding item number 8 caused the threads in the clipboard to not correspond with the number of items and the interaction driver was not extended with the new items. This was traced to the "parentKey" parameter not being present in the request: the "parentKey" parameter isn't mandatory but is usually used internally for the RECENTS functionality, and was missed only when maxdocs limit was reached because the recents feature was not validated in case of maxdocs. To resolve this, the "parentKey" will now be passed for all use-cases. | User Experience |
SR-D51093 | 515225 | Skin Breakpoints work in Layout Mode with "Optimized code" setting | In Application Skin settings for dynamic layouts, even through the choice of any format was offered in the dropdown (My Formats and Inherited), if the layout mode was set to "Optimized code" the responsive breakpoints were only working when Inherited format was chosen and not working for My Formats. This was a missed use for flex where the proper key was not mentioned, and has been resolved by updating GenerateFlexLayout.java. | User Experience |
SR-D51555 | 516495 | Resolved system hang after changing input field value post note | After upgrade, a session was hanging in a Non-Member Search Phone interaction after navigating back from "Add or edit attachments" window. The same code worked as expected in the Member Search Phone interaction. Investigation showed that changed values (transaction ID, pzFromFrame) were being sent to the client twice, once in the popup window after attaching the note and again to the parent window. When the changed values were consumed and used in next actions, a mismatch resulted in pzFromFrame. To resolve this, the system has been updated so the Client will not consume the pxThread.pxClientExchange value if pxThread.pxClientFrame is different from what the current tracker is using. | User Experience |
SR-D51601 | 516704 | Hover logic updated | When using a dropdown in a grid layout configured with a smartInfo to be displayed on Hover, the smart tip was sometimes not displayed when the hover moved from the top to point to the dropdown. If the hover was done quickly, it was displayed. Previously, the hover was calculated only by cursor x, y positions and elements boundaries: to resolve this issue, the logic has been updated to also consider cases where the element is still hovered without meeting these conditions. | User Experience |
SR-D52144 | 515672 | When no active document is available on login, first document will be marked active | After logging into the user portal, attempting to perform operations like (opening a case/work object, opening reports etc.) caused the browser request to spin or freeze. The only way to recover was to close and re-launch the browser window/session and re-login. This issue occurred when there was an active reportdefinition document before the browser/node crash in the tabless dynamic container(DC) portal. After recovery, the dynamic container did not recreate the report definition document but instead tried to activate the first document in the portal, which in this case was the default harness configured in the Dynamic Container. As it was not yet loaded, exceptions were thrown. To resolve this, when no active document is available, the first document will be marked as the active document. | User Experience |
SR-D52695 | 515972 | Pagination context switch handling updated for mouse scroll | When using various tables in the client application that have the Pagination mode set to 'Progressive' and that contain hyperlinked elements on which an 'Open Work by Handle' action has been defined, clicking an element that was loaded progressively intermittently generated an alert with the message 'Empty work item handle'. Investigation showed that dragging the scroll bar to access the latest cases worked, but using the mouse to scroll and select replicated the issue immediately. This was caused by context not being properly switched to the current harness while scrolling due to missing context switch handlers. To resolve this, code changes have been made to set the correct context before sending the request. | User Experience |