Pega Infinity™ includes an industry-standard release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.4 Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D18725 | 488208 | OrgUnit delete works as expected | After creating two organization units such as Unit1 and Unit11 on the same level and mapping one operator to Unit11, attempting to delete Unit1 resulted in an error indicating the operator had to be deleted first even though unit1 had no operator associated with it. This was traced to Obj-List performing a 'like' check instead of exact match check for the deletion, and has been resolved by updating the ValidateDelete activity to do obj-browse instead of obj-list. | Case Management |
SR-D19999 | 488268 | Logic updated for displaying email attachments | Once an Email had been sent with attachments, additional attachments could be added to the work object at a later time and would show up when the work object was opened as if they had been part of the original transmission of the message. This was traced to the logic not accounting for for the state of the data-corr-email object and showing all the work object attachments as sent as part of the email irrespective of when the attachment was added. To resolve this, the system has been updated to save all the attachment keys that are sent as part of the email on the data-corr-email instance and use that property while retrieving the list of attachments sent on the email. If the attachment is deleted, no hyperlink will be shown but instead a message on hover on the attachment memo will note that the attachment was deleted and not available for download. | Case Management |
SR-D22415 | 493442 | Enhancement added to expose BrowserAttachmentTypeTable | By default, the inline view of PDF files appears with the thread name visible. An enhancement has been made to expose pzBrowserAttachmentTypeTable as a py rule: when the DT is overridden such that return is false for PDF, the inline view is not displayed but instead the PDF is downloaded when clicked. | Case Management |
SR-D23723 SR-D47312 |
503089 513568 |
pxGenerateExcelFile updated for handling blank dates | When using a custom template for exporting to Excel, blank DateTime property column values defaulted to the current date or to 1/1/1970. To resolve this, the pxGenerateExcelFile activity has been updated to ensure that an empty date will be exported as blank and that given dates will appear in the correct datetime format. | Case Management |
SR-D24470 SR-D54200 |
494628 516776 |
Custom attachment category parameter passed to dropdown | Attempting to use the out-of-the-box “Attachments control” which was configured at design time to use a custom category where both the custom category and the section class were in the same work class resulted in the attachment category dropdown defaulting to “File” instead of the custom category. Investigation showed that the custom attachment category name configured on the control was missing in one of the pre-processing activities sequence. To resolve this, the activity Work-.pzInitAttachContent and the initAttachmentPage activity have been updated to pass the custom attachment category parameter. | Case Management |
SR-D24651 | 495766 | Proper assignment instructions sent when transferring | Assignment instructions were not getting added properly when transferring to Workbaskets. Because both .pyInstruction and Param.InstructionNote are set in call Reassign (to workbasket), the same instruction value was being given twice. To resolve this, step 8 (Call Reassign) of Work-.pyReassignAssignment has been modified and will not send the InstructionNote param as instruction is already updated on the newassign page with the instruction value on reassign page in the previous step (step 7). | Case Management |
SR-D24950 | 494567 | Added explicit step page to resolve null-pointer exception with custom error message | A null pointer exception was generated during case run time harness refresh after a custom error message was inserted. This was traced to a blank step page related to the custom message, and has been resolved by adding a primary step page at step 10 of the New(Work-) activity to prevent the null-pointer exception on harness reload. | Case Management |
SR-D26589 | 496722 | Formula properly evaluated in pxParseExcelFile activity | When trying to use the activity pxParseExcelFile on an Excel file containing three sheets where each sheet had a different pagelist, the properties mentioned in sheet 1 were populated on upload but the remaining sheets only showed the error message "Could not get clipboard property for reference Work Queues.". This was caused by an error in Row index handling for the additional sheets, and has been resolved by updating the logic to populate the data in the clipboard. | Case Management |
SR-D29114 | 499933 | Added handling for bulleted text insert triggering audit | When a bulleted text (copied from an email or rich text ) was used in the text area property, the audit considered it as a change even when there was no change. This was tracked to the field value 'pyHistoryMemo • ChangeTrack_Add' in @baseclass which is being used to get the localized value for audit memo: the field value accepts only 2 parameters, but the inserted text area input contained the '\t' that is used for parameter translation. To resolve this, the system will call the addMemoForSecurityChangeTracking utility method to replace all \t's present in both the Current Value and Previous value with 'empty' such that no '\t' characters are available in either of the string parameters. | Case Management |
SR-D29590 | 499252 | Local change given for Attachment List View alignment issue | In the Attachment List View section, the text for the filter dropdown is misaligned and an extra close icon appears. As Attachment List View has been deprecated, this will not be addressed in a platform fix. For a workaround local change, add the below code in the AttachmentListView section: <style> .yui-panel .container-close::before, .container-close::before{ visibility:hidden; } #allCol{ width:155px; } </style> |
Case Management |
SR-D30687 | 500892 | Update message clarified for manual case update after SmartEmail shape used | For a case with #1 Optimistic Lock and #2 a SendEmail smart shape in the middle of a flow, once the SendEmail updated the case in the background, updating the case manually resulted in a "Please re-submit" message being displayed without any explanation. This has been resolved by ensuring that instead of a resubmit message (system update), the system will show a refresh message (normal update). | Case Management |
SR-D31751 | 504653 | SQL query performance improvement | Multiple queries were being framed with an UPPER function in the 'where' clause, causing performance issues. Investigation showed that report definitions related to audit (i.e., pyGetWorkHistory and pyGetWorkHistoryWithLatLong) were enabled to retrieve records by ignoring case. To avoid this, the system will compute the correct class name and pass it to the report definitions. | Case Management |
SR-D33227 | 510826 | 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. | Case Management |
SR-D37444 | 507039 | WorkBasketGadget control updated for improved backwards compatibility | After upgrade, the WorkBasketGadget Control was not retrieving the work queues. This was traced to a backwards compatibility issue introduced when greater security was put in place. The control WorkBasketGadget contains a call to pzEncryptURLActionString that was introduced in 8.x versions of the platform to encrypt URLs to avoid hijacking. The content of the URL relies on the pxRequestor.pxWorkGroup property, which is resolved using pega:reference tags. This approach was working in versions below 8.x, but these tags were not resolved at runtime. To correct this, requestorWorkGroup will be resolved as string and passed as a parameter instead of using pega:reference tags. | Case Management |
SR-D39264 | 518841 | Multiple files uploaded using "select file" will be handled asynchronously | In order to resolve an intermittent error when uploading multiple files using the "select file" button, each file will be uploaded asynchronously to avoid overloading the browser threshold. | Case Management |
SR-D40593 | 513439 | Extra spaces removed in Automation field value generation | The control StatusLookUp was generating extra spaces in the field value DOM, causing issues with Automation. This has been corrected. | Case Management |
SR-D42244 | 507486 | Top page reference made explicit for alternate stage visibility condition | After upgrade, trying to use Save-As on the caseType rule to move it to a higher Ruleset version resulted in the alternate stage configuration setting not showing correctly. This was due to the "set Value" action not being performed correctly when the save-as was performed, causing the client visibility condition on the DL cell which included the master details section to not be shown. This has been corrected by ensuring there is a proper reference to the top page in this scenario. | Case Management |
SR-D43807 | 512048 | Localization added to File upload alerts | When uploading files as part of adding attachments, error and warning messages were displayed as alerts in English despite using localization. This was traced to the pzMultiDragDropControlStandard control rule having the HTML alert messages hard coded instead of using field values which could be localized. To resolve this, field values have been created for the messages related to DragDropMaxSize, FileNotExistMessage, FileUploadSupportMessage, and UnableToLoadFileMessage. | Case Management |
SR-D47018 | 517033 | 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-D47146 | 515649 | Pick Values modal updated for deprecated list view handling | Pick values were not displaying in the menus below Case Management-> Tools -> My Work, including "Work entered by me", "Work by workbasket", and "Work resolved by me recently". This was due to the use of deprecated list views: the pick values modal was failing to show and hide the busy indicator because the indicator now uses jQuery, but list view does not include jQuery. In order to resolve this, the equivalent Report Definition pyEnteredByMe has now been added under the navigation rule : pzProcessAndCaseRulesMainMenu. | Case Management |
SR-D51535 | 519476 | Enhanced discrimination for tasks in MyPega spaces | When using My Pega for spaces and tasks, using drag and drop to move many cases around quickly resulted in tasks intermittently ending up in a state where they could not be updated further and became unusable. Analysis showed that because the milliseconds part of the update time was rounded, the logic of comparing for value between 0 and 1000 failed when the comparison returned -ve value. To resolve this, the comparison has been modified to !=0 and the 'when' rule pyContinueTaskProcessing has been added as an extension along with the appropriate usage guide to restrict processing. By default, the system will consider task name, description, due date, assignee, and rank properties; if more properties are needed to evaluate, this when rule can help. | Case Management |
SR-D67323 | 529948 | XSS filtering added for CreateMergedWordDoc | XSS filtering has been added for the TemplateName parameter value in the CreateMergedWordDoc section. | Case Management |
Cloud Services
There were no 8.4 Resolved Issues for Cloud Services
Conversational Channels
8.4 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D18814 | 493325 | Enhancement added to fetch HTML attachment from CMS | When email containing HTML was sent to the Listener, some of the characters were not getting decoded properly when viewing. In this case, HTML email content was saved as an attachment in CMS , and this error was traced to the system being unable to fetch the attachment. To resolve this, an enhancement has been added to fetch non-Pega database attachments using pxGetFileAttachmentContent. | Conversational Channels |
SR-D23360 | 493465 | Email reply with same attachment name correctly processed | When an email reply was received with an attachment using the same name as one received earlier, the new attachment was not getting processed and the message 'The Specified file/folder already exists in the target repository. Please specify a different file/folder' appeared. This was traced to an incomplete check for the object class that did not qualify the attachment name for a reply, and as been corrected. | Conversational Channels |
SR-D27695 | 500839 | Email Discussion Thread retains Formatting | CSS styles were not being retained in the discussion thread when replying to InboundCorrespondence cases. This was traced to a missing value in Param.latestReply activity pzCreateExternalPostFromMail, and has been resolved by setting an initial plain text value to the param.latestReply before it is set with the HTML value. This prevents having a blank parameter value if the incoming HTML value is empty. | Conversational Channels |
SR-D29832 | 503226 | Corrected image alignment for email case creation | An issue with missing image styling when an email was sent to create a case was traced to the Owasp library stripping align attributes from the img tag. This has been fixed. | Conversational Channels |
SR-D47795 | 524675 | Fallback to Pulse notification added for empty incoming account in CallEmailAutomation | After upgrade, issues were seen with the sender receiving email notifications for sent messages when alias addresses were used for incoming emails. To resolve this, a fallback mechanism to use a Pulse notification has been added in cases where an incoming email account is not found in the pyCallEmailAutomation activity. | Conversational Channels |
SR-D48246 | 518690 | TextAnalyzerClass will be populated during upgrade if not present | After upgrading, the email channels were failing to process the emails and the error "Unable to load data page D_pyEntityClassMapping. Required parameters : ClassName cannot be blank" was seen in the tracer log. Analysis showed the email channels were failing to process the emails due to the pzUpgradeVersion property in Data-Channel-Email instances being inconsistent post-upgrade. To resolve this, the system has been updated so if the TextAnalyzerClass or name property is not present in old email channels (created in 7.4), it will populate that property in the upgrade activity with the default classname. | Conversational Channels |
SR-D49782 | 518049 | Extension point added for ClearInteraction to support custom interactions | In order to support clearing a custom interaction page after clicking the "Reset" button on preview console, an extension point has been added to pyClearInteraction. | Conversational Channels |
SR-D7323 | 493178 | Pin Case to Board updated to use unique IDs for different workpools | When using the Pin Case to Board functionality, it was only possible to find and pin cases in the default/current work pool of the working access group and not any other cases in any other work pools which allowed access to open/search/process. This was due to pyLabel being used to compare if a value entered was valid, which was not a unique key. To resolve this, the pyValidatePinDetails activity in Pega-Ext-Mentions-Documents, Pega-Ext-Mentions-Cases, and Pega-Ext-Mentions-Groups classes have been updated to compare pzInsKey instead of pyLabel to check for validate pin. | Conversational Channels |
Data Integration
8.4 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D14601 | 490632 | Unique ID generation added for simultaneous multiple text area boxes | In the Interaction portal, adding a task for a interaction using a form with a character-count enabled text area worked as expected when the interaction first opened a task with the character counter text area. However, if a second version of the same task was opened before the first task was completed, the second text area was not responsive or working as expected. This was traced to the system generating the same ID attribute for both instances of the text area character counter span, and has been resolved. | Data Integration |
SR-D15395 | 492053 | Added DSS to handle BIX extracts under parse delimiter rules | When parse delimiter rules were applied, the File Listener was not parsing the CSV manifest file generated from a BIX extract until the file was resaved. This was traced to a space after a comma in the extracted files, and has been resolved with the addition of a DSS which enables the use-specified delimiter to remove the space after the comma in the manifest files. | Data Integration |
SR-D15872 | 494476 | Handling added for null result during BIX agent execution | While executing one of the extract rules either manually from the Designer Studio or by using the back end BIX-Agent, an infinite loop caused agent rules to run indefinitely and create a server log size that impacted system performance. This was traced to reading a page from stream that was returned as null due to an exception, preventing the system from proceeding to the next result. To resolve this, the system has been updated to move to the next result if the current result throws an exception and returns as null. | Data Integration |
SR-D15910 | 495124 | AM/PM time setting corrected for Riyadh timezone | When logged into the Pega mobile application with operator locale as ar_AR and timezone as Asia/Riyadh, selecting time as PM resulted in it being set to AM with Native control. If the native control was unchecked, a blank screen resulted. This has been corrected. | Data Integration |
SR-D16427 SR-D16427 SR-D20473 SR-D22113 SR-D32441 SR-D43347 SR-D44117 |
495818 497222 498035 498314 502574 509038 510703 |
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change | When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library.Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions. | Data Integration |
SR-D16678 | 511271 | FTPS server connections repaired | When attempting to connect and transfer files to an FTPS server, errors were seen and the files did not transfer. This has been corrected by updating the system to send a PSBZ command before sending PROT in the FTPS implementation. | Data Integration |
SR-D17825 | 494704 | PreSaveAs updated to set the correct ruleset value when saved into a different ruleset | When using a BIX Extract rule already configured with properties and filter criteria, attempting to update the filter criteria system resulted in an "invalid property error" and inability to save the updated rule. This was traced to the extract rule being created from another extract rule with 'save as', resulting in the new extract existing in a different ruleset. Because the pxBixReportPage.pyRuleset had the value of the original ruleset instead of rule set in which it had been saved, the system was attempting to find the filter properties in the original ruleset. To resolve this, the Presaveas activity in rule-admin-extract has been modified to check and set the correct value when both the rulesets are not equal. | Data Integration |
SR-D17973 | 490495 | Corected parameter mismatch to allow deletes to be added to history | Pega was not keeping track of a property if it was deleted from the data explorer tab, resulting in not being able to restore the deleted property. This was traced to a parameter mismatch: the Delete API adds the Memo parameter to the history, but while DeleteRecord accepted the Memo parameter, DeleteRecordInner accepted the HistoryMemo parameter. Because the parameters names were different, they were not propagated to the API. This has been corrected by setting the param.memo so that Rule-Delete API adds the history and the rule gets displayed correctly in recently deleted rules. | Data Integration |
SR-D18036 SR-D51536 |
495399 515067 |
Holdability flag set on connection for using MS SQL in Designer Studio | Static assembler was not working from Designer Studio, displaying the error "com.microsoft.sqlserver.jdbc.SQLServerException: SQL Server supports holdability at the connection level only. Use the connection.setHoldability() method." Investigation showed that ApplicationAssembly.getResultSetForQuery explicitly sets the holdability flag on the prepared statement, and this issue has been resolved by updating the system to set the holdability flag on connection as well. | Data Integration |
SR-D18120 | 496424 | JMS push notification made more robust | After creating a JMS Service to call pySendPushNotification from an activity, running it using User Context worked as expected but selecting initialize Service Context resulted in the Push notification silently failing in the context of JMS service. The JMS is used as a communication medium between legacy and Pega solutions. When the message arrives, Pega creates a new case and sends a push notification to the user, who has only 2 minutes to accept the case. Because of the urgency of timeliness in this situation, the push is sent directly from the context of the service rather than expend 30 seconds for agent processing. However, because the application was not always available to the pySendPushNotification activity (and further to API call), the push failed. In order to avoid this condition, the system has been modified to use the more widely available pxThread instead of Application when possible. | Data Integration |
SR-D18234 | 499028 | Updated backwards compatibility for custom date/time wuith extra text | After upgrade, migrated extra text in the custom date format was causing confusion. The previous support of additional text on earlier versions was not intentional, but was allowed by the previous default of non-template mode. In template mode, when custom datetime format includes plain text in single quotes, pega.ui.Formatter.formatDateTime processes the entire format string instead of only the datetime formats. To avoid confusion, updates have been made so if a custom format has plain text in quotes, the system will separate the formats and resolve them. | Data Integration |
SR-D19111 | 496593 | Improved compatibility for mapping pyMessageId with out-of-the-box email index rule | After upgrade, the process used for retrieving a reply for an email sent automatically by the system and comparing it with the incoming email to determine if it was a reply or not was failing to trigger an index or find instances of the class Data-Corr-Email that was supposed to save the property pyMessageId. This was related to recent refactoring of the handling for email headers in the Send activity, which moved them from a created AttachmentPage to the Primary page. The code in SendEmailNotification was still checking for the headers to be in the old location when going and adding the messageID, and was not taking it from the parameters. To resolve this, the pyMessageID will be set on the Primary page and messageID will be set on the parameter page based on the messageID in emailHeaders on the PrimaryPage. | Data Integration |
SR-D20075 | 516574 | DSS added to convert empty spaces for use between Old and New Assembler | After switching to the Old Assembler (via the DSS switch UseOldAssembler=false), MQ Requests were failing. This was due to a difference in behavior with the Old and New Assembler: the Old assembler treated empty spaces as an empty string and did not pass them along. In this use case, the response of a prior MQ call was parsed with the appropriate number of spaces to a new request while expecting the characters to remain in that format. Since the Old Assembler was converting these to "", this caused a difference in behavior when switching between the two options. To correct this, a DSS has been added that will compensate for this behavior of removing the spaces for Parse XML rules. This new DSS must be set in conjunction with using switchToOldAssembler: set "SOAPConnectorPreserveWhiteSpaces" in "Pega-IntegrationEngine" to true. Once this is done, all Parse XML rules need to be reassembled by either saving each manually, or running the "Revalidate and Save" wizard off of the Designer Studio Menu > System > Release > Upgrade > Validate. | Data Integration |
SR-D20763 | 500406 | DASS added to allow toggle of indexpurpose filter in declare index join | A performance issue was seen when using a declare index join to add a pxIndexPurpose filter to a very large index_workparty table, either taking a long time to process a search request or intermittently timing out. This was traced to recent modifications in the DeclareIndex Join filter conditions to better handle multiple declare index rules pointing to the same index table, As a result, doing a declare index join on one of the declare indexes returned results that included those that corresponded to other declare index rules. To resolve this, a DASS has been provided to toggle the inclusion of the indexpurpose filter in a declare index join to allow for better customization. | Data Integration |
SR-D20817 | 499922 | Async cache checking updated for interaction reload use | A thread level data page using connect REST to get data from an external system with the "Reload once per interaction" checkbox ticked was being loaded asynchronously from the activity when by default the data page it was supplying needed to be loaded synchronously. Due to this, changes to the data in the external database were not reflected in the data page. This was caused when an async cache was referred and the freshness check for the data page instance did not consider the 'reload once per interaction' flag because it would cause the data page to load twice. The cache checking has been updated to resolve this. | Data Integration |
SR-D21555 | 501106 | Resolved command line BIX/PRPCUtils creating unreachable nodes | BIX and PRPCUtils scripts were creating nodes that showed as unreachable or that were never cleared. This was traced to a code change that resulted in nodes starting as stream nodes unless given a node type or DSS settings, and has been resolved by setting the asyncExecutor/enable setting value as false in the prconfig.xml. The BIX command line JVM argument should also be set to NodeType=BIX. | Data Integration |
SR-D21569 | 491705 | PUT and WHEN support added for REST | Data layer rules in Pega were not getting generated through the Wizard- ‘Create Rest Integration’ when invoking the Rest service though the PUT method. This has been resolved by adding support for PUT and DELETE in pypresentdatapageoptions. | Data Integration |
SR-D21776 | 493780 | Corrected freshness check for async cache | A node level data page with time based refresh strategy was getting refreshed before the time out and many Pega0045 alerts were observed. Investigation showed the Load-DataPage activity step was causing the data page to be requeued and reloaded even if the earlier asynchronously loaded data page was fresh. This was due to a timing issue with the multiple asynchronous load of a data page where the freshness check for the already loaded instance was done before queuing the data page load, causing the check to fail. To resolve this, the freshness check will be performed on the instance which is present in the asynchronous cache if the instance in synchronous cache is stale. | Data Integration |
SR-D22075 | 501345 | Wild card character escape added for filtering data records | It was not possible to export data type records which were filtered with either _ or % in the value. This was due to the characters being wild card characters in the SQL-like operator, and has been resolved by modifying the NativeSQLAPIResolver to add escapecharacter to the runtime value of the filter. | Data Integration |
SR-D22437 | 492857 | Handling added for Pagelist Reference Property in LegacyPageAdapter getMode API | Post upgrade, a "Component Stack Mismatch" error appeared while opening a work item containing an embedded section that used a Data Page D_WorkApprovalCase input parameter as the Page Context. This was traced to an exception thrown by the getMode() API invoked on an auto-populate property because the property was in a read-only data page. By default, read-only data pages are light weight clipboard pages, but auto-populating properties on light weight clipboard pages was not handled via the failsafe page in the getMode() API. This has been fixed by adding handling to the getMode API of LegacyPageAdapter for properties not supported by redux ( eg: reference, autopopulate properties etc). | Data Integration |
SR-D22468 | 502037 | Bix extract performance improved by only checking cipher type for encrypted properties | Previously, if no cipher was configured in extract Rules the cipher type defaulted to null and wasn't cached. This caused performance issues when running against the database. In order to improve performance, the code has been modified to only check for cipher type if the property is encrypted. Performance issues were also seen when running a BIX extraction via the command line where the BIX extract was set to extract all properties, the BIX extract rule used Extract to XML, and DisableEpochDateTime and DisableEpochDate settings were not created and thus the default (false) value was used. This slowness was traced to the command line extract not caching the "miss" for the values of the Epoch settings and therefore repeatedly querying the pr_data_admin table for the date and datetime property for each record. Investigation showed that BIX was depending on DASS files that are not shipped out-of-the-box: since the DASSs were not present, the query to retrieve their value returned null and was not cached for future access. To resolve this, the system has been updated to pass default values for the two required DASSs if they are not present, ensuring a value will be cached and the DB query will not be fired unnecessarily. | Data Integration |
SR-D23490 | 496577 | Interface changes made to avoid unexpected workitem deletions when removing stale locks | Attempting to delete lock instances of work objects by directly opening the lock item found through navigating to (Dev Studio) App > Classes > System-Locks actually resulted in deleting the work item instead of just the lock. This was due to System-Locks being uniquely identified by the WorkItem that they belong to rather than having their own specific key. This meant that clicking on one of the instances caused the system to respond by presenting a "default RuleFormLayout section" which included a delete button keyed to the actual workitem, but this was not made explicitly clear in the interface. In order to prevent unexpected item deletions, the table has been replaced with a link to the proper System-Lock interface, specifically the "My Locks" window. | Data Integration |
SR-D23881 | 499693 | MessageID properly set after exception encountered | When SendEmailNotification was used to send an email to one valid email address and one invalid email address, the email was sent and the code generated a MessageID, but the MessageID was not included in the return parameter. Investigation showed that the MessageID setting was skipped if an exception occurred. This has been resolved by updating the code to ensure the ID is set. | Data Integration |
SR-D23906 SR-D42456 |
502577 510958 |
Case status correctly updated when using RDA | When a Assignment was routed to a work queue and Flow Action post processing was set to trigger an RDA Automation to update some case property, an error appeared saying there was no data available on the Page and the case status was not updated when it moved to the next stage. This was an issue with case status not being correctly updated when using robotic automation, and has been resolved. | Data Integration |
SR-D24187 | 506128 | Catch block added to handle invalid FindAndUpdateElement clipboard data | An exception was generated relating to "Unable to passivate page on thread '<savedwork>' . The following items were not serializable: [Property not serializable: "Declare_pyDisplay.pyDisplay(InteractionPortal).pyUIElements(3).pyParameters.activityParamPage" Class: "com.pega.pegarules.pub.runtime.ParameterPage." This was traced to invalid data in the clipboard, and has been resolved with the addition of a catch block in pzFindAndUpdateElement Rule-Utility-Function which will put an empty string in the clipboard whenever there is an invalid value in the 'Declare_pyDisplay.pyDisplay().pyUIElements().pyParameters' clipboard page. | Data Integration |
SR-D24193 SR-D24198 SR-D24214 SR-D24260 SR-D24260 SR-D24261 SR-D24262 |
492567 492699 492570 492562 492563 492559 492555 |
Updated retry for context registraton | The system was intermittently hanging after importing zipped files. Investigation showed that Batch threads were becoming stuck in AuthorizationContextManagerImpl.setSpecializations() due to a 'while' loop in setSpecializations that was seeking to register the new context. To resolve this, logic has been added which will try to register up to 10 times. If for any reason it can't register, the system will just return the unregister LAC. The check before deregister has also been enhanced and now will only deregister if the new context and the current context are different. It will not call register if the current context and the new context are the same. | Data Integration |
SR-D25163 | 504612 | Improved query efficiency for bulk processing | Spikes were observed in Library Cache usage. These were traced to queries that originated from Agent 'AgentBulkProcessing' and the activity 'PzAgentBulProcessing' that used "like" and "as", which were not performance efficient in a large-scale installation. The queries in the CheckBulkProcessQueue activity have now been updated to improve performance. | Data Integration |
SR-D25184 | 494692 | Support added for referencing Page Group property inside of strategy | Referencing a page property under Page Group property inside a strategy resulted in a runtime error of ClassCasting: "java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.pega.decision.strategy.ssa.runtime.ClipboardPage". The issue was traced to the SSA optimized code for the GetPage SSA assuming that the GetPage SSA would only have another page as a parent. In order to handle the above scenario where GetPage would have a GetPageCollection as a parent and return a List of ClipboardPages, a GetPage function has been applied over each entry in the results of the GetPageCollection SSA using a MapAction SSA. Some optimizations will be applied in cases where the GetPageCollection has only one entry, which will replace the MapAction with a simple GetPage action. | Data Integration |
SR-D25278 | 499449 | Enhanced logging for Clipboard JSON Deserializer | An enhancement has been made to introduce a number of logger events to the Clipboard JSON Deserializer in order to have sufficient data to diagnose any issues encountered. | Data Integration |
SR-D25482 SR-D26160 |
493635 504070 |
Corrected duplicate records being inserted in to the index table | Rows in the index table were duplicated. This was traced to a logic error on the ClipboardPage relating to workObject2, and has been resolved. | Data Integration |
SR-D25788 | 494662 | Property object wrapper updated to resolve Declare Expression issue | When a Declare Expression fired, the mode of the target property was calculated incorrectly by the system. This occurred under the following conditions: - A Case type contained a embedded Page List configured to refer to a Data Pagelist - PersonList - A Decimal Property of the Case was configured to be the target of a Declare Expression which had the Page Context of the the embedded Pagelist and a change tracking of whenever used - .GrossIncome - A Decimal Property of the Case was configured to be the target of a Declare Expression that summed up the values of a Decimal value of the embedded Page list and had a change tracking setting of whenever inputs changed. This resulted in the API used to calculate the Primary page (for running declare expression rule) throwing an exception because the getPageValue() was invoked on a scalar property. To resolve this, new methods have been introduced in the property object wrapper to pass on the avoidAutoChain flag. |
Data Integration |
SR-D25902 | 510083 | DSS added for reference Page Group fields extraction using Dictionary | Reference properties were not being resolved when the useDictionary option was set to false, resulting in empty data being extracted from the blob for embedded pagegroup and pagelist properties. To resolve this, a new dynamic system setting in Pega-RULES ruleset, "BIX/enableDictionaryLookUpForDBExtract", has been added to enable dictionary resolution so that the embedded page group reference property values are resolved for extraction. The default value is "false". | Data Integration |
SR-D26204 | 499093 | Corrected Survey rule editing | After creating a paragraph rule in Pega Survey questions, attempting to edit the question by opening the existing paragraph rule from the edit question modal window was not working and instead the option of creating a new rule was presented. Investigation showed that the Autocomplete control for showing paragraph, HTML section, and custom HTML was missing the AppliesTo parameter, causing the rule opener to fall back to the Create New Rule page. To resolve this, pyClassName has been added as a parameter to autocomplete controls. | Data Integration |
SR-D26342 SR-D27354 SR-D28297 SR-D28431 SR-D28709 SR-D31134 SR-D64406 SR-D67614 SR-D8754 |
498718 496365 498143 496787 497046 499593 525252 527487 497379 |
Tracer issues resolved for Google Chrome broswer | Tracer was running in the background even after the tracer window was closed. Attempting to run a Tracer in this condition resulted in an error indicating the Tracer was being run by another operator and should be restarted, and in the Dev environment, attempting to start a Tracer once it was closed resulted in the message "Cannot launch multiple Tracer sessions for a requestor." Investigation found that the Tracer session was not being closed when the tracer window was closed because the browser specific method intended to do so was not being called. This was found to be an issue caused by the Google Chrome browser changing the signature of the method, and has been resolved by updating the method name in the TraceMain HTML rule. | Data Integration |
SR-D26785 | 496445 | Corrected error when persisting temporary work object | When persisting a temporary work object using the Persist case shape, the internal assignment handle was not updated to include the work object's ID. Subsequent attempts to access the internal assignment (such as the "Edit" button on the Review Harness) resulted in errors. Investigation showed that when a temporary case was persisted, pyInternalAssignmentHandle was not getting recalculated after pzInsKey was updated. To resolve this, the configuration on the edit button has been modified to use .pxFlow(pzInternalCaseFlow).pxAssignmentKey which is what pyInternalAssignmentHandle declare expression was also returning. | Data Integration |
SR-D26913 | 500208 | Decision Table support added to customize MIME types | ExtensionMimeDetector uses the Pega internal libraries property file "mime-types.properties" to return the MIME type. In order to facilitate customization such as a third party filenet system for processing that utilizes different MIME types, an override mechanism has been provided per file extension via a Decision Table for overriding the Pega defaults. | Data Integration |
SR-D27307 | 503758 | Jcraft libraries updated | The JCraft libraries have been updated to resolve an intermittent FTP connection issue. | Data Integration |
SR-D27540 | 502969 | Null check added for ObjClass filter value | When a report definition was run with "Starts with" as a filter condition and "Use null if empty" was not checked, the message "An error occurred during resolving the report definition - null java.lang.StringIndexOutOfBoundsException" was logged. This did not appear if the filter condition was "is equal" and "Use null if empty" was checked. To resolve this, the system will check for a null or empty value on pxObjClass filter values before processing it for class descendants. | Data Integration |
SR-D28985 | 498017 | Improvements made to Excel data import handling for decision tables | On importing an Excel file into a decision table, the values modified in Excel were getting updated even though the rule was checked in after the import. Investigation showed that the API which handled converting the imported Excel file for use on the clipboard was defaulting to save actions if the rule was not checked out or in private edit before the import. In order to prevent future issues, the following changes have been made in this area: The "Import" button will be enabled only after clicking on checkout button, and discarding the checkout will also discard any imported values. When checkout for the rule set is disabled, only the save option will be displayed on the decision table. When the import button is visible and enabled, imported values will not be preserved if Actions -> Refresh is used before saving. When rulesets are disabled, the decision table can only be private edited and at that time the save and import buttons will be visible. When private edit is visible, the import button will be in a disabled state. | Data Integration |
SR-D28996 | 520717 | External Mappings set for History Rule tab of class display | After creating a class rule with external mapping columns and saving the rule, attempting to restore the previous saved snapshot from the full history of the class rule resulted in the external mapping tab being displayed with empty rows. This was traced to "External mappings" not being set when displaying the History Rule, and has been resolved by adding a call to RULE-OBJ-CLASS!OPENDEFAULTS to set the mapping properties. | Data Integration |
SR-D29034 | 500683 | 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-D29901 | 505063 | Additional numeric decimal method added to Class mapping wizard | If a table was created with column type numeric(18,2) and then the database class mapping wizard was run to map the column to a property, the wizard generated a property of type Integer, which is incorrect - it should be a property of Decimal type. When generating columns on the pega side using the SQL types of an external database (in getBestPegaTypeForColumnType), the switch statement falsely had numerics as being integers. To resolve this, an additional method has been added with numerics being treated as decimals. | Data Integration |
SR-D30505 | 501896 | Revalidate and save works for Service Packages using OAuth2.0 | Revalidate and Save was failing for service packages of type Data-Admin-ServicePackage which used authentication type as OAuth2.0 . If this was modified to basic authentication / unchecking authentication, revalidate and save was successful. Historically, the implementation of pzOnlyRestServiceType always assumed the primary page was the Service Package rule itself. To support this alternate use, the logic has been updated and a check of the Service Type has been added for the pxResults of the data page. | Data Integration |
SR-D31474 | 500793 | PRTraceServlet security check added | Modifying the Pega application URL with PRTraceServlet displayed multiple user credentials and session information. This has been corrected with the addition of a privilege check in GetConnectionListCommand before allowing the connections list to be fetched. | Data Integration |
SR-D32307 | 500955 | BIX extracts traverse up from embedded pages to find target tables | For BIX Extracts with Output Format : Database Schema, the target table name was not being generated if the properties were buried under two levels of Embedded Pages. Instead, in case of multiple nested levels of PAGE property types, the system ended up referring the immediate Parent page or its parent PAGE for pySourceName. Since this is of type PAGE, an empty value was returned for the target table name and the extract would fail. To resolve this, the system has been updated to traverse up the node parents until the correct target table name is found. | Data Integration |
SR-D32332 SR-D38588 |
502270 506370 |
Removed unneeded table name calculation | After giving short names (less than 30 characters) for "To Table", saving did not produce an error, but an error was thrown during Check In. Investigation showed that while checking in the extract rule, a block of code in the Rule-Utility-Function validateTreeProperties was being executed to recompute the pagelist's table name instead of using the name provided by the user. To resolve this, the Rule-Utility-Function has been modified to not execute this block of code during check-in of the extract rule. The validation will be seen during save if the 'To field' has more than 30 characters. | Data Integration |
SR-D32381 | 519466 | Transient property passivation handling improved | Frequent "com.pega.pegarules.pub.PRRuntimeException" errors were seen in the production log file while working on the WO. This was traced to corruption in the blob caused by transient properties during passivation. To resolve this, corrections have been made to the handling for the transient property entries in the blob. | Data Integration |
SR-D32655 | 510345 | 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. | Data Integration |
SR-D32890 | 507595 | Report on descendant class instances no longer defaults to using dynamic union | When the instance view of System-Status-Nodes was launched, an error was observed in the log stating that properties weren't optimized in a different class (Pega-Landing-System-HighAvailability). This was traced to the option "Report on descendant class instances" being enabled by default to use dynamic union where applicable, causing that to be applied upon execution of the report definition to fetch the instances. This has been resolved by unchecking the ReportDefinition "Report on descendant class instances" option. | Data Integration |
SR-D33003 | 511231 | Queue Batch activity correctly passes chlld process access group | Attempting to create an index using the schema tools landing page was throwing an error in the table history stating "Create index failed". Investigation showed that this happened when a user was authenticated without the PegeRULES:DatabaseAdministrator role and then switched to an Access Group with the PegeRULES: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 | 514024 | 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-D33359 | 505774 | SelectAll properly applied to only the page selected | In repeating grid, applying SelectAll on one page resulted in it being applied to the next page as well even though all records in the other page were not selected. Investigation showed that on change, the 'when' condition added to refresh the list was always false. To resolve this, the condition in section pzBulkProcessingCheckbox which refreshes the list once the checkbox is changed has been removed. | Data Integration |
SR-D33832 | 503958 | Configurability added to SLA Timeliness to allow either 0 or NULL for Unqualified records | When using a Report Definition where the count (aggregate function) was used for both the WithinSLA and Past Deadline columns, the correct value was not getting displayed. The correct value was displayed when the sum function was used instead of the count function, but clicking 'value' returned all values despite what value was displayed on the screen. This was a behavior change related to performing a drill down action on a report definition. As per the older behavior, drill down relies on a specific value (NULL) to determine whether a record is a candidate to be shown in the drill down report. From 7.2.1 forward, drilldown relies on value 0 instead of NULL to make the average summarize function work properly, which led to a change in behavior when used with other summarize functions like sum and count. To resolve this, SLA Timeliness related RAFs have been modified to conditionally return either 0 or NULL for Unqualified records based on a DASS config. | Data Integration |
SR-D33934 SR-D65944 |
503335 533395 |
Parent case lock properly released when child case is resolved | After creating Parent-Child casetypes with default locking where the child case had the “Allow access to parent” check box checked, the temporary lock acquired on the parent during resolution of the child case was not released afterwards. If “Allow access to parent” was not checked, then the locks were released on both the parent and the child. This was traced to a combination of parameters used by the openIfStale() API where aUnlockOnCommit could be set to false despite the provided locking strategy expecting it to be true, as well as honoring UnlockOnCommit when maintainLockingStrategy is false. To resolve this, the system has been updated to always check whether the lock is available in the map already and if it is, then set unlockonCommit to true. Otherwise, under all cases, honor the passed-in unlockOnCommit value. | Data Integration |
SR-D34274 | 501380 | Elastic Search thread pool size increased | Applications frequently using FTS queries on work items sometimes faced poor response times caused by a backlog of Elastic Search requests queuing up on the util node before being served. Previously, the search thread pool configured value was 1 when the ES is embedded in Pega. In order to improve performance, this thread pool size has been increased in order to take advantage of ES's ability to dynamically determine the number of appropriate threads based on the number of CPU cores. | Data Integration |
SR-D34532 | 506353 | SMTPUserID derivation logic updated to handle O365 format | After email accounts were changed to point to Office365, the SendEmailNotification activity threw an exception with the error "javax.mail.AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful". Running the SendSimpleEmail activity with the same details worked as expected. This was due to how SmtpUserID is derived from FromUsername parameter: if FromUsername is empty, the system will try to derive SMTPUserID using the 'From' address by trimming it up to the '@' character and using that. This worked well with Gmail or Outlook accounts which have '@' followed by the domain name, but in O365 the format is generally along the lines of "[email protected]". This led to the authentication error. To resolve this, the logic used to assign the SMTPUserID from the email address has been updated in the EmailAccountUtility.java . | Data Integration |
SR-D36293 SR-D36293 SR-D44857 SR-D44878 |
509305 509282 510735 510732 |
Node level data page now specifies tenant name in MT environments | In order to address a requestor contention between different tenants during the load of node level data page in multi-tenant environments, an enhancement has been added that will specify the tenant name in the data page name. This will improve performance by allowing different tenants to have different locks, ensuring the process of data page loading on one tenant will not make another tenant wait for the loading of the same data page. Additional debug and trace logging has also been added to provide more information related to declarative rule cache management. | Data Integration |
SR-D36372 SR-D42645 SR-D42670 SR-D43397 |
504747 510578 510184 510331 |
Force order added to inner join when running a Rules Resolution filter | After upgrade, D_getResolvedWorkStatuses was not loading properly due to a Report Definition that used a Filter by Rule Resolution option timing out on the SQL Server. When the Filter by Rule Resolution option is selected in RD, it will generate a rule resolution query with an inner join which can cause a time out on the SQL Server while it tries to find out the join order for tables with multiple joins. To resolve this, the SQL server will provide a Force order, merge inner join hint option by way of an added DSS reporting/useForceOrderHint. Additionally, reporting/useMergeHintForRRquery should be set on Pega-Reporting to set things up for using the Merge Inner join hint in the query. | Data Integration |
SR-D36636 | 503462 | Check added to resolve WrongModeException in Work-.Reassign | An agent was failing due to a WrongModeException specific to the out-of-the-box activity "Work-.Reassign". Investigation showed that in the activity "Work-.Reassign" step no 15, there was an assumption that if the property pxFlow existed then newAssignPage.pxFlowName must also exist: if it didn't, invalid pages were created in pyWorkpage.pxflow. To resolve this, a check for the existence of newAssignPage.pxFlowName has been added. | Data Integration |
SR-D36704 | 504809 | Repaired Pega validation report | The Pega Usage validation report was not working. This was traced to the UVO O/P file having a null value and not containing any data regarding the environment daily usage. This has been corrected by updating the java used in getElementsByTagName. | Data Integration |
SR-D36715 SR-D41229 |
507457 507177 |
Resolved slowness in retrieving case attachment from AWS | Attempting to open a case attachment caused the application to slow over time and eventually became unresponsive. Restarting the Tomcat nodes improved the response time. This was traced to a null Buffered Input Stream not being closed correctly when using AWS, and has been resolved by adding the needed logic to PegaGadget-Pulse.pzStorageAttachSelectedFile. In addition, enhanced logging has been added to Embed-Repository-S3.pyGetFile. | Data Integration |
SR-D37605 | 506895 | Pagelist merge issue corrected for mobile app | When using the mobile application, logging out of the application in the middle of a case by way of the "Options" menu caused "OnPathOffPathlist" to not be populated on the server in pyWorkPage. The data was populated correctly if the case was completed or the exit was performed from the application. Investigation showed that in this case, the page list was not getting merged into the page during the sync of the mobile app with the server due to the mode of the target property being set to unknown. This was traced to the target property mode being overridden by a blank source property mode that was being held in a featureless redux page for performance reasons, and has been corrected. | Data Integration |
SR-D37779 | 514412 | DSS 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 DSS setting racache/useForceOrderHintForInvalidationQuery. | Data Integration |
SR-D38144 | 509380 | MQ listeners will not start before the node is ready | If there were messages in an MQ queue during a JVM recycle, the MQ listeners would start and pull the messages from the queue prior to the application being fully available. This resulted in an error message in the logs and the MQ messages were lost. This was due to the requestor context being stale because the Listener was started but the node was not, and has been resolved by adding a check to ensure the MQ Listener will not start to process until the node has started. | Data Integration |
SR-D38306 | 507992 | Deleted operator details stored in history table | Pegaunit automation has been added for the pxAddHistoryToTempObject activity to allow the retrieval of detailed operator records in the pr_history_data table. | Data Integration |
SR-D39003 | 505998 | Threads will be updated to maintain assembly context when using Static Assembler | When running the Static Assembler utility from UI, the assembler process completed successfully but the PegaRULES.log was flooded with the FATAL exception "Usage error - next Executable not based on current". This error was generated from com.pega.pegarules.session.internal.mgmt.Executable constructor, and indicated an issue with the thread context being different from the assembly context. To resolve this, the system has been modified to update the context of thread to what is expected as assembly context. | Data Integration |
SR-D39060 | 526982 | Rest connector supports extended chars in attachments | When the pyRequestAttachmentPage clipboard page was populated with a file name that contained Latin supplemental 1 unicode characters (decimal values 160 to 255 - for example an umlaut), any extended characters were being converted to question marks (?) before the call was sent, causing the web service call initiated by Pega to fail. To better support this use, an enhancement has been added to support a multipart request with extended characters in the file name. This allows the pyRequestAttachmentPage to specify pyFileNameExtendedChars, allowing RFC 6532 mode to be toggled for multipart requests with attachments. This mode allows for UTF-8 encoding in the attachment file name header, rather than the default ASCII encoding. | Data Integration |
SR-D39491 | 506020 | Logic trimmed for better Listener performance | After multiple email listeners with Data indexing were enabled, the FTSIndexer queue was filling with Email Listener instances. Investigation showed that although Listener Management has logic for updating the last access time of all listeners by using APIs, the Email Listener was explicitly opening the email listener rule to update the last access time every time it was run. This has been corrected. | Data Integration |
SR-D39606 | 512961 | SendEmailMessage Rule-Utility-Function updated so failed Send Corr messages are requeued | When using "send corr" agent for sending email, failed messages were not being re-queued and no error was displayed. Logs had to be consulted to see whether the email was sent or not. To resolve this, changes have been made to the SendEmailMessage Rule-Utility-Function to handle the exceptions properly. Failed messages will go into a broken queue so they are available for retry. | Data Integration |
SR-D40053 | 517528 | GetNextWork will use pyID to create unique thread name | After creating three cases, for example D-1, D-2 and D-3 in application 'App1', and then moving to application 'App2' using Switch Application, the GetNextWork function was displaying unexpected behavior. Clicking on 'get next work' three times picked up the three cases (D-1, D-2, D-3) as expected, but when a case was closed manually the last case's lock was removed from the table. For example, closing D-2 manually resulted in the lock instance for the last case ID (D-3) being removed instead of D-2. This was traced to the Get Next Work API creating the thread with the access group name, which meant that if multiple assignments were accessed through 'get next work' it was always cleaning the already opened assignment threads and only the last assignment thread was available. To resolve this, Instead of creating the thread name with accessgroupname, the system will use the work object's pyID to create the thread using a unique key. | Data Integration |
SR-D40883 | 511124 | 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 | 512108 | 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-D41229 SR-D54314 SR-D63579 SR-D65362 SR-D72368 |
513590 517291 528000 526933 534332 |
Enhancements added for using AWS file repositories | Enhancements have been added to improve the use of AWS file storage: - Logging for AWS SDK connection metrics can be activated on a per-repository basis, either through the ruleform or through the DSS `storage/class/:/enableMetrics`. - INFO logging can be enabled on PegaAWSSDKMetricReporter to periodically output averages of recorded metrics for all registered S3 repositories with metric collection enabled, or INFO logging can be enabled on PegaAWSRequestMetricCollector to output recorded metrics on every client call for all registered S3 repositories with metric collection enabled. - The interval at which PegaAWSSDKMetricReporter logs metrics at can be configured with the DASS `storage/AWSSDK/metricReportingInterval`. This DASS is a system-wide setting, and not a per-repository setting. The default reporting interval is 90 seconds, and metric collection is disabled on all repositories by default. |
Data Integration |
SR-D41368 | 507958 | Special character issues resolved with Obj-browse in SQL query generation logic | Two issues were identified with Obj-browse in SQL query generation logic. 1. In filter conditions, if the RHS value was set from a parameter and the value started with a DOT (.), the system assumed the RHS value to be a property and formed the resulting SQL query with the fieldname as column on the RHS value in database query filter. Example: filter has .FirstName=".abc", in this case the database query had a filter clause as "where firstname=abc" which was incorrect as ".abc" was a value and not representing any column. This has been resolved by changing the logic to identify whether the value passed is actually a "property" or "a literal starting with DOT character". 2. In filter conditions, if the RHS value with match operator (contains/starts with etc) had both underscores and single quotes, the single quotes were escaped as well as the underscores. Since the database query execution flow used PreparedStatements, single quotes should not be escaped at all as JDBC itself takes care of escaping the single quotes in prepared values. This has been resolved by updating the logic used to escape single quotes when using prepared statements. |
Data Integration |
SR-D41580 | 512483 | Check added for match of tenant ID class and thread | Many bad class exceptions were logged on a multi-tenant system when accessing a worklist or refreshing the browser. This was traced to classDefinitonImpl.getDescendantIter() returning all classes (tenant + shared) because the classDefinition.getTable() API failed to resolve the table for a specific tenant. To resolve this, a condition has been added that will check that the tenant ID of the class matches the tenant ID of the current thread and skip the unmatched classes. | Data Integration |
SR-D42241 | 518640 | CyberArk support has been added for this release | CyberArk support has been added for this release. | Data Integration |
SR-D42380 | 515002 | Draft mode switched off for pzCreateNew flow | After upgrade, the Connect SOAP wizard (Configure -> Integration -> Connectors -> Create SOAP Integration) would not open. Analysis found that pzCreateNew flow [Class: Pega-DataModel-DataSources-SOAP and Ruleset: Pega-IntegrationArchitect:08-01-01] had draft mode on, causing the issue. There was a workaround of doing a private edit of pzCreateNew flow, but this issue has now been corrected by switching off the Draft mode. | Data Integration |
SR-D42406 | 510670 | 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-D42888 | 511452 | ElasticSearch startup modified | Search was broken on the app-tier node due to the Full-text search startup failing during a re-initialization. As part of normal re-initialization, the existing node is shut down and the Elastic Search node started. However, in this case because the shutdown process was not properly invoked, the system attempted to start the second instance of an ES node on the same machine. The shutdown process is reliant on a boolean flag which indicates if the current status of the full-text search initialization is successful: this flag indicated initialization had failed when actually the ES node had started but failed to validate all the cluster level settings due to topology changes in the Pega cluster. In order to avoid this scenario, the restart has been split so that the node can be marked as started but not initialized. This allows the follow-up reinitializations a greater opportunity to succeed. In addition, the shutdown FTS code has been modified to shutdown ES regardless of the search initialization status. | Data Integration |
SR-D43105 | 513739 | Optimation added for Oracle queries | Certain versions of Oracle may suffer from sporadic poor performance with all_constraints queries. To alleviate this, Pega has been updated to provide some processing optimization where possible in the TableInformationMapImpl function. Additional timing alert and debugging logic has also been added in this class for all platforms, especially for lookupForeignKey. | Data Integration |
SR-D43131 | 511062 | Page section page map entries initalized for private checkout | Attempting to check out any rule in the development environment resulted in a null pointer error. Investigation showed this was due to the Page Section page map entries not being initialized, causing an exception in the activity pzperformprivatecheckout where obj-save is performed. This has been corrected. | Data Integration |
SR-D43173 | 508612 | Filter logic updated for Warning Summary guardrail report | After scheduling a Guardrail report for Warning Summary, the warning summary reports received in email were blank irrespective of the filter criteria. The logic filters have been modified to resolve this issue. | Data Integration |
SR-D43621 | 518098 | Improved debugging information for File Listener | The error message in the DelimitedParserBase has been improved to give more information, and overall diagnostic information has been enhanced for File Listener. | Data Integration |
SR-D43627 | 509801 | 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. | Data Integration |
SR-D43918 | 511183 | 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 | 512192 | 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-D4559 | 486557 | Normalized type attribute namespace for Weblogic compatibility | After upgrading from Weblogic 12.1.3.0 to Weblogic 12.2.1.3, the namespace in the generated Request XML for some elements was appearing as null/blank. This has been resolved by normalizing the type attribute namespaces' option in Connect-SOAP. | Data Integration |
SR-D45622 | 521662 | Sorting on Grid works with declare expression property | If a property with a declare expression was used in a column, the sorting on that column was not working. This was traced to reference errors when Grid used the engine API pega.sortPageList to sort the page list / data page, and has been corrected. | Data Integration |
SR-D45646 | 516176 | Flexible decoding for mported files | When importing CSV files, special characters appeared as ??? instead of "éèù ...". This was traced to the system using UTF-8 as default format to support all character sets including multi-byte (accented) characters while Excel uses ANSI encoding, creating an encoding incompatibility. To resolve this, an update has been made so the system will read the encoding from the source/property and pass it to InputStreamReader instead of always hard coding UTF-8. | Data Integration |
SR-D46159 SR-D48369 SR-D64220 |
510972 514306 535133 |
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 | 513752 | 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-D48010 SR-D51353 |
514983 516914 |
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. | Data Integration |
SR-D48392 | 525131 | Conditions added for RuleSet names in private edits | When a data type data page was referenced by a rule in a different RuleSet to that of data type itself, the data page disappeared from the list of data pages displayed in the data type. A private checkout of report definition Rule-Declare-Pages.pzGetDataPagesForExplorer and the removal of the filter criteria 'IRR.The_version_of_the_RuleSet_of_the_referencing_rule' Less Than or Equal To ' RS.pzRulesetVersion' allowed the data page to reappear. The root cause was traced to the Index-Reference sub report join in the report definition Rule-Declare-Pages.pzGetDataPagesForExplorer incorrectly matching the Index-Reference for the section and thus failing the selection criteria when the referencing rule was in a private edit. To resolve this, an other condition has been added for situations when the RuleSet name of the referencing rule contains "@" (which means the referencing rule is in private edit) to the two RDs. The other change is not to show private edits in the referencing rules, which is done by adding the condition .pxReferencingRuleSetName does not contain "@" in the RD pzGetReferencesInfo. This will not show the number of references and the referencing rules until it is checked in. | Data Integration |
SR-D48960 SR-D50016 SR-D50528 SR-D61253 |
517880 515904 514133 527656 |
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-D49507 | 521413 | Support added for Oneof/AllOf association prefix in ABAC policies | The Report browser was freezing when attempting to save a report with an association rule where ABAC policies prevented access to one of the classes in the association. This has been resolved by updating the system to append the correct prefix in cases where the ABAC rule has Oneof/Allof Functions so the association is resolved correctly. | Data Integration |
SR-D50350 | 519077 | Added keydown event handler for JAWS use | Clicking the "Select file(s)" button worked for mouse and keyboard users but did not work when a screen reader was used. Investigation showed that Keydown events were not firing while the JAWS screen reader was running. Since the screen reader was prompting a space key press to activate, an event keycode for space has been added in the pzMultiFilePath control for Select file button to resolve this issue. In addition, a role application has been added for a button to fire keydown events while running the JAWS screen reader. | Data Integration |
SR-D50436 | 513850 | 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-D50664 | 531689 | Support added for tracing PageList during automations | When using the out-of-the-box email reply on an email triage case, an exception was observed in the tracer stating "com.pega.pegarules.pub.clipboard.WrongModeException: The property To.pxResults was of mode Page List while com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getObjectValue() was expecting Java Object mode." This has been resolved by adding support for tracing PageList during automations. | Data Integration |
SR-D51722 | 515359 | ClusterAndDBCleaner agent will remove extracts older than 30 days from pr_log table | In order to better manage pr_log table size and query performance, an enhancement has been added to control the purge of entries of extract type. The default is to delete entries older than 30 days. | Data Integration |
SR-D51725 | 516468 | DSS added to rpevent logging of sensitive data used as input during async batch task processing | When running Async Batch Task Processing, the whole set of inputs was logged when an error occurred during ADP load. Because this might result in sensitive data such as SSN, DOB, IDs, etc, being included in the debugging output, a DSS has now been added which when set will avoid printing any sensitive information in the log. | Data Integration |
SR-D52523 | 519165 | Smart Prompt refreshes the cache after deleted instances | When running an activity where a data type with one data model acted as key to the data type, the parameter declared was shown with an input box. If the down arrow was pressed in the input box, all the records stored for the data model (key) in data type were shown. If one record was deleted from the data type records and the activity run again, the deleted option was included in the list shown when pressing the down arrow. When a new record was added to the data type and the activity was run, the correct option list was shown in the dropdown and the deleted record was correctly omitted. This was caused by a difference in the APIs used for adding and changing the records and for deleting the records which resulted in the list not being refreshed after deletion of a record. To resolve this, a step has been added to reload the cache after a successful delete and commit. | Data Integration |
SR-D53253 | 515309 | Versioning information removed from Universal SMA | To clarify that Universal SMA is compatible with Pega 7.4 and all below versions, the repository name has been changed to remove the versioning number so it is listed as only "Universal SMA". | Data Integration |
SR-D53543 | 515178 | Correction to JPY decimal precision | Decimal precision has been adjusted to zero for JPY in non-template. | Data Integration |
SR-D53674 | 515625 | Stack traces will be logged if debug is enabled | The error logging in com.pega.pegarules.exec.internal.declare.DeclareChangesHelperImpl#onSave was causing an issue with upgrades in MT environments due to excessive logs being thrown from the onSave method in DeclareChangesHelperImpl. These errors are logged when there is a database exception during System declare changes generation during onSave, and in a multiple tenant environment it resulted in Out of Memory exceptions because of logging stack traces. To resolve this, the system has been updated so that stack traces will only be logged when debug logs are enabled. | Data Integration |
SR-D55106 | 525464 | Improvements to error recovery and logging for BIX extracts | Previously, the BIX incremental extraction would restart from the last extraction date time if it had a failure, even if some batches were processed successfully, and the starting and ending datetime considered for the incremental extraction were not logged. As part of this update, extractions will resume from the point of failure instead of starting all over again, and the logging has been enhanced to include Information about the parameters used for extraction (starting time, end time, #of records processed/failed etc). However, if the -f flag is set, batch level failures will cause BIX to terminate but blob read errors will not. This causes the restart logic in this fix to not function properly in the face of blob read errors such as an ORA-01555 when reading the blob. Resolution for that aspect of this issue will be provided in a future release. | Data Integration |
SR-D55161 | 527652 | getStoreDataTable updated to resolve thread lock issues | An IlegalMonitorStateException in TableInformationMapImpl.getDataStoreTableInfo caused a read lock to not be released, preventing other threads from acquiring a ReentrantReadWriteLock.WriteLock on the same ReentrantReadWriteLock. This eventually lead to a Deadlock scenario forcing other threads into an irrecoverable WAITING state. The issue could be cleared by restarting the nodes, but the implementation of the getDataStoreTableInfo method has been updated to resolve this issue. | Data Integration |
SR-D55841 | 522696 | isAvailable calendar instance will include time zones | When using a custom configuration to route assignments, if today was configured as unavailablefrom date, assignments were still routed to the current operator even though they were not available. Analysis showed that the same Calendar was not used to compare date objStartDate, opUnavailableFrom and opUnavailableTo in the function, isAvailable. The isAvailable FUA calculates objStartDate by getting the calendar instance and setting the time by calculating it from the next business day. However, the calendar instance was created from Calendar.getInstance(), which does not use a time zone, and this resulted in a mis-match of time. To resolve this, instead of creating a calendar instance objStartDate will be formatted to YYYYMMDD format and then converted to the requestor time zone timings using Data Time Utils parseDateTimeString. | Data Integration |
SR-D56978 | 523328 | Enhancements added for mail handling | Numerous EmailClientRuntimeExceptions were seen during listener execution. This was traced to a null folder name in the email client configuration that was expected during listener processing, and investigation showed it had been created during a race condition in creating configuration objects for sender and receiver. Handling has been added to address this conflict. As part of addressing the related issues, enhancements have been made to enable the email listener configuration to utilize all available nodes in a cluster to improve scalability for high load conditions and increased ability to process more messages per hour. | Data Integration |
SR-D57444 | 519167 | Scripts provided to remove unneeded TenantID for Cloud upgrade | Cloud upgrade from 8.3 to 8.3.1 was failing in a multi-tenant environment during creation of the Data-MigrationPoint instance. This was traced to pzTenantId not being included in the insert statement when the table included the pzTenantId column. As the column is unnecessary and was only included in the table for completeness, scripts have been provided to remove the pzTenantId column from the table for 8.3.0 and 8.3.1 MT deployments and remove pzTenantId from table in pegarules-master.xml to resolve this issue. | Data Integration |
SR-D57855 SR-D63912 SR-D67211 SR-D69836 |
521126 531206 534062 529730 |
Context retained during nested automation | Issues were seen with context being passed correctly with automation. When a Data Page that was used to abstract the call to a REST API used a Data Transform which in turn used a Data Page which also used a call to a REST API to retrieve an OAuth Token, an error appeared. The same worked when a URL was provided on the Connect REST. When a service case was launched but a Flow Action wasn't submitted, then another service case was added and submitted, the post-processing robotic automation activity used the run robotic automation activity from the previous service case instead of the current service case targeted for completion. This has been resolved by updating the webwb • pzpega_ui_doc_submit.js file to pass the correct MDIContext based on the event target of FA submission while invoking RDA automation. | Data Integration |
SR-D58194 | 524702 | Declarative cache resolved based on tenantId | After upgrade, creating a case type (Assistance request) with a customized Create view was generating an exception error during the RecalcuateAndSave activity (in step 6). This was traced to a NullPointerException when building a declare expression cache entry for a property and was due to the class on which the expression was defined not being present in the current tenant. To resolve this, Declarative cache will be resolved based on tenantId. | Data Integration |
SR-D62355 | 529679 | ClassName retrieved from rule definition when root record comes from primary page | A When rule with single condition .DateProp >= .DateTimeProp was returning true when DateProp was set to a certain date & DateTimeProp was set to a date after DateProp. This was expected to return false. Investigation showed this was a missed use-case for property expressions where the root record came from the Primary Page, and was traced to an issue with the values being converted to String and the class not being set properly when the IL Assembler was used to resolve the Primary.IntegerProp's type. This has been resolved by returning the pyClassName retrieved from the rule definition page. |
Data Integration |
SR-D64570 | 528960 | Thread deadlocks during RAP imports resolved by reusing query results | When using a time-intensive large query to build a cache to hold complex property references, multiple threads on a single tenant executed this query in a sequential manner and thread locking problems were seen. To resolve this, an update has been made so that for the same tenant, only one thread will run the query. All other threads waiting to acquire the lock will not execute the same db query but will instead make use of the result fetched by the first thread. | Data Integration |
Decision Management
8.4 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D16934 SR-D28038 |
493705 501757 |
External Cassandra nodes listed in DDS cluster | Nodes of an external Cassandra cluster were not listed in the DDS cluster except for the first one in the host list, and when the “only” listed Cassandra node was restarted, the status on the DDS cluster LP did not become “NORMAL” afterwards. In addition, even though other C* nodes were up and running, the external Cassandra cluster was reported as unreachable. This was an unintended side effect of work done on the landing page to reflect the real state of the nodes after some were killed and restarted, and has been corrected by refining the equals() and hashCode() methods for DDS member info in order to better differentiate the external Cassandra nodes. | Decision Management |
SR-D22686 | 493519 | IH summaries working with external Cassandra | Summaries were not working for external Cassandra. This was an issue with the IH summary component using the aggregated dataset as a reference, and this fix contains several components to improve this function. An issue where the IH aggregates dataset does not materialize when DDS is external Cassandra has been resolved by modifying the code that checks the DDS availability. A filter that was used to match “” did not work when pre-aggregation is off : this was due to the IH Browse operation being done outside of a DF context, and has been fixed. The IH Summary shape not working properly in a strategy if it referenced an aggregate dataset with pxInteractionID as part of the group-by properties was traced to an issue with it generating a pxInteractionID value when executing the strategy, and has been resolved by excluding pxInteractionID from the group keys in the IH Summary shape. | Decision Management |
SR-D24880 | 494175 | CEP bucket size increased to 1 minute | Frequent DSM Data Flow Errors were observed in production nodes with very high event rates. This was traced to the default bucket size for CEP being 1 second for a 31 day window, which was not sufficient to handle high volume use which may create an event strategy window large enough to hit the Cassandra column size limit. In order to resolve this, the default bucket size has been increased from 1 second to 1 minute. | Decision Management |
SR-D26010 SR-D53933 |
500166 525601 |
Modified VBD insertion logic to improve handling | An issue with not being able to launch an additional VDB node was traced to two processes inserting into VBD with different field signatures and triggering unnecessary object creation. This was amplified when adding a second node as the objects were serialized. To resolve this, the insertion logic has been modified to avoid creating new data container/field descriptors after a new field is included, as well as a measurement with smaller data type than previous container. | Decision Management |
SR-D26976 | 507218 | Filter added to ensure correct context for proposition strategy rules | Given two applications (ex App1 and App2) hosted on the same domain where App2 was built on App1, trying to create a strategy rule in App1 and do a test run strategy using the propositional data component which internally uses App2 propositions generated the error: Failed to find a 'RULE-DECISION-DECISIONPARAMETERS' with the name 'GROUP_2'. There were 1 rules with this name in the rulebase, but none matched this request." Investigation showed the strategy was using the PropositionNoCacheUtils and PropositionTools java classes to load the propositions during run time. In these classes, the group classes were browsed from the db irrespective of the application context, causing the strategy run to fail as it was not able to access the decision data rules in other applications which shared the same SR class as the current application. To resolve this, a filter has been added to the PropositionNoCacheUtils and PropositionTools java classes to filter out the groups that are not in the current application context. | Decision Management |
SR-D37163 | 505478 | Corrected Decision Data import filter behavior | After upgrade, if a Decision data import referred another component to filter out the import, it did not work. This has been corrected. | Decision Management |
SR-D37945 | 506800 | Server node cache refresh will use remote execution timeout | A campaign was failing due to VBD remote ping timeout with a stacktrace that indicated a StageException. Investigation showed that when the cluster is heavily loaded, calls to the remote execution API could time out. If this occurred when the VBD client was refreshing its cache of VBD server nodes, then the insert failed and the error was propagated up the calling data flow. To resolve this, the system will use the remote execution timeout when refreshing node cache, extend the timeout to 60 seconds, and ensure timeouts are retried during inserts. | Decision Management |
SR-D38415 | 507996 | Resolved Transfer to Queue duplicate assignments | The Transfer to a Queue option was creating duplicate assignments after accepting the Chat. Once the chat was accepted, an instance was created\maintained in both Assign-Workbasket and Assign-Worklist tables. This happened after adding the "Transfers" queue to an Agent; if that queue was not added, the transfer to a queue option gave an error to the Agent receiving\accepting the chat. The Work-.ReassignDefaults activity is an extension that was customized in the Pega-DecisionManager ruleset for a certain use case in revision management. The customization is no longer required and has become redundant and has therefore been removed to resolve this issue. | Decision Management |
SR-D38492 | 505490 | Batching now enabled when using IH Summary shape in substrategies | Batching was not being enabled when using IH Summary shape in substrategies. This was traced to the IH_SUMMARY_CACHE field not automatically being passed to sub-strategies, and has been corrected. | Decision Management |
SR-D39956 | 511638 | 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 |
512088 509738 |
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-D41616 | 509809 | Corrected Cassandra startup error related to client authentication | During provisioning, Cassandra nodes in PegaDDSTier failed to join the cluster and the error "Exception (org.apache.cassandra.exceptions.ConfigurationException) encountered during startup: Invalid yaml. Those properties [truststore_password, truststore] are not valid" was generated. Investigation showed that the recent addition of support for client authentication using the settings "dnode/cassandra_client_encryption/truststore" and "dnode/cassandra_client_encryption/truststore_password" resulted in nulls being set cassandra.yaml if the new parameters were not given values. To resolve this, truststore and truststore_password will not be added to cassandra.yaml when they are not set in prconfig or system settings. | Decision Management |
SR-D41730 | 508144 | TTL value correctly passed for Adaptive Event store | The ADM table was growing due to the Time to Live (TTL) for entries in the Adaptive Event Store not being propagated to clean them out. This was traced to the TTL field on the data flow not being checked, causing the TTL value to be supplied as zero so there was no expiration. This has been corrected. | Decision Management |
SR-D42451 | 518068 | ExecuteRDB call updated to use NativeSQL for blob | After creating a test activity to clear data set records that used the DataSet-Execute method and passed the data set name and truncate operation, only 51 records were deleted in a single run when the data set had more than 51 records. Investigation showed that for blob tables, the database truncate operation was using executeRDB with an empty results page, i.e. it didn't specify pyMaxRecords, which on some databases might have limited the number affected records. To resolve this, the executeRDB call in the database truncate operation has been modified to use NativeSQL for blob tables. | Decision Management |
SR-D43470 | 511440 | Adjusted generated file cleanup to resolve class not found issues | After upgrade, attempting to run a new multi-channel campaign failed with an error citing "java.lang.NoClassDefFoundError: com/pegarules/generated/testgen/Rule_Decision_DDF_Data_Decision_Request_Customer_DF_ProcessOffer_Action". This was traced to a temporary directory with generated java files that was cleaned up before the restart, leading to the .Class file for the DF_ProcessOffer not being present when needed. This has been resolved by adjusting the cleanup of the files so they are not removed too early. | Decision Management |
SR-D44159 | 512448 | Refined Change Request creation logic | Once a Change Request was terminated/closed with the X button available on the UI, the Change Request was created but could not be opened from the Report Manager landing page. Investigation showed that a change request created from the new revision button or create change request in the refine selection screen did not yet have pyLabel available in the CR because the assignment would not be submitted at this stage (Refine selection screen). Once the assignment was submitted, the pyLabel value would be committed to the database and be available in the change request. To resolve this, the CR creation rules have been modified and will set the pylabel value. | Decision Management |
SR-D45608 | 519903 | Correct service instance name passed for data flow in DSMStatus | When using the Connect-HTTP service "DSMStatus" to provide the node and status information as seen on the various tabs of the Designer Studio > Decisioning > Infrastructure > Services landing page, using DataFlow as the service parameter for the HTTP service method resulted in an empty response when the expectation was to get the information regarding the cluster details of Dataflow node type. This was traced to the service instance name not being parsed correctly when used for Data Flow services, and has been resolved by ensuring the correct service instance name is passed for this use. | Decision Management |
SR-D45698 | 511090 | Edit available rules now available for rules created in revision management control | New rules created in a revision management context could not be removed from the overlay using the edit available rules functionality. This was caused by the delete button against all new rules being disabled due to the 'when' rule pyDisableDeleteInIncludedRules always being true for new rules created in revision management context. When new rules are created in the revision management context, the pyNewRuleInLP property will always exist and its value will be false. If a revision involving the new rule has not yet been submitted, the new rule is not displayed in the list of available rules at all. When the rule is displayed after the revision is submitted, the pyNewRuleInLP property value will always be false. In order to support the editing of rules in this scenario, the 'when' rule Data-Rule-Summary.pyDisableDeleteInIncludedRules has been updated so that instead of the "property pyNewRuleInLP exists and has value" check, there is now a "property pyNewRuleInLP is true" check. | Decision Management |
SR-D47618 | 512603 | 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 | 511971 | 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-D50345 | 513609 | Performance improvement for Interaction History | Interaction history was causing a performance issue due to pySubjectID being hard coded in the query while the clause values disabled query caching. To resolve this, a bind variable will be passed when using a single subject ID select call to the FACT table in the Inbound queries. | Decision Management |
SR-D51017 | 517182 | Expanded date format handling | The xx in the xx:yy time format was incorrectly detected as a year. To correct this, support has been added for the use case of the date followed by time. | Decision Management |
SR-D52051 | 515376 | Corrected EditElement disappearing after DDR import | After importing a DDR to a 'treatment', the section disappeared. Because the treatment decision data rules are created in the top level SR class, when the treatments are exported from these rules, the pyIssue and the pyGroup classes are empty in the exported CSV. When new treatments were added or existing treatment are modified in the CSV and imported, the pxObjClass for the treatments was set to Data-pxStrategyResult as the pyIssue and pyGroup were empty in the imported CSV. To correct this, pySelectedClass will be set to the propositions instead of pxPage.pxObjClass while importing. | Decision Management |
SR-D52723 | 516092 | 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 | 516918 | 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 | 516318 | 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-D53622 | 515545 | Dataflow Batch performance improvement | Performance issues were seen when running Dataflow Batch with Interaction History lookup. This has been resolved by refining the logic used in the pzIHExecuteSQL function. | Decision Management |
SR-D54218 SR-D69028 |
518601 528974 |
Deadlock in static Initialization of IntList resolved | JVM Deadlock was seen related to the static Initialization of a subclass field in class com.pega.decision.strategy.ssa.runtime.collections.api.IntList . Thread dumps showed threads in RUNNABLE State that were parked to wait for class initialization, and this was traced to a missed sonar alert which failed in multi-threading. To resolve this, the system handling has been updated to prevent potential deadlock. | Decision Management |
SR-D54430 | 518291 | Updated VDB Statistics rendering to compensate for Google Chrome changes | The Statistics overlay was not rendering for VBD planner in Google Chrome. Investigation showed that the Google Chrome browser (v.77) was misfiring one of the mouse events due to changes in the browser, and the handling has been updated to resolve this issue. | Decision Management |
SR-D54602 | 517309 | 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-D60121 | 525492 | All interactions visible in "Latest Responses" for ADM | Interactions were not visible in the "Latest Responses" section of the Model Management landing page for Adaptive models if the requests were stored on multi-node systems. This was due to the system fetching the Last Responses using a list of server nodes built using a version of deployment.getClusterState(tools) which gave only the ADM nodes list instead of all the ADM nodes both client and server. To resolve this, the system has been updated to use ServiceRegistry to get all of the data flow nodes and get the last responses from each of them. | Decision Management |
SR-D60268 | 521467 | Performance and thread-handling improvements for SSA | The SecureRandom class was used internally by SSAExecutionContext indirectly via UUID generation. Because this exhibited performance issues on some Linux environments, UUID has been replaced with static AtomicLong. In addition, a memory leak was observed when the strategy (SSA) execution resulted in an exception, and the strategy template has been modified to gracefully shutdown the VM under all circumstances. Thread-safety measures have also been tuned to be more fine-grained to reduce the potential thread contention that was seen while borrowing the SSAInterpreter object from SSAInterpreterPool. | Decision Management |
Low-Code Application Development
8.4 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-C78603 | 417128 | Expression Builder will flag local variables | An enhancement has been added to Expression builder which will display a warning in the test panel evaluation if there are any local variables in the given expression. | Low-code app development |
SR-D16433 | 499297 | Exception handling added for upgraded custom decision tables | After upgrade, the status fail message "There has been an issue; please consult your system administrator" appeared with a blue screen in the Run window when attempting to run a Decision table from Actions-> Run option. This impacted the ability to create unit test cases. Analysis showed the issue occurred for any decision table where "Evaluate All rows" was enabled and list properties were used in Actions if there was no value for the list property after the execution of decision table. This was traced to a NullPointerException in a RunRuleFromPage activity in a customized in PUnit ruleset, and was caused by having list properties in the actions of a decision table that had not been populated during rule execution. Exception handling has been added to resolve this. | Low-code app development |
SR-D17987 | 494485 | Check added for backwards compatibility with Case Type when rules | After upgrade, the When rules present on case type rules (used for skipping stages or showing/hiding stage-wide or case-wide actions) were not executing at run time. This was traced to the introduction of the pySkipOrAllowType property in recent versions, and was only reproducible when the ApplicationRuleset was locked and after upgrade irrespective of whether the condition for when was true or false. To resolve this and enhance backwards capability, a check has been added for the SkipOrAllowType property being empty. | Low-code app development |
SR-D18726 | 501390 | Application quality page retains info on reopen | When the application quality page was accessed for the first time the page displayed all the data properly, but if it was closed and then opened again all the counts were blank. This was traced to an issue with converting the date from the client to the database, and was seen when the Oracle database had date filed as key and type date. The issue did not occur if the type was varchar2. To resolve this, the system will use obj-open-by-handle instead of obj-open while fetching the details of AQD. | Low-code app development |
SR-D24750 | 501748 | Resolved importing PublicFormat file using RuleFromFile Wizard | When attempting to create a flow from a Public Format XML file using the Rule From File Wizard, the following error was seen: "Problem invoking function: pega_procom_harvest.performXSLT--(String,String,boolean,HashStringMap)". This was caused by a mapping failure related to the pyComments property in baseclass pega social functionality, and has been resolved with the addition of a new page group property pyComments of type "Data-MO-Annotation-Comment" which applies to "Embed-Rule-Obj-Flow-ProcessModel". | Low-code app development |
SR-D26334 | 495322 | Restore delegated rules short description header | For delegated rules like SLA/Correspondence, the short description was not getting displayed in the header. This was an unintended side effect of work done on automation rule capabilities, and has been resolved by restoring the layout visibility condition pzDelegateHeader in pzRuleFormKeysAndDescription. | Low-code app development |
SR-D27041 | 499048 | Manual value group addition support available | In a test case created for a data transform containing a value group property, that value group property could be added by clicking the + sign in the left pane of the test case, but a value group property could not be added manually by clicking the add row button. This has been resolved by adding support for manually adding value list/value groups. The activity steps which were using @java function have also now been replaced with a getproperty function. | Low-code app development |
SR-D32035 | 504706 | Save Button for Delegated rules is displayed correctly | The save button for delegated rules was displayed in a truncated shape. This has been corrected by removing the split-left style from all of the buttons that are intended to be standalone and not have a drop-down actions menu. | Low-code app development |
SR-D35734 | 504481 | Escalation updated to ensure assignee is notified of missed deadline | The Passed Deadline SLA Actions to send email to the owner were not triggered as configured in SLA rule form. To correct that, pzMapEasyEscalationParams steps 3.4.10 and 3.4.11 have been modified to support "NotifyAssignee" for the passed deadline. | Low-code app development |
SR-D37415 | 508968 | Parameter page update added to improve backwards compatibility for ShowTestLibraryTab | An error was observed on the first attempt to modify the 'when' rule "ShowTestLibraryTab" located in PegaProjectMgmt:08-01-01. Analysis showed the when rule (Always, Never) which was called from this rule was not found, which was an issue traced to the Rule-Obj-When function alias parameter name being changed from "strWhen" to "blockName" in the 8.1 release. Subsequent attempts to save the modified rule succeeded due to step#7 in the Embed-UserFunction.pzPopulateDropdownFBUIParameters activity upgrading the pyParameters page with the latest data. To resolve this backwards compatibility issue, the activity step#6 has been modified to upgrade the parameter name for the Rule-Obj-When function alias. | Low-code app development |
SR-D38053 | 508226 | Upcase case shape will fall back to pyWorkCover if multiple pages are present | In the Update a Case shape, selecting "A Single Case" and providing .pxCoveredInsKeys(1) for the With ID field worked as expected, but using the same data transform and selecting either "All child cases and descendants" or a specific child case resulted in no update on the children. This was traced to the findPageByHandle API not returning the most appropriate page, which created an issue whenever multiple pages were present in the clipboard. To correct this, the system has been updated to use pyWorkCover if present. | Low-code app development |
SR-D38450 | 505657 | Added workaround to handle HiddenPropertiesToIgnore when a page is in Read Only mode | A 'WrongModeException' was generated while trying to use the Data Transform pxHiddenPropertiesToIgnore to remove system properties from page. When the Datapage was set to Editable/Savable mode, the Activity ran without an error and executed the Data transform. When the Datapage was in Read only mode, the error occurred. This was traced to a process that previously was allowed to set a page to an empty string, but which was removed during recent work. To resolve this, four instances of pxHiddenPropertiesToIgnore that included Single Page Value properties have been updated by moving them to the bottom of the Data Page and changing them to an "Update Page" from a "Set". | Low-code app development |
SR-D39972 | 513461 | 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 SR-D47975 |
511398 514014 |
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-D40685 | 508811 | Custom routing configured in early Pega versions will be mapped to custom on upgrade | After upgrade, a configured custom routing option under assignment properties was missing in all assignments. This has been resolved by updating pzUpdateRouting with a condition that will take assignments configured in Pega 6 versions and map them to 'custom'. | Low-code app development |
SR-D41636 | 509432 | Route to configuration in the approval flow accepts Specific User parameters | Route to configuration in the approval flow was not accepting a parameter value/property value when select Specific User option from drop down was chosen. This was traced to unique ID change work done in the 8.2 release: the pzSimpleApproval section has two controls (DropDown for Participant & AutoComplete for Operator) configured on same property pyOperatorToAssign with "run visibility on client configuration), and when the control value was being changed in the AutoComplete control, the empty value of DropDown control was being posted to the clipboard. To correct this, the section Work-.pzSimpleApproval has been modified to remove performing run-visibility conditions at client side. Instead, the system will use the ".pyApproverType Changes" condition to refresh the wrapper DL which contains the routeTo type Operator/WB/Participant property controls. | Low-code app development |
SR-D42402 | 508896 | Added differentiated handling for special symbols based on location in the label string | While importing an Excel file into a decision table that used custom functions like@string:notequal or equal, label names like 'AlphaPrefix !=AAA' resulted in the error "invalid expression or reference: line 1:28 extraneous input '"True"' expecting {<EOF>, '-', '+', '=', '*', '/'," " . Investigation found that the problem was with the label of the column not handling the the special characters like (‘!=’, ‘<’ , ‘<=’, ‘>’, ‘>=’ ) present in the middle of the label string: the label and default operator were being updated irrespective of the location of the symbols within the string. To resolve this, DecisionTableWorkBookConverter.java has been modified to set the operator only if the special strings (‘!=’, ‘<’ , ‘<=’, ‘>’, ‘>=’ ) are present at the end of the label. | Low-code app development |
SR-D42566 | 512873 | ApplicationInventory function deleted | 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. | Low-code app development |
SR-D43776 | 510763 | 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 | 509909 | 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-D44942 | 518355 | Guided tour popups handling added for right-to-left language locales | Guided Tour Popups were still appearing in the default EN location after switching to the ar_AR locale. This was traced to a missed use case for locales using a right-to-left mode such as Arabic or Hebrew, and has been resolved by updating the guided tour engine openPopOver function to account for the HTML tag dir attribute for value of "rtl". This will anchor the pop over to rightBottom / and display the arrow on the rightTop instead of leftBottom / leftTop. | Low-code app development |
SR-D48248 | 517239 | XSS filtering added to URLs | XSS filtering has been added to prevent the injection of a script into a URL using ViewXML. | Low-code app development |
SR-D48751 SR-D56347 |
515538 523276 |
Pega unit for case type records user inputs | When creating a Pega unit for the case type by selecting Actions -> Record test case for Case, the user inputs were not recorded for embedded page properties. This has been corrected. | Low-code app development |
SR-D52138 | 537507 | Property setting corrected for On Join and Exclusion shapes in Expression Builder | The properties for the defined page did not appear when using the type-ahead feature to select properties for the On Data Join and Exclusion shapes in Expression Builder. This was an issue related to the property being referenced for setting the context in the expression builder, and has been corrected. | Low-code app development |
SR-D63031 | 526244 | Reusable assets default option populated correctly for new application | When creating an application with at least two case types where each case type belonged to different class groups and pointed to different tables but were configured to have only one work pool, operator work pool values for pxThread and pxRequestor did not correctly reflect the different access group settings. This was traced to the inheritance of default values when the portal pyPortal.pyDesktopType was set to Composite, which caused the system to always take the value from the work pools in the application whether or not it was the same value as specified. A check has now been added so that the system will only default to using the value from the work pool if no value has been specified. | Low-code app development |
SR-D65401 | 528958 | Parameter page retained after strategy test case checkout | After a test case for a Strategy was created, it passed in the initial run but then failed after checkout of the test case. This was traced to an issue with the activity pzCheckAndUpdateParameters for strategy, and has been corrected. | Low-code app development |
Mobile
8.4 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D17418 | 498723 | Attached note header displays properly in Hebrew locale | With the locale set to Hebrew, the whole portal is presented correctly from right to left, but when opening a case note (attached email) the header was not displayed as right to left. This has been resolved by updating the 'DisplayNote' HTML of class 'Data-WorkAttach-Note' and 'Show' HTML of class 'Data-Corr-Email' to use locale information from the operator. | Mobile |
SR-D17575 | 492689 | Survey route to work queue option restored for smartshape | After upgrade, routing to workqueue was no longer available for the new create survey smart shape. This has been restored. | Mobile |
SR-D18589 | 495717 | Google Map API updated | When using Address Map control with enabled markers whose source is a datapage, the location in the map was redirected as expected to the address populated by the datapage, but the marker overlay that appeared by default containing address details and a link to "Open in Google Maps" did not load. Clicking on random places on the map caused it to load correctly. This has been corrected with the creation of a custom activity to get section markup that will use reload section with proper context to fix the issue. In addition, enhancements have been made to enable automatic upgrade of existing apps which use Address Map to use pxMap by auto-generating pxMap from the existing configuration. Properties set in Address Map's design time configuration should be mapped to corresponding properties in pxMap as given below. If report definition, clipboard page. or list property was used as marker source, a data page will need to be created manually. 'Starting Lat, Long' property is mapped to 'Custom initial lat / long' 'Markers source' is mapped to 'MARKERS' as follows: - 'None' to 'None' - 'Data page' to 'Data page', 'Property for location' -> 'Location property', 'Marker info section' -> 'Info section' - 'Property' to 'Property', 'Address property' -> 'Address property', 'Allow marker repositioning to change the address value' -> 'Drag marker position to update address value', 'Report lat long in property' -> 'Lat / long logging property', 'Report incorrect address' and 'Error message' is ignored at this time - 'Report definition' is ignored - 'Clipboard page' is ignored - 'List defined on property' is ignored 'Visibility' and 'Tour ID' are mapped 1to1 It is also possible to disable rendering of the Map control from the Address Map configuration: when switched off, pxAddressMap will be generated instead of pxMap. |
Mobile |
SR-D21004 | 492467 | Corrected case comparison to prevent completed cases being routed to error workbasket | Some cases were routing to the sync error workbasket even while being resolved. Investigation showed that pzSetDeferWrite was comparing the serverside assignhandle with the assignahandle sent by the client upon sync, but since the client was sending assignahandle in lowercase (reproduced if workid prefix is customized), the comparison was failing. To resolve this, the AI has been modified to pass the pzInskey as uppercase to the pzSetDeferWrite activity. | Mobile |
SR-D28060 | 498751 | XSS filtering added to App Studio | The pzDisplaySpaceFeedTitle control which is used to display the audit feed in Pega App Studio has been updated with XSS filtering. | Mobile |
SR-D28293 | 498235 | Pega Survey answer values support special characters | When using a Complex radio control (RadioButtonComplexQuestionSurvey), a selected option that used answer values containing special characters was cleared on refresh. This was traced to a mismatch between strAnswer and strValue in the control logic, and has been corrected. | Mobile |
SR-D28965 | 501858 | Repository document deletion modified for better cleanup | When using documents functionality, creating and uploading a document properly stored it, but deleting the document did not remove the associated files from storage. Whenever a document is created that has a file, instances Of Link-Attachment and Data-WorkAttach-File are also created. Previously, when the document was deleted, the associated instances and actual file were not deleted from the repositories but rather marked as Resolved-Withdrawn and hidden at the UI level. The system has now been updated so that when a document is deleted, the document attachment will also be deleted from all places like list, Tile, and document View, and reference instances like Link-Attachment and Data-WorkAttach-File instance will also be removed along with the actual file from the repository. | Mobile |
SR-D30428 | 503425 | Added handling for deprecated UI Kit in Pulse OpenURLInWindow | After upgrade, clicking on a link in a Pulse comment opened a new window with an error message indicating no content was returned. Investigation showed that if an older deprecated version of the UI kit was used, 'Open URL in window' was configured as Run Script function. The more recent versions use an OpenURLInWindow action. To resolve this, the script has been updated to use an action and pass the correct parameters. | Mobile |
SR-D32107 | 503173 | jQuery library updated | As part of security enhancement features, the jQuery library has been upgraded. The following rulesets have been updated: pzJquerymentionsInput_custom , pzpega_process_engine , pzpega_ui_addressmap , pzpega_ui_doc_domUtils |
Mobile |
SR-D33052 | 502063 | Blank space removed in email reply | An issue with blank space being added between the CSR icon and the email content for the first customer mail has been resolved by setting the window width to 100%. | Mobile |
SR-D33930 | 507972 | Check added to pyWorkPage before context page replacement | When given an assignment configured with Save and Next buttons where the on-click of the Next button triggered FinishAssignment and the case type used Optimistic locking, the workobject lock was not acquired and an error was thrown when clicking Save and then the Next button. Investigation showed that the lock was not acquired because the pyCaseUpdateInfo page was not available in the work object under pyWorkPage. This was traced to the 'When' condition used to display the delete icon on a pulse post. This When condition needs to be evaluated on the context page (in this case, the work page), but when multiple posts are present on the WorkObject) the pyWorkPage was being replaced with a fresh copy from the DB and any updates on the current work page were lost. To resolve this, the behavior has been changed from always creating a context page to only creating the context page if one does not already exist on the Thread. | Mobile |
SR-D35434 | 504588 | Added subprocess cleanup for hasPreviousTask loop | The mobile app hung on a specific scenario where there were no displayable shapes in the flow path (all decision shapes) and the pyFlowPath became empty but wasn't removed from the pxFlow page. This was traced to environmental loops present in the application, and this has been resolved by ensuring that while going back, completed subprocesses are completely removed from the pxFlow on pyworkpage. | Mobile |
SR-D37033 | 511461 | Filter popup misalignment on grid corrected | After clicking on a grid filter, the filter popup had two scrollbars for adjustment and did not stay on the grid while scrolling the screen. This has been fixed by modifying the CSS style of overflow, which was previously using one that was meant for tablets and which affected position calculation for overlays in touchable laptops. | Mobile |
SR-D37117 | 511358 | Update Survey Work Objects' utility differentiates between survey and other objects | Running the Update Survey work object utility calls the “pxUpgradeSurveyProperties” datatransform, which has a 'when' rule to call the function “@pzSurveyUpgradeSetProperty” to replace the Questionnaire page in the first step. This function was failing with a logged exception when it was passed a string instead of the page it was expecting. This issue occurred when the WO did not have survey data structure, and was due to the Survey Utility being intended to upgrade only Pega Survey class instances. In order to allow for more flexibility, the Survey Upgrade Utility has now been enhanced to differentiate between survey and other objects to resolve the exceptions. | Mobile |
SR-D37275 | 519029 | Enabled PDF attachment for iPad Safari | It was not possible to select the PDF option when attempting to attach a file while using iPad Safari. This has been corrected. | Mobile |
SR-D37757 | 507968 | Pulse delete icon repaired | After upgrade, it was no longer possible to delete one's own comment in Pulse. This was traced to the section pzDeleteMessage having two dynamic layouts with icon as image configured. During runtime, this section was present in the DOM yet the icons were not visible when the conditions configured were returned as true. This was caused by an error in the generated java for the layout, and has been corrected. | Mobile |
SR-D40605 | 510918 | 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-D42193 | 515627 | Color codes will not be saved as message tags | When the pxCreateAndManageTriageWork activity created pulse message (M-) Cases that included the inbound email body message, it called the pySaveTagsInPost activity to save any tag references in the post message by using the pyObject property value. In some scenarios where the message content was from a mail client which embedded style color codes with “#” (eg: #B5C4DF), Pega identified those values as tags and added those tags to the pulse message. To resolve this, the system will format the message text before parsing it to save tags. | Mobile |
SR-D42243 | 525773 | Added handling for offline mobile attachments using PRFiles and Repositories | Attaching a file on mobile and then immediately clicking on it to open it either did not open the attachment or the attachment opened and then the app stopped working with a "Sync Failed" error. Attachments were not synchronized on the server, and when synchronization was re-tried the attachment was duplicated on attachment list. This was traced to the system being configured to use PRFile API for synchronizing attachments along with Repositories to store attachments; when the processing "commitAttachment" action was processed, it called the Work-.AttachFile activity to finalize attachment upload, but the activity was called without the mandatory attachment InputStream required when using PRFile + Repositories. This has been resolved by ensuring there is a call to Work-.AttachFile with InputStream in cases where PRFiles and Repositories are enabled. | Mobile |
SR-D42437 | 513649 | 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 | 516441 | 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 RD are final. To improve performance, this process has been modified to use a data page at the requestor level instead. | Mobile |
SR-D43808 SR-D50137 |
512662 528824 |
Resolved loop causing search to fail | After upgrade, searching for a case caused node failure. This was traced to a system loop when trying to remove duplicate workpool classes and has been resolved by updating the pyPopulateWorkPoolsAndClassesForTagsSearch activity to remove extra looping on workpool classes in step 3. In addition, a new 'when' rule pyIsTagSearchEnabled has been added: the pySearchWrapper activity will only search tags when this rule is true. | Mobile |
SR-D44012 | 509882 | 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-D50584 | 518450 | Security added to retrieving operator list by URL extension | It was possible to append information to the application URL which allowed an unauthenticated user to find a list of operators. This has been corrected, and will now result in the message "There has been an issue; please consult your system administrator." | Mobile |
SR-D50725 | 516515 | 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 | 516397 | 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 |
SR-D55559 | 520973 | Setting added to allow commas in bulk upload survey questions | Questions uploaded in bulk to Survey Designer were delimited by comma, potentially causing an issue when an option itself contains a comma. Because this is a hard-coded Excel template value, this has been addressed with the addition of an extension where delimiter values can be configured and overridden. | Mobile |
Project Delivery
8.4 Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D36812 | 505502 | Screen sequence clarification added to Purge/Archive Scheduling wizard documentation | The help documentation for the Purge/Archive Scheduling wizard has been updated to clarify the screen sequence in the Scheduling process. | Project Delivery |
Reporting
8.4 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D18879 | 500643 | Logic update made to PrepareColors to resolve calculation ambiguity | When a Report Definition was summarized, the executed report showed a graph for multiple categories but generated the error "No data to display" if given a single category. This was traced to an ambiguity in the Java syntax of the Rule-Utility-Function pzPrepareColors that led to a NegativeArraySizeException on a customer's environment. To resolve this, parentheses have been placed around a ternary operator to ensure the correct order of operations. | Reporting |
SR-D19299 SR-D65937 |
511324 528980 |
Support added for calling Export to Excel directly from RD | 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-D21527 | 491739 | Hidden filters will not be shown on the resulting report | After setting up a Report Definition to be visible in report browser with all filters hidden, editing and saving the report resulted in the filter values being visible on the report. This has been resolved by modifying pzResolveCopyFilters activity so that If the filter view option is "Read only, allow no changes" and "Filter not visible in Viewer", it will skip copying the filter values on to the report definition page. | Reporting |
SR-D22319 | 493660 | Corrected Flex UI Alignment issues in Microsoft Internet Explorer 11 | In Microsoft Internet Explorer 11, a UI rendering issue was observed when Report Definition uses many columns. This was traced to Flex not being fully supported in Microsoft Internet Explorer 11, causing the flexResize function inside pzpega_ui_doc_lifecycle to not perform well when calculating harness width based on content. While there was a workaround of using the flag "pega.u.d.DISABLE_FLEX_RESIZE" to indicate the system should not execute that function, the issue has been resolved by setting table layout to auto. | Reporting |
SR-D22548 | 502077 | Handling added for special characters in Report Category name | When a Report Category was created with a special character such as ' ( , ) (ex "ABC's Reports"), the special character was not correctly shown at the Category Selection in Report Widget of the Dashboard Configuration. This was traced to the category names being sanitized against XSS attacks twice, once by the dropdown itself, and once by the activity pzRBCategoriesPostProcess, which is shared between this dropdown and the report browser. To resolve this, the system will make a simplified copy of pzRBCategoriesPostProcess for the report widget's use case and continue to use that as the post processing activity for D_pzReportWidgetCategories. | Reporting |
SR-D22885 | 494166 | Added check for empty class properties to report scheduler | A report that was looking for events in the most recent X hours by using the "Difference In Hours" filter function ran in the foreground but failed with an exception when running under the scheduler. The same report ran as expected in background without the filter. This was traced to a classname property not being set on the clipboard, and has been resolved by adding a check for empty classes on the clipboard when scheduling a report. | Reporting |
SR-D26815 | 500192 | Updated support for numeric values in text columns during Excel export | After creating a report definition that included currency and percentage as a columns, the currency, percentage, and number format were not shown as expected for the locale when the report was exported to Excel. This was an inadvertent side effect of work performed to resolve issues for text columns formatted by non-numeric controls, and has been resolved by moving the support for numeric values in Text columns from ReportUIField to NumericReportUIField. | Reporting |
SR-D27528 | 501371 | Return from drilldown in frameless portal corrected | Drill up after drilling down on a dashboard chart in a frameless portal (such as Case Worker or Case Default) was throwing an exception. This was caused by the top-level page generated during drilldown not having pyRetainPage set to true, causing it to be removed from the clipboard by doUIAction. This has been resolved by updating runReport to set pyRetainPage if it needs to create the top-level page. | Reporting |
SR-D27622 | 498771 | Export to Excel updated to pass custom time format | When running a report definition the date fields showed the proper date and time, but when exporting to Excel the time showed as the 12:00:00 AM default. Investigation showed that when using edit columns to get the date/time in a specified format and the Data Access tab “Ignore formatting when exporting to excel” option was not enabled, the BasicDateTimeReportUIField class's getFormattedValue method was using the column's reported type to decide whether the clipboard values would be parsed as date+time or date only. This has been resolved by updating the export function. | Reporting |
SR-D27687 | 500054 | Mashup Export to Excel works on first use | If a report was opened from Mashup and exported to Excel, only one record was given regardless of the actual size of the report. If the mashup main page was refreshed, the open and export process worked correctly. This has been corrected by adding a call to pzSetQueryDefaults in pzRDExportWrapper when the requestor is initialized for Mashup. | Reporting |
SR-D30272 SR-D45865 SR-D50569 |
499440 513019 515437 |
Primary page paramter explictly set to resolve fix/edit Scheduled Tasks issue | After upgrade, the top section of report details was getting blanked out when using the Reporting | Components | Scheduled Task to open a report and "update" it to fix issues. This was an unintended side effect of updating the Review harness to display the Perform harness when clicking Update, which was done to correct an earlier issue with UI validations when using the out of the box schedule report functionality. To resolve this, pxScheduleTaskWrapper has been updated to explicitly set the parameter page according to the primary page's values when not in the report browser. | Reporting |
SR-D32222 | 500900 | Auto-generated controls with images supported in export to Excel | When attempting to display a column as an image, changing the column format to "pxCheckbox" showed an image while running the report if the value was true, but blank values were displayed when the report was exported to Excel. Investigation showed that the value was being returned as null when a boolean value was set on a column and the option for the auto control was set to show as an image due to the formatted value being returned as an HTML element instead of a boolean value. To correct this, AutoGenReportUIField has been modified so that auto-generated controls that are shown as images are converted to text upon export to Excel. | Reporting |
SR-D33135 | 502275 | Handling added for newline in a cell exported to Excel | It was reported that new lines (br) were not displayed in exported Excel even after adding the control format with style tag <br style="mso-data-placement:same-cell;" />. This was due to a missed use case when Export to Excel was revised; as a necessity, the new Export to Excel does not support HTML as the old one did, and handling for line breaks in a cell was missed in this implementation. To correct this, wrapping has been enabled on AutoGenReportUIField and NonAutoGenReportUIField and ReportUIUtils.stripHtmlFromValue() has been updated to convert tags to line breaks. | Reporting |
SR-D34655 | 513422 | Deferred load works inside custom row section of RD | 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-D35981 | 506382 | Column formatting default added to Export to Excel to match Export to PDF | After running the pyGetWorkHistory report in Designer Studio, exporting the report to PDF showed the correct data format for the Message Key column while exporting to Excel did not. In the Report Definition UI and in Export to PDF (which use the same logic), when the backing property of a column has no control and the column does not have a format, the control falls back to a "Default" control. The "Default" control localized the string values in the Report Definition UI and Export to PDF, therefore changing the Message Key to be the correct value in those places. The similar logic to explicitly handle the "no control" scenario has now also been added to Export to Excel to resolve this issue. | Reporting |
SR-D36265 | 509608 | 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-D36981 SR-D55289 |
505698 524108 |
FusionCharts upgraded to resolve drill down issues | Drill down reports were not working when the results were displayed with huge data that came up with a scroll bar or if the report was scrolled down and a drill down was attempted when the scroll bar was in the bottom or middle of the scroll line. The hover icon was different i.e., the hand icon was replaced with arrow icon, or sometimes the hand icon displayed without showing the data. The tooltip was also not displaying as expected when hovering on the chart. It was possible to drill down when the scroll bar was in the top or the focus was moved outside the chart and brought back in again. This was traced to bugs in the FusionChart libraries, and has been resolved by upgrading to FusionCharts 3.14.0-sr.1. | Reporting |
SR-D37115 | 515840 | Onclick handler updated to resolve RD 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-D37737 | 509375 | Export to Excel can run in the background when called from the filelistener | When calling the pzRDExportWrapper activity from a filelistener and passing reportRunMode as “background” with a given fileLocation parameter, a popup appeared to save the file in the local directory instead of the expected behavior of saving it to the provided location in the background. Investigation showed that ReportExportHandler.java was not checking for the reportRunMode parameter and instead always exporting to the browser for download and then immediately deleting the file. This has been corrected. | Reporting |
SR-D39291 | 508369 | Alphabetical sort function restored to Legacy Report Browser | When the new report browser was introduced in Pega Platform 8.1 the sorting functionality was changed to sort by update time instead of the previous behavior of sorting alphabetically. This change to the logic behind sorting reports ended up applying not only to the new report browser but to the legacy report browser as well, eliminating the ability to use an alphabetized sort for both. This fix re-adds the functionality to sort reports alphabetically by adding selectable sorting capability to the legacy report browser that enables switching between sorting reports by update time and sorting alphabetically. | Reporting |
SR-D39302 | 507982 | Report name in tab uses localization | After creating a field value with field name as pyCaption to localize the report definition name, the title in the report definition tab was not translated. This was traced to Step 1 of the activity displayReport using an old localization function, and has been resolved by changing the localization of document title to use pyCaption. | Reporting |
SR-D39601 | 509519 | RRDisplaySection made available to assist Edge compatibility | When the Pega Platform was being used with Microsoft Internet Explorer Compatibility Mode ON, it was not possible to use the select filter gadget due to a browser compatibility issue: enabling the filter condition for the report definition caused the SelectValues button to stick in loading mode when clicked. Changing the Microsoft Internet Explorer Document Mode for Harness pzRRDisplaySection to IE=Edge corrected the issue, but the rule was final. To resolve this, the pzRRDisplaySection has been made available to allow override for customers still using IE. | Reporting |
SR-D40599 | 508281 | Handlign added for Japanese half-space character during database query | After creating a Report Definition based on the Unicode/Japanese text property with summary list, the list was visible from Report viewer but any full size space used by the summary filter was unintentionally trimmed to half size space. As a result, the database query could not find the item. This has been resolved by modifying the setGroupByInputs API in the pega_report_summary js file to use the unicode space char(\u0020) instead of \s in regex. The Japanese space character will be replaced in the pzDrillDownReport activity step 2 for the query use, and will be set back to the Japanese space character in pyFilterValue. | Reporting |
SR-D42095 | 516671 | 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-D42138 | 509289 | Fixed white space issues with Previous and Next buttons in multi-page Audit Reports | After upgrade, multiple-page Audit Reports in GOC had too much white space between the end of the numbers and the Next Button, and the Previous Button had too much white space between 'Previous' and the start of the numbers. This was traced to a coding error in the pzbase-browser CSS generation that resulted in a space between "div" and "[node_name="pyGridPaginator"]". This has been fixed. Unused webkit selectors have also been removed. | Reporting |
SR-D42159 | 508941 | 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 database 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-D42403 | 507707 | Additional language options added to Language Wizard dropdown | An enhancement has been added to the “select a language” dropdown in the Language Wizard that extends the available options to include Latin American Spanish (es_XL), Brazilian Portuguese (pt_BR), and Korean (ko_KR). | Reporting |
SR-D43788 | 512544 | 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-D45653 | 515248 | Corrected textarea formatting issue for Excel | The TextAreaWithExpandSmall control was causing incorrect formatting in the generated Excel for a text area due to using "reportMode" with value of "excel" instead of the proper "Excel". This has been corrected. | Reporting |
SR-D46535 | 512848 | 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 | 513078 | "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 | 515340 | 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 | 514047 | 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-D49202 SR-D58552 |
512723 522088 |
Report Definition filter editing shows all values correctly | After launching a report, certain values were not populated on the pop-up when editing the filters or the commas separating the values did not appear. This was traced to the activity pzGetSelectedValues containing an older implementation of column type checking, causing it to report some embedded property references as being of type "Included Page" instead of the type of the ultimate property. This has been resolved by updating step 1 to only use this logic if pyDataType is not set, which should already be set for all filters and columns, and the formatting has been corrected. | Reporting |
SR-D49491 | 515320 | 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-D49667 | 516473 | Filtered By Label read by JAWS in report browser | When using Firefox, any FilteredBy text in the Report Browser was not being read by JAWS. This was traced to Firefox interpreting the filters in the Report Viewer as not having any distinguishing accessibility label, and has been resolved by adding aria roles to the filters in the Report Viewer. | Reporting |
SR-D50787 | 520485 | Excel time values will default to server datetime if operator time zone is null | After upgrade, a scheduled report that contained a column using pxDateTime that was supposed to use EST instead used GMT when run and exported to Excel. This has been resolved with an update that will default to using the time zone of the server If the time zone of the operator is empty or null. | Reporting |
SR-D50819 | 519238 | Eligibility Builder integer sorting revised | In 'Offer' on the Eligibility tab, the Builder was sorting integer properties by the value of the integer as a text string rather than the whole number. Example: 1, 10, 12, 13, 100, 2, 20, 29, 299, 3 instead of the expected 1, 2, 3, 10, 11, 12, 20, etc. This was traced to the system sorting the results using tools.sortPageList() in order to sort by localized (string) value, which is not appropriate for values of any type other than string. To resolve this, the system will skip the manual sort step for numeric columns since the values are appropriately sorted by the database. | Reporting |
SR-D55801 | 524293 | Corrected HTML error generated on export to PDF | After exporting a report to PDF, the PDF could be viewed but repeated instances of the error "<th> missing ‘>’ for end of tag" were logged. This was traced to missing the closing '>' for th in the pzRRDataListHeaderRow HTML rule when "Enable column command menu" is unchecked in ReportViewer options, and has been corrected. | Reporting |
Security
8.4 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D10855 | 485681 | Improved security for DSM Scorecard | Security against remote code execution has been added for the rule Scorecard in DSM. | Security |
SR-D23239 | 499591 | Support added for multi-operator SAML logins | When a SAML user logged in by Single Sign-On (SAML), the system processed the login to portal as a different operator if there was a function on the Attribute field under Operator identification in the SAML authentication service. In this scenario, using an expression for operator provisioning did not work because all SAML login sessions resolved to same first operator due to parseAndEvaluateExpression() in ExpressionHelper.java ignoring new expression arguments if the expression page already existed. To support the use of multiple operator logins in this format, the system has been updated to clone a new expression page for every session and update it with the correct expression arguments. | Security |
SR-D31734 | 515657 | XSS protection added for parameter page properties | An XSS vulnerability was seen with the Edge browser when run on visibility on client check was enabled with dynamic layouts and some properties were accessed from parameter page. Because run on visibility on client check is not required in this scenario, is has been removed and the values will be accessed from the server instead. | Security |
SR-D47685 SR-D69914 |
514647 531739 |
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. | Security |
System Administration
8.4 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-C98068 | 483989 | Installer files updated with class loader conflict resolution assistance | When sending emails with attachments, errors were observed relating to a loader constraint violation indicating that when resolving interface method, the class loader of the current class and the class loader for the method's defining class had different Class objects for the type used in the signature. The resolution for this requires user configuration of the app server, and the following files for the install guide have been updated with the appropriate information: Deployment-guides-dita/install.ditamap Deployment-guides-dita/Content/Topics/app-server-config/creating-jdbc-driver-module-jboss-tsk.dita Deployment-guides-dita/Content/Topics/app-server-config/delegating-javax-activation-to-JRE-loader-tsk.dita |
System Administration |
SR-D11655 | 511426 | JMS Listener modified to ensure connections are closed after encountering an exception | JMS listener logs were detailing exceptConnection leaks with the message " J000100: Closing a connection for you. Please close them yourself". Investigation showed that when the JMSListener is configured for JBOSS, it goes via EngineImpl. However, connections opened during engineimpl.ivokeEngine were prevented from closing if they encountered an exception. To resolve this, the execution of the connection close command has been moved to the finally block. | System Administration |
SR-D13886 | 490616 | CORS error logging improved | In order to facilitate error resolution, logging has been enhanced for CORS denial errors. | System Administration |
SR-D14159 | 493083 | Toggle added for displaying exception stack trace | When text like "%25" was added to the login URL, the full exception stack was displayed on the screen. To resolve this, when the prconfig 'initialization/displayexceptiontraceback' is set to false (default value), the system will render the status.jsp instead of error.jsp and will not populate any sensitive data in the request object. If its set to true, the system will fall back to the old approach which renders error.jsp and emits the stacktrace. | System Administration |
SR-D15503 | 486749 | Added compatibility for UDFs | Using UDFs against the pr_data_admin table was causing an exception when scrolling through the results. Investigation showed that UDFs were not able to read some instances in the database because the blobs were stored in an uncompressed format. This was due to instances generated during installs and upgrades being saved without compression, which was not a problem for the engine but caused errors when using optional added UDFs. In order to improve compatibility, the system has been updated so that system-generated instances during installs and upgrades, which are saved without the full engine, will use Compress.deflate to compress bytes before saving to the database. | System Administration |
SR-D16200 | 494585 | Support added for decimal values in RichTextDisplay HTML | After upgrade, correspondence in Outlook was displayed with an incorrect left alignment and footer images were stuck together. This was caused by a difference in the Richtextdisplay mode, which was previously set to 'literal' and is now richtextdisplay.Issue. To resolve this, an enhancement has been added which supports decimal values for the HTML attributes. | System Administration |
SR-D20423 | 503446 | Improved upgrade handling for tables using classes with property references | After upgrade, some page property values were blank and exposed database columns did not contain the values. Investigation showed that the reference properties did not have context and hence column population was not able to determine their value. To resolve this, instead of doing column population for all the columns, the system will identify classes that have property references and that are being optimized as part of upgrade process and maintain a list of specific columns to update. | System Administration |
SR-D21803 | 502131 | XSS protection added for embedded portal URI | The URI used in the top window of embedded portals has been encoded to prevent DOM based XSS. | System Administration |
SR-D22505 | 493366 | Circumstancing template and definitions assembly modified to avoid calling RD | After deploying a new rollout, errors such as "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY RULE-OBJ-REPORT-DEFINITION" and "You lack access required to execute RULE-OBJ-ACTIVITY RULE-OBJ-REPORT-DEFINITION" appeared. Investigation showed that during an unauthenticated session, executing Report Definitions or accessing database (with securityCheck enabled) are not allowed. When someone wants to use circumstanced rules during the custom authentication process, and if the circumstancing rules are not assembled yet, then assembly of the circumstanced rules triggers the assembly of circumstance template and definitions. During this process the system used Report definition, but since execution of RD is not allowed without authentication the assembly was failing. This has been resolved with two changes: the MergeDefintions activity which is invoked during assembly of CircumstanceTemplate : database.open() has replaced the pxRetrieverReportData activity (which invokes RD to fetch circumstances definitions), and the GetAllDefinitionRows activity which is invoked from MergeDefinitions : database.open has replaced Obj-open in step 3. | System Administration |
SR-D23862 | 503897 | Corrected test connection for LDAP AuthService using keystore | When using a AuthService rule defined for LDAP using ldaps:// and a KeyStore rule that was defined to reference a local file in the server, the Test Connection button on the AuthService rule did not work and generated the following exception: "com.pega.apache.commons.httpclient.contrib.ssl.AuthSSLInitializationError: I/O error reading keystore/truststore file: null". Investigation showed that file reference keystore did not work with an LDAPS test connection because while run time used the LDAPVerifyCredentials activity, the design time validation used the activity “ValidateInfrastructure” which did not have the required code to support file reference keystore. This has been corrected. | System Administration |
SR-D24900 | 503875 | Security update for RequestMap error logging | In HttpAPI, the RequestMap contains Cookie information. In error conditions, this map gets logged. An update has been made to ensure that the Cookie value is not logged if there is an error. | System Administration |
SR-D25607 | 495624 | Added null-pointer exception handling to PegaInstaller | When upgrading, the error "Error: java.lang.NullPointerException [java] at com.pega.pegarules.deploy.internal.exposecols.jobs.ExposeWrapper.runExposer" appeared and the installation would not proceed. Investigation showed that the null-pointer exception occurred because of class name validation not being performed at the right place. As the null-pointer exception occurred in the main class, it initiated thread pool executor shutdown. However, the consumer pool did not shutdown because it did not receive the correct specific producer message fto do so. This has been resolved by ensuring isValidClass is executed at the right place in ExposeWrapper.java to handle the null-pointer exception, and adding handling for the interrupt exception in consumer thread so that in case of any run time exceptions in the main thread, the consumer thread will not be stuck. | System Administration |
SR-D25711 | 502136 | Updated dependent role validation during rule deletion | After checking out and attempting to private-edit the "PegaRULES:WorkMgr4" AR, the rule was still shown as checked out after the edit was discarded. This was a missed use case, as Private checkouts are generally not enabled for most of the customer rulesets. To resolve this, roles in private checkout and branch rulesets will be excluded from going through dependent role validation during rule deletion. | System Administration |
SR-D25972 | 501483 | Handling added for custom error message in post-authentication activity | The error message in post authentication activity was always appearing as 'Login terminated because a post-authentication activity or policy failed' irrespective of the actual message being conditionally set in the activity based on post authentication logic. Investigation showed that the parameter page in the SSO post-authentication activity was not being passed to the 'pzShowAuthPolicyError' activity due to the post-authentication activity executing in authenticated context whereas the HTML fragment executed in the un-authenticated context. In order to support this use, post-authentication activity will set the error message on a predefined property and propagate that to the HTML fragment by appending the error message as a query parameter in the redirect exception URL post-authentication failure. | System Administration |
SR-D27644 | 497614 | Uploaded attachments will receive a unique name to prevent overwriting | An issue with an incorrect file being attached to a work object was traced to overlapping processes. When files are uploaded, they are first saved to common HDD directory and then read into memory and deleted from the HDD area. Files will overwrite other file carrying the same name, which is a problem if the first file is not completely uploaded and is waiting in the common directory and some other file with the same name is uploaded on top of it. To resolve this, an update has been made to ensure file names are appended with a unique identifier to distinguish between files carrying the same names and keep them from overwriting each other. | System Administration |
SR-D28034 | 497839 | Asynchprocessor generation code deprecated from distribution | During a Pega Rules Upgrade of the environment, the error "duplicate key value violates unique constraint "pr_data_admin_pk" was observed. This exception originated from the "Upgrade Context" target while executing a query to fetch the missing ASYNCPROCESSOR requestors for all available system names, and was caused by the system attempting to insert a single ASYNCPROCESSOR requestor more that once in the shared layer. The need to generate missing requestors only applied for installations where a custom system name was provided to the deployment properties (setupDatabase), so by default the asyncprocessor generation code has been removed from the distribution as it is no longer required for upgrades. Default system behavior now is to use system-runtime-context in place of async requestors. | System Administration |
SR-D28083 | 512937 | DeleteOrphanStaticContent CacheConfigID populated on node startup | The pzDeleteOrphanStaticContent activity which triggers to clear cache was unable to clear the files in the static content folder and in the database when the files were more than one week old. In order to correctly cleanup old static content, pzAsmCacheConfigID must be populated in py_sys_statusnodes. However, when SystemNodesDAO was introduced to populate pr_sys_statusnodes, pzAsmCacheConfigID was not populated. To resolve this, pzAsmCacheConfigID is now populated on node startup when node information is added to pr_sys_statusnodes. | System Administration |
SR-D28184 | 497168 | Verbose debug logging removed from LockUtils | Verbose debug logging that had been added to the "LockUtils" class to print when the lock was acquired or released and include the associated stacktrace has now been removed as it interfered with diagnosing locking issues when threads were getting blocked. | System Administration |
SR-D28342 | 504972 | ChatMashup loading issue with IDP resolved | When using a harness containing chat scripts via Mashup that called an activity to set parameters, attempting to launch the Mashup from an external application failed on the first attempt: an incorrect URL was generated and the activity was not triggered, resulting in an empty harness. The second attempt to launch the Mashup worked as expected. This was seen when using an IDP initiated Login with query string - pyActivity= classname.ActivityName, and there was a workaround to use SP initiated login or to use the activity URL directly on the IDP portal. Investigation showed that the resourcePath was coming as http in SSL enabled system, but the reqURI was still https. To correct this, the system has been updated so that if the reqContextURI starts with https and the requestURL starts with http, then the requestURL will be converted to https. | System Administration |
SR-D28460 | 509366 | Added timeout handling for non-PRAuth servlets | After logging in via external authentication service (SAML Single Sign On) and setting up a timeout in the access group RuleForm, when the user performed any action and the server identified the request to be timed-out, it was expected that a SAML request would be sent from the browser to the external Authentication Server (referred as IDP) and the flow would proceed from there. This worked as expected for a non-AJAX request. To resolve this, handling has been added for timeout when using non-PRAuth authentication services. | System Administration |
SR-D28538 | 502058 | Corrected requestor status flag for direct map | Numerous "Unable to create requestor" alerts were logged. This was traced to an error in HttpAPI where after retrieving the requestor from the internal requestor map directly, the requestor creation status flag was not set properly. This caused last action to post that alert instead of the correct notice of "existing requestor retrieved". This has been resolved so the flag reflects the correct status. | System Administration |
SR-D28719 | 505968 | Null archive check added to set import process status | After running a 'prpcServiceUtils.sh import' which failed due to a low-level null pointer error, the job "IMPORTREQUEST-2" then incorrectly showed the status as 'IN PROGRESS' instead of 'FAILED'. In this case, the null-pointer exception occurred because two imports were unintentionally happening at the same time: the process copied up the same set of archives to the service export directory, but the first import processed an archive and deleted it so that the second process failed to find it. When it exited with the null-pointer exception, the status was not set to 'failed'. To resolve this, a null archive check has been added which will set the status to 'failed' if the archive is unsupported, corrupt, or not there at all. | System Administration |
SR-D29127 SR-D41482 |
506864 507884 |
SAML data pages restored after passivation | If login used SAML SSO, resuming the session after passivation resulted in missing or empty data pages when using an SAP integration with Pega Cloud. This was traced to a security change that modified the D_SAMLAssertionDataPage and D_SamlSsoLoginInfo data pages as readonly, causing them to not be passivated under these conditions. To resolve this, the data pages have been made editable so they will be restored as expected. This change also resolves any difficulty with SAML logoff activities in conjunction with SAP and Pega Cloud. | System Administration |
SR-D29485 | 503513 | Enhancement added to modify URL encryption for load testing | An enhancement has been added which allows conditionally modifying URL encryption for load testing. This uses the flag crypto/useportablecipherforurlencryption: if true, a portable hardcoded key is used to encrypt the URLs and if false, a dynamically generated key per thread/requestor is used to encrypt the URL. | System Administration |
SR-D30955 | 499873 | Security updated for access roles | Updates have been made in order to prevent a potential security issue related to browsing access for the Organization and Security: Groups and Roles view in Dev Studio. | System Administration |
SR-D31066 | 502254 | Improved performance for "Show-HTML" in a grid with numerous controls | ‘Show-HTML’ was taking an excessive amount of time to render a UI for grid with a large number of controls. This was traced to the handling for generating and clearing markup creating an exponential growth situation, and has been resolved by modifying the system to remove redundant copies of a string in the markup string buffer. | System Administration |
SR-D31259 | 502024 | Passivation restoration will not continually re-queue on failure | When an operator record was passivated with the Access Groups it had at that time, during restoration it attempted to validate it even if it had been removed. In this case, an Access Group with RuleSets and the Rule-Application to match was created and added to an operator record, then changes were made and the access group was removed from the operator record. The requestor was passivated and saved to the pr_sys_context table, and when the system tried to restore the requestor (the connected browser was left open), it started throwing exceptions because the access group it was trying to use no longer existed. The system continued to retry until a new session was started or the row was deleted from the pr_sys_context and the pr_page_store manually to remove the offending requestor that was now invalid. To resolve this, a layer has been added within the Passivation Daemon to better handle this failure case. NodeRequestorMgt has been updated to catch the PRRuntimeException explicitly and not re-queue activations that fail due to their root cause being an invalid configuration exception. By targeting only PRRuntimeExceptions which wrap InvalidConfigurationExceptions, this will fix this specific issue without impact to other cases. | System Administration |
SR-D33491 SR-D43811 |
511728 511922 |
Code fragment removed to resolve CookieDisabledException | After upgrade, a CookieDisabledException occurred after a post activity was invoked in the single sign-on (SSO) authentication service. This was traced to the site using the deprecated flag "redirectguests" as part of SSO-based login for mashup usecases. This flag was used to check if a cookiedisabled exception was thrown or not, and if there was no cookie, if a requestor was authenticated in first request. However, the flag has been removed as part of work done to omit the Cookie support check on Mobile App UAs. Code that supported the use of this flag remained after that work and led to the exception being generated, but has now been removed as well. | System Administration |
SR-D36004 | 513617 | Check added before OperatorID page in the clipboard is deleted | After configuring an access group with security policies and a one minute timeout, triggering the timeout and then failing authentication before correctly authenticating was resulting in the .operatorID page being deleted from the thread->System pages and the workIDs were listed from all workbaskets in the portal. This has been resolved by adding a check for whether the operator id page is in thread level or not before deleting it. | System Administration |
SR-D37872 | 507342 | prproductmigration build.gradle updated for new mime4j asset name | While running the getMigrationLog for ProductMigration script provided in the Pega 8.2.2 media files, errors appeared referencing "NoClassDefFoundErrors when running getLogs". This was caused by the referenced class not being found on the classpath: the version of the included jar did not include the class needed due to Praxiom's default version being updated to use a new version of mime4j that required an asset name change. To resolve this, the mime4j asset name in prproductmigration build.gradle has been updated to pick up the correct version of the dependency for Praxiom. | System Administration |
SR-D37894 | 505976 | 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-D37980 | 512436 | Data page triggered from SLA reloads per interaction | After configuring an SLA goal activity which takes one parameter from a thread-level data page with 'Reload once per interaction' checked and the source of the datapage was a data transform which used pyWorkPage.pyID to set a property value, goals were not updated as expected. If multiple cases reached their SLA goal at the same time, the first case ID was being sent as a parameter to the goal activity for all of the other case IDs. For example, if case 1, case 2, and case 3 reached their goal at the same time, the case 1 ID was passed as the goal activity parameter to case 2 and case 3. This was traced to multiple items that were getting processed in a single agent run picking up the stale data present in data page because it was not being cleared, and has been resolved by removing the Read-Only data pages after every item that is processed, ensuring that it will be reloaded the next time the data page is triggered. | System Administration |
SR-D38232 | 509856 | Keystore certificate alias updated to support mixed case names | The Java Keystore stored aliases only in lower case letters, but it accepted uppercase letters also during retrieval. This was causing the error "No certificate found in truststore : Azure AD SSOIDPCertStore with Alias : CN=Microsoft Azure Federated SSO Certificate" when the names didn't match. To resolve this, the keystore layer has been modified to support upper case letters in the certificate alias. | System Administration |
SR-D38392 | 510242 | Daemon management agent count now includes startup agents | A mismatch was observed in the agent counts given by daemon management and admin studio, with the daemon management API populating an agent count that was less than the agent count shown in admin studio. This was due to Daemon management considering only running agents excluding startup ( i.e, "Next Run Time" as not null). As startup agents and agents which have thrown exceptions do not hold any value for "Next Run Time", they were not considered. To make this count more consistent, the management Daemon will return the agent count of all running agents including startup agents. | System Administration |
SR-D38522 | 504674 | Timeout error notification regarding waiting for package removed | During long-running deployments, an error message appeared indicating that the system was awaiting completion of the package install. This was not a genuine error, and has been addressed by removing the timeout warning. The system will wait as long as necessary to install an archive. | System Administration |
SR-D38613 | 510004 | Login will not obfuscate data for unauthenticated requestor | If prconfig.xml had URLencryption and SubmitObfuscatedURL enabled, logging off from the application and idling the login screen for 5-10 minutes resulted in an Http 400 error during the next login attempt and the app data had to be manually cleared. This has been resolved by setting the system to not obfuscate data if the requestor is unauthenticated. | System Administration |
SR-D40756 | 508098 | Null check added for missing IDP RelayState | An "ArrayIndexOutOfBounds" exception was showing sporadically when using IDP Initiated SAML Login requests. This was traced to IDP not consistently providing the RelayState parameter to Pega, and the exception has been resolved with the addition of a null check. When the RelayState parameter is empty, the message "Missing Relaystate information in IDP Response" will be shown. | System Administration |
SR-D41454 SR-D58702 |
506536 519242 |
Updated HotFix Manager for use in older versions | The DL logic in Hotfix Manager was changed in 8.3 to include the catalog of all framework changes. This had the unintended side effect of preventing DLs from being installed in Pega 7.3.1 and lower versions as the versions included in the catalog are not present on those systems and the validation failed. This has been resolved by revising the DL update so the system will only add all apps to the catalog for platform 7.4+ DLs. | System Administration |
SR-D41532 | 512003 | Handling added for padding character changes in StatiContent generation | After upgrade, only 3 tenants were accessible in a MultiTenant environment with 52 tenants. A trace showed 500 and 403 errors, and the message "com.pega.pegarules.pub.context.PRSecurityException: Undefined tenant configuration". This was traced to a different padding character used in the StatiContent code that resulted in the tenant URL being encoded and decoded differently, and has been resolved by adding handling for better padding character compatibility. | System Administration |
SR-D41637 | 512269 | Mashup URLs will include thread name for better passivation recovery | Mashup screens were distorted after keeping the screen idle for more than 1 hour and then trying to switch between accounts. Investigation showed that during SSO authentication the relaystate generated without including thread name in the URL, leading to the threadname not being passivated or made available during reactivation. To resolve this, the thread name will now be included in the URL. | System Administration |
SR-D41870 | 507162 | Quiesce strategy setting warning clarified | Startup was failing when an incorrect quiesce strategy value was set in prconfig. In order to clarify the correct setting value, the formatting of the warning logged in this scenario has been updated to indicate the correct settings. | System Administration |
SR-D42602 | 511856 | PRCipher class references updated | After upgrade, starting Tomcat resulted in the error "java.lang.ClassCastException: com.pega.platform.securitycore.encryption.internal.CipherDefault cannot be cast to com.pega.pegarules.exec.external.util.crypto.PRCipher" This was traced to an issue with the references for PRCipher: cipher was moved to be a security-core component, but the class structure changes were not fully updated. This has been corrected. |
System Administration |
SR-D43331 SR-D53838 |
510158 521479 |
Run Ruleset Cleanup defaults to true | After upgrade, the rule categories and rules were not showing correctly in the App view of the Dev Portal. Many warning messages were also logged related to the Decisioning DM Sample application. This was traced to the rules cleanup script not running properly. While there was a workaround of applying the ruleset cleanup scripts manually after removing the queries that reference the pr_engineclasses table, the cleanup will now be set to run by default (run.ruleset.cleanup=true). In addition, the logic to determine which RuleSets to include has been simplified and most of the pr4_rule_vw deletions have been combined. | System Administration |
SR-D43403 | 516528 | Supported localization country codes can be 2 or 3 characters | Attempting to localize the labels on the login screen for an unauthenticated user by using the Google Chrome Browser Settings -> Language worked for browser language Spanish - United States [es] but not for Spanish- Espanol [es_419]. This was traced to the use of LocaleServiceProvider <https://docs.oracle.com/javase/tutorial/i18n/locale/services.html>, a custom-developed plugin for the Java Runtime Environment (JRE) that enables the extension of the JRE's supported locale list beyond what is provided out of the box. Because of this, Google Chrome was using a locale list derived from Java 8's getAvailableLocales which are 3 characters when Pega was internally only using 2 character length country codes. Because the ISO3166 standards indicate country codes can be of 2 or 3 character length, the system has been updated to support this use. | System Administration |
SR-D44041 SR-D51554 SR-D52336 SR-D64090 |
513919 514063 518388 525866 |
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-D44307 | 509001 | Refined dependency checking for Hotfix Manager | The logic in Hotfix Manager was changed in 8.3 to include all Strategic Application hotfixes in the Catalog for platform versions 7.4+. However, because there are some edge cases where multiple hotfixes for different strategic application products have been shipped with the same rule changes, it was found that a DL packaged for one application could pick up hotfixes intended for another app. This prevented the DL from installing on systems where both apps were not installed. To avoid picking up these additional hotfixes, while the catalog shipped in the DL will continue to contain all apps, the system has been updated to use only a list of selected products when generating a catalog for calculating dependencies. | System Administration |
SR-D44834 | 513641 | Concurrent session count updated to avoid false blocks | In multiple scenarios, Operators intermittently received the error "The current session is blocked, as the maximum number of active sessions for the current operator has been reached." Investigation showed that in some cases after the browser is closed and reconnected, there were parallel requests going to the server. While one request was updating a flag in requestor object after the Presence record (Cluster) was updated, the other request was checking the Concurrent session count. Because request 1 had already updated the record in Presence, the system noted the count check as an active session: to correct this, the system has been updated so the current session is excluded from the max sessions reached check. | System Administration |
SR-D45014 | 510895 | Handling added for null pyrulesetversion during upgrade | Attempting to upgrade from v.6 to v.8 failed during the import of RAP files. Investigation showed that there were 4 rows in the pr4_rule_file table which had a pyrulesetversion column of null. The corresponding pzrulesetversionmajor, pzrulesetversionminor, and pzrulesetversionpatch were set to -1 by the oracle_rulesetversion_columns_rules.sql script, but the upgrade was looking at the pyrulesetversion column. After the delete of these rows, the upgrade completed without issue. To resolve this, the system has been updated so that if it comes across an instance and can't determine its Major Version, the instance will be skipped. | System Administration |
SR-D45641 | 518062 | Report Definitions available as Product Rule class filter | An enhancement has been added to support Report Definitions as filters for Product Rule Class instances. The system will continue to support List Views as filters for backwards compatibility, but List Views are deprecated and changing to Report Definitions is encouraged. | System Administration |
SR-D4641 | 501790 | Max node discovery timeout configuration added | When nodes were restarted, a few of the nodes formed a different cluster instead of joining the existing cluster. This was traced to slow start-ups timing out when Hazelcast was trying to cluster. An enhancement has now been added to allow local configuration for max node timeout on discovery. | System Administration |
SR-D46536 | 515794 | 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 | 514434 | 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-D47611 | 513114 | HTTPS login path issue resolved | When using iOS, entering wrong credentials for a login with an https endpoint converted the URL to http. This was traced to a case where the resourcePath was coming as http in SSL enabled system, but the reqURI was still https. To correct this, the system has been updated so that if the reqContextURI starts with https and the requestURL starts with http, then the requestURL will be converted to https. | System Administration |
SR-D48396 SR-D56063 |
520425 528248 |
Hazelcast upgraded to resolve node startup issue | Post data upgrade, the ADM tier failed to start and the error "java.lang.IllegalStateException: Node failed to start!" appeared. This was traced to a dormant bug in Hazelcast 3.11 that caused starting nodes to fail when the Hazelcast master node was shutting down, which was exposed by recent Pega changes made to enable parallel restarts of nodes in Cloud environments. Hazelcast delivered a fix for the parallel restart problem and the hotfixed jar has been merged into the platform. In addition, previous logic for loading Admin Studio waited 30 seconds before timing out when fetching information for each node. This caused issues with large clusters and Admin Studio not loading. The logic has been updated in the Admin Studio UI to load the page despite delays/issues waiting for nodes to respond to the gathering of cluster data, and the algorithm to detect remote-call timeout has been updated and is applicable to batch operation. | System Administration |
SR-D48433 | 529857 | Exception handling added for Redirect URL fetched from GRS | When the application definition under “integration and security" tab was configured to use "Store in web storage provider" to allow choosing the storage name and the authentication profile, configuring the authentication profile to use an OpenID connect provider with the pyEndpointURL property given as a global resource setting such as (=D_SharepointDetails.url) was not working as expected. Clicking browse in the application definition sent the request to the OpenID connect provider and was returned with the error "The reference =D_SharepointDetails.url is not valid. Reason: Page name (D_SharepointDetails) from indirect reference was not found." This was traced to the Redirect URL (fetched from GRS) throwing an unhandled exception, and has been resolved. | System Administration |
SR-D48762 | 518299 | Enhancement added to support DB2 CREATE OR REPLACE view syntax | After creating the product, attempting to import it on another environment failed due to incompatibilities with the syntax. In SQLGeneratorDb2.getViewSourceStatement(), when the View definition is fetched there is a check whether the view starts with "CREATE VIEW". Since the customer view of "CREATE OR REPLACE" was not supported in Db2LUW, it didn't match and appended the "CREATE VIEW" statement again. This happened only when using DB2, and has been resolved by updating the logic in SQLGeneratorDb2.getViewSourceStatement() to support CREATE OR REPLACE VIEW statements. |
System Administration |
SR-D50057 | 521980 | Added null check when updating OperatorID activity after passivation | An issue with operators being able to see work outside of their own authorization was traced to an underlying issue with how the sessions were passivated after either inactivity for a long time or closing the browser directly without logging off. Investigation showed the conditions resulted in a null pointer for the operatorpage in the basic flow, and this has been resolved by adding a null check prior to copying the primary page data to the operator ID page as part of updating the operatorID activity. | System Administration |
SR-D50471 | 517260 | Requestor information restricted to improve security | An intermittent issue was seen where User1 would log in and User2 would then log in and see the data/profile of User1. This was traced to an exception in the session logic which prevented the previous requestor ID from being cleared, causing it to then be mapped to the second user. To correct this, WebStandardImpl has been updated to restrict the requestor information in the session object and in the HTTP API while retrieving the requestor. | System Administration |
SR-D50539 | 521150 | Database locking improved for login performance | A slowness issue seen when trying to login to my.pega.com was traced to numerous database locks occurring on the pr_data_saml_authreqcontext table during the SAML flow. Analysis showed that while running Obj-Save on AuthRequestContext with 'OnlyIfNew' as false, the check caused a select query to run on the table to determine if the context was already there and insert it if it was not. To resolve this, the onlyIfNew check will default to true to avoid running the query; if the context is already present it will be overridden. Duplicate key exception handling has also been added to avoid any issues if a resave is done with same key. | System Administration |
SR-D51324 | 523435 | Authentication state refreshed after failure in mobile | When using the mobile app, if the log in was started and incorrect credentials or empty fields were submitted and then the credentials screen was X-ed out or canceled, attempting to log in again using the correct information still received the "Authentication failed" error. A subsequent attempt with the correct credentials would then work. This was traced to the server persisting the state from the first request (per browser session), and has been resolved. | System Administration |
SR-D52037 | 519479 | Added compatibility for generated SQL to be imported to MSSQL from DB2 Z/OS | After creating an application jar which has schema changes on DB2 Z/OS, attempting to import the jar in a different environment that used an MSSQL database failed to execute the schema changes /SQL statements and reported syntax errors. Investigation showed that MSSQL wraps usernames in [square brackets] in GRANT statements generated by import, and support for this has now been added. | System Administration |
SR-D52142 | 517586 | pzinskey LIKE clause removed and agent adde clean stale pr_data_token data | In order to improve performance, an agent has been added to clean up expired accessToken data in pr_data_token and the 'where' clause pzinskey LIKE has been removed and replaced with native SQL to support queries in all databases. | System Administration |
SR-D52785 SR-D52785 SR-D55449 |
518410 518651 523503 |
XSS protection added to layout runtime java and whitelist validation available for host/XFHost | In order to protect against XSS issues, filtering has been added to the RepeatDynamicIndex parameter value in layout runtime java. In addition, a validation for X-Forward-Host value has been added which will be read from a local configuration. This is in the form of a white list regex filter for the host/XFHost header to ensure the URL's actions cannot be redirected. | System Administration |
SR-D52969 | 514704 | 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-D54319 | 532529 | API added to sync presence with requestor to clear inactive operator sessions | An intermittent error message was seen indicating the maximum number of active sessions for the current operator had been reached even though there were not multiple logins and there was no requestor displayed in the requestor management landing page. This was traced to sessions that were not properly closed and cleared, and has been resolved by exposing an API that will sync the presence record with the requestor state so inactive sessions will be cleared. | System Administration |
SR-D54628 | 524568 | jFreeChart upgraded | Chart generation activities have been updated to use JFreeChart v1.0.19. | System Administration |
SR-D55160 | 520357 | Namibia and Botswana added to Currency Symbol values | Support has been added for the Namibia (en_NA) and Botswana (en_BW) locales in the default Currency Symbol values. | System Administration |
SR-D55508 | 521862 | CSRF and Fingerprint token handling added to custom URL generation | An error screen appeared with the message "Server response error, no update data returned" while doing a check out and check in of the offer rule. This was traced to CSRF token validation: in this scenario, a custom URL was being framed and the corresponding request did not have a valid CSRF/ Fingerprint token, which can occur when there are custom AJAX/Non-ajax URLs constructed manually in the non-autogenerated/HTML streams. To address this, handling has been added for CSRF and fingerprint tokens as part of the custom URL generation. | System Administration |
SR-D56409 | 520743 | URL Encryption and Obfuscation made compatible with site-minder | Attempting to install a DL using Hfix Manager worked when not going through SSO but failed when using SSO. Investigation showed that this was due to the use of URLEncryption: URLEncryption uses a Pega-supplied base64 to encode the cipher text with MIME type encoding by default, which adds newline character after every 72 characters. This is not compatible with site-minder. which has policies to restrict newline characters in the URL. As a result, none of the encrypted requests were being processed. To resolve this, post-processing logic has been added to remove newline characters from encoded text. This change has also been applied top URLObfuscation. |
System Administration |
SR-D62949 | 527502 | XSS protection added | The CrossScriptingFilter API has been applied to address a potential XSS issue related to stream rule parameters used in the request header. | System Administration |
SR-D63232 | 524295 | Support added for Authentication service rule attributes in embedded pages | SSO login was not working, giving the error "Unable to process the SAML WebSSO request : No value specified for Attribute in SAML assertion". Investigation showed the Authentication service rule could only map attributes that are on the top level page and did not consider embedded page values. To resolve this, tools.getProperty will be used to fetch the property reference value instead of find Page and getString. | System Administration |
SR-D63727 SR-D71378 |
531726 533282 |
Authorization header base 64 format error recategorized as debug logging | Numerous messages were generated indicating that the Authorization Header format was invalid when using the format " : " (Base64 Og==) . As this is the default behavior for a particular class of proxy servers, the error statement has been updated to be logged as a debug statement and will be visible only when that logging is enabled. | System Administration |
User Experience
8.4 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-C80200 SR-D56490 |
494451 518806 |
Resolved Sporadic ControlBuild error in sections | After upgrade, a sporadic error was seen with sections of a VTable after a server restart where a portion would not load and the error "com.pegarules.generated.html_property.ra_stream_pxtextinput_1786000787_default incompatible with com.pega.pegarules.pub.runtime.ControlBuilder" was seen. This issue was traced to invalid generation of an assembly parameter map for random sections the first time the table was called after restart. To resolve this, the system will now allow assembly parameter generation for a second time when they are empty, and the assembly parameters preparation will be handled as a synchronous process. | User Experience |
SR-D15798 SR-D64694 |
510558 533963 |
Check added for Turkish locale in Firefox | When using Firefox in the Turkish locale, attempting to open worklist subsets or edit tables in a modal dialogue caused the browser to hang. This was traced to the character conversion process in the browser and has been resolved with the addition of a check. | User Experience |
SR-D15844 | 496778 | Flag set for using defer load context switching with IE | Defer load section was not working as expected due to Microsoft Internet Explorer 11 not maintaining the context of the section during busyIndicator hide. To avoid this, a flag 'pega.ctxmgr.skipContextSwitching' will be set during the hide of busy indicator if Microsoft Internet Explorer is used, and the harness switching context will then be decided based on this flag. | User Experience |
SR-D16624 | 512128 | Table layout filter popover position corrected for Pega mashup | When using an exposed harness with table layout using Pega web mash up, the mash up worked but the apply and cancel buttons were not visible when any column was clicked to filter the result. This was traced to the filter popup having a hardcoded position offset set in its div element, and has been resolved by delegating the responsibility of the filter popover height calculation to the popover. | User Experience |
SR-D17568 | 498412 | Handling added for interaction portal refresh containing many data parameters | Attempting to refresh the browser when there were interactions opened in the Interaction portal and a huge amount of data on the parameter page caused the screen to blank and the interaction content was not displayed. Investigation showed that as part of the refresh, the displayOnPage GET request was sent with all of the parameters in the parameter page (data-model), resulting in a 400 Bad Request due to the browser URL length limitations. This has been resolved by removing the parameters which are not actually required for the displayOnPage GET call during the refresh case. | User Experience |
SR-D17919 | 491582 | Corrected thread switching when moving between interactions tabs | When using Create New for a Phone Call-Consumer in one tab and Create New for an Outbound Phone Call on another tab, the thread was not changing when switching between the tabs of the interactions. Closing the Outbound call interaction resulted in null pages on the clipboard. This has been resolved by updating the pzpega_ui_doc_tabsupport file so it switches to root document context if called from onActivate function using a flag. | User Experience |
SR-D18200 | 492100 | Whitelist security added to getDataPage API | In order to secure data pages that may be exposed through using Global Resource Settings with the pega.api.ui.actions.getDataPage API, logic has been added to expose only mentioned data pages from the clipboard through pyPublicDataPageWhiteList. | User Experience |
SR-D18853 | 503276 | Visibility on client check removed to enable Pulse on click | When Pulse was configured on click of a icon, the comment section was not visible. Investigation showed that at the time of DOM load, pyMessage property was not available in the DOM because 'Run visibility condition on client' was checked by default. Visibility on client checks have been removed to resolve this issue. | User Experience |
SR-D18960 | 499912 | Logic updated to resolve busy indicator delay | On click of submit in the main interaction flow, the busy indicator was not getting displayed or was displayed after a delay whenever there were a series of Ajax requests being made. The logic has been updated to resolve this issue. | User Experience |
SR-D19083 | 508092 | Autocomplete list resets to top of scroll if selected data is deleted from the control | If an autocomplete on Screen did not initially have any input, pressing the down arrow showed the popover data with the scrollbar on the top. Scrolling down and selecting an item from the autocomplete suggestions and then tabbing out closed the popover. If the data was then deleted from the control and the down arrow was pressed again, the popover suggestion showed the data in the last scrolled position instead of restarting from the top as expected. Investigation showed that when autocomplete used a list configuration, the popover div was not being updated if the data was deleted from the control. This has been corrected. | User Experience |
SR-D19177 | 492341 | Mashup refined to not trigger resize from popup | The parent window was being refreshed when an action was performed on the child window or the child window was resized from the mashup script. This has been resolved by altering the logic to avoid triggering resize from popups in a mashup scenario. | User Experience |
SR-D19801 | 495841 | Corrected embedded section inside dynamic layout group becoming readonly | When using a nested sections structure in a Dynamic Layout Group (tab), the fields inside the layout group were becoming readonly. This has been resolved by ensuring the controls present in second-level nesting onwards obey section read-only value in a dynamic layout group, and resolving the 'when' rule that governs the disabledwhen of link for all sections in a section include. | User Experience |
SR-D21332 | 494519 | Handling added for exceptions related to Microsoft Internet Explorer 11 grid cleanup | Numerous exceptions generated from Microsoft Internet Explorer 11 related to pzPega_ui_grid were traced to a browser difference in timing logic related to grid cleanup. This has been resolved by adding a check to determine whether the grid is inside a defer-loaded section. | User Experience |
SR-D22219 | 491446 | Dropdown UI CSS corrected | An issue with incorrect generation of the Dropdown UI CSS has been resolved by directing the Preflight Crawler to the field holding the CSS Format. | User Experience |
SR-D22225 SR-D43551 |
504357 511241 |
Added handling for iPad special characters in any key event | When using an iPAD, there were 5 characters that were not caught when typed by the anykey event on a text control that was supposed to take only numeric data. The control worked as expected on iPhone. Investigation showed that the Keycode is 0 in the event object for some special characters with the iPad, and this has been resolved by using key instead of depending on keycode for those special characters. | User Experience |
SR-D2272 | 486163 | RDL updated to ensure unique ID generation | An Android hybrid mobile app was showing data on the UI which did not match with the data available in pyWorkPage. This was traced to the use of timestamps for ID generation, and has been resolved by updating RepeatingDynamicLayoutAssembly Java to ensure unique ID generation. | User Experience |
SR-D23036 | 500574 | XSS protection added to paragraph rules | XSS filtering has been added for property references in paragraph rules. | User Experience |
SR-D23164 | 493797 | Edit icon removed from deprecated custom skin styling | Using custom styles as skin component is a deprecated feature as of Pega Platform v8.2. While existing styles will still be added to the CSS file when upgrading to or beyond this version, adding or updating custom skin styles is now handled through manual CSS files included in the skin. As part of this change, the edit icon for changing custom styles has been removed. | User Experience |
SR-D23174 | 499570 | Check logic added for change in datetime | After selecting a valid date in the calendar UI, clicking outside of the DateTime control caused the date to disappear when using the Microsoft Internet Explorer browser. Investigation showed that the order of events execution is different in Microsoft Internet Explorer and Google Chrome, so that by the time the getReadOnlyFormatting method was called, the data-changed attribute had already been updated to 'false'. This caused the read-only formatting to not be applied so the data-display-value was considered to be empty. To resolve this, a check has been added to better detect the change so that read-only formatting gets applied. | User Experience |
SR-D23340 | 497608 | Calendar begins with Saturday in the Arabic locale | When using the Arabic locale, the week was not starting on Saturday as expected, but was showing Thursday as the first day. This has been corrected. | User Experience |
SR-D23417 SR-D50069 |
493544 514342 |
Image Attachment File Type error localized | Localization has been added to the error message generated when an unsupported image is uploaded while in live-chat. | User Experience |
SR-D24083 | 498489 | Guardrail warning removed for setting filter by format on RD sourced grid | After upgrade, use of the 'filter by format' (Configuration on table layout column) for grids sourced with report definition caused confusion in that the option now exists to either to see the value or the formatted value in the filter panel. Previously, a grid layout would show a date format in both the column of a grid and the filter of that column, but the filter changes produced a date format on the column within the grid but the date time format applied on filter of the column. This behavior change will be reflected in updated documentation. In addition, there is a workaround to recreate the old behavior by changing the column 'Date assigned' from a filter by value to format, but a moderate guardrail warning was created when filter by format was set on any column of a grid sourced to a report definition. This has been removed: when filter by format is selected, no guardrail warning will be displayed in design time. | User Experience |
SR-D24318 | 494060 | Dom API updated to resolve Microsoft Internet Explorer 11 not loading async data with refresh when calling an activity | The browser was continuously showing "loading" if Microsoft Internet Explorer 11 was used for a section which was sourced from a data page and configured to load the data asynchronously from a external service while calling an activity and using a 'refresh when' rule to refresh the section if a property changed. Investigation showed that the initial data load was successful and the section with the data was visible, but if the property changed and the section loaded once again due to the 'refresh when' condition, the browser was unable to render the defer loaded section case because the dom returned had the wrong value. To resolve this, the API used to check for the dom element has been updated. | User Experience |
SR-D24682 | 501080 | Added check for undefined targetTD in repeating tab layout | Given a repeating tab layout and a validation on the flow action which used edit validate, clicking on the next button set an error on the page. Putting in the correct data and clicking the next/submit button a second time resulted in a console error indicating the targetTD was undefined for the markSectionTabErrors function in pzpega_ui_doc_tabsupport. This has been resolved by adding a check for the undefined targetTD. | User Experience |
SR-D25012 | 499854 | Column filtering updated to better handle merged columns | When filters were applied to a grid containing merged columns, the columns next to the merged columns did not have the filter class applied. This was traced to a calculation of the index in getFilteredColumnIndex function which did not consider the merge columns use case, and the uigrid js file has been updated to correct this issue. | User Experience |
SR-D25177 | 500615 | Filter popover positioning consistent for iPad | Filter popover positioning was not consistent on iPad when "Enable support for responsive breakpoints" was disabled for the grid format. To resolve this, scrolled has been set to 'true' in the scroll event, and if client.left is 0 the system will use flippedX for left*/. Please note that making this appearance consistent may cause some repaint slowness in the iPad Safari browser due to a known CSS transition events issue with the browser. | User Experience |
SR-D25251 | 493800 | Added support for non-auto DisplayYesNo control | A Change event on post value and refresh was not firing as expected in a section configured with a TrueFalse type property associated with a DisplayYesNo control. The same configuration worked correctly when used with a pxRadioButtons control. This was traced to non-auto control action JSON not generating on the second radio button(No) , and support has been added for this. | User Experience |
SR-D26101 | 495208 | Improved DX API page reference handling | When using a property that was being referred through a secondary page that could be referred directly by the case (such as .AccountClosureDetails.ClosingAccountApplicant), the page was not initialized and the local list values were not returned by the DX API. This has been resolved by improving the handling for embedded page references via section include where the property reference is a full path. | User Experience |
SR-D26244 | 501193 | Label control XSS protection added | XSS protection has been added to label control. | User Experience |
SR-D26784 | 507136 | Check added to ensure client side validation checkbox is honored in Case Worker portal | When the "Enable client side validation" checkbox on the Perform harness was unchecked, the validation was still firing when using a tab out on the Case Worker portal. The validation did not fire on tab out in the Case Manager portal, and both portals worked as expected on Submit. This was traced to the validation being fired without checking the value of the bClientValidation property. To resolve this, a check has been added to ensure the validation is fired only when it is set to true. | User Experience |
SR-D27338 SR-D54068 |
496638 518161 |
Calendar edit properly disabled when set to no text entry | Clicking the input box of a date control used as Date+calendar popped up the calendar even when the calendar control was disabled and "Allow text entry" was set to No. If "Allow text entry" was set to yes, the entire calendar was disabled. To resolve this, the system has been updated to disable calendar control when 'Allow text entry' is selected to No in the presentation tab. | User Experience |
SR-D27776 | 497007 | Added support for Thai solar calendar | Support for the Thai solar calendar has been added to the DateTime control. | User Experience |
SR-D28060 | 505638 | XSS protection added to Pega App Studio Spaces | Ajax Request's callback success method has a mechanism to process the response object's HTML responseText, initiate and modify the changeTracker changes, and eventually call renderUI to render the DOM. However, the response object sometimes may return a different type (JSON) that may expose XSS vulnerabilities. To improve security for the Pega App Studio, the system will process the Ajax request's response text only if the response date type is not JSON by accepting a flag in the callback object passed by the caller. | User Experience |
SR-D28469 SR-D28476 SR-D28480 SR-D28496 |
499090 500888 499086 499082 |
Corrected exceptions report appearing on user screen | When "Break on all exceptions" was enabled, the exceptions report was visible on the end user screen when using Microsoft Internet Explorer 11. This has been resolved with updates to the 'pzpega_ui_dynamiccontainer' and 'pzpega_ui_doc_tabsupport.js' files. | User Experience |
SR-D28657 | 500586 | Corrected Reference value's description in Table | When a user was given 'property for value' as an ID and 'property for display text' like a name, launching the portal showed the display text correctly until 'refresh' was clicked, at which time the current section showed the property value instead of the property text. Investigation showed that the parameter string split inside the parameterised data page used as a dropdown source failed in the readonly case. This has been corrected. | User Experience |
SR-D28859 | 502006 | Declare expressions validation message persists when clicked | After configuring a section with fields and validation through validate rule where some of the field properties were sourced in declare expressions, clicking on the validation message caused it to disappear. Investigation showed that when validations are displayed on the screen, clicking on any of the fields which have calculatexpression as validationtype triggers a check for errors on the field with caluclateexpression validationtype. As there were no errors, the existing validation message on the field was removed. To resolve this, the system has been updated so that If the calculate expression does not have any error and the field has existing validations, the removal of validation message will be skipped. | User Experience |
SR-D28869 | 499317 | Resolved Tooltip not relaunching after hide when using autocomplete controls | When a tooltip was configured with SmartInfo and 'Auto-dismiss on hover away' was not checked, the tooltip disappeared when an autocomplete control was clicked and could not be reopened afterwards. The tooltip behaved as expected when it used input text control. This behavior was traced to autocomplete controls being set to hide all other active popovers because autocomplete results are displayed in a popover and only one active popover can exist on the DOM. However, it was seen that the tooltip's Smartinfo popover status was still active even though it was hidden, which is why it could not be launched again. To resolve this, when an autocomplete control is clicked, any active popovers being hidden will also be marked as inactive. | User Experience |
SR-D29517 | 513174 | OpenURLWindow works after click on MailTo | After configuring an openURLWindow action for a link in a modal dialog, clicking on any email ID link and then clicking the openURLwindow action did not launch the URL as expected. This has been corrected by stopping the unload event in dom when clicking on a MailTo. | User Experience |
SR-D29809 | 505257 | Extra <p> tag removed when not needed in RTE generation | The RTE was generating an extra <p> tag in the Review harness or when the RTE was non-editable, causing alignment issues in the UI when RTE was displayed using inline dynamic layout with a textarea. This has been corrected. | User Experience |
SR-D29918 | 503067 | 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-D29926 SR-D33329 |
501408 502012 |
FormatType reset added to ensure accurate DateTimes | Read-only Date Time fields in the Case Information screen were displaying just the Date in Review Harness mode but displaying Date and Time properly in perform mode of the case. This was traced to a scenario where if any section which had only a date property was rendered in non-template, then 'pyFormatType' was being set as 'date' in tools and not reset afterwards. That meant any datetime type property rendered after this date property was rendered without a timestamp. This has been corrected. | User Experience |
SR-D30215 SR-D65917 |
503684 528109 |
XSS protection added to ClientDynamicData | Cross-site scripting protection has been added to the "DesignViewIframe" & "pzHarnessID" parameters in the pzClientDynamicData HTML rule. | User Experience |
SR-D30944 | 503233 | Corrected pagination alignment in tabbed layout sourced from RD | Pagination numbers were not being presented inline with the next/back arrows when using a tabbed table layout with source:report definition. To resolve this, the pyGridPaginator function has been added to Pega-Gadgets in Work- . | User Experience |
SR-D31336 | 501287 | Dropdowncontrol shows correct value in read-only mode | The dropdown control was not showing the correct value in read-only mode when the standard value of one option was the same as the prompt value of another. Investigation showed that in read-only mode, the loop to fetch the selected value from the datapage results was not stopping when it found an exact match. This has been resolved with the addition of a break statement. | User Experience |
SR-D31344 | 503070 | Stale div classes are removed on refresh of section | When a section had a navigation rule and a button configured in the same section with 'Refresh - Section' in its action set, each click of the button (i.e on each refresh of the section) added an additional row of <div class="menu-panel-wrapper">. This was traced to the sub-menus div not getting removed on every refresh, and has been resolved by explicitly removing the stale div. | User Experience |
SR-D31599 | 503199 | Table layout filter by format works for empty value | If a DateTime property with empty values in a table layout grid was filtered by format, no result was returned even though the grid had the Records for empty DateTime property. This was traced to null value filtering being done with empty values instead of a formatted null value, a difference that could produce different results depending on the control. To resolve this, the activity has been updated to support null values filtering. | User Experience |
SR-D31702 | 505057 | Added constraints to RTE resize | When using Microsoft Internet Explorer 11 with a column layout with main (using RTE) and a side bar (with a text input), dragging the RTE box towards the right side from the bottom right hand corner caused it to expand and overwrite the contents of the side bar. This occurred irrespective of whether the column layout was placed in a dynamic layout or standalone. Investigation found that this was caused by there not being any restriction on the resize of RTE, which allowed it to expand beyond limit. This has been corrected. | User Experience |
SR-D32086 | 500895 | Memory leak repaired | A server side memory leak was traced to heap utilization increasing due to a Stream control assembly problem where the CleanForReuse() function was not cleaning up pzAuto. The cleanForReuse method in generated HTML properties is used to either initialize local fields, in which case aContext will be non-null, or to clear the object for pooling, in which case aContext will be null. Because the pzAuto variable was not being properly nullified, pooled controls were retaining stale references to StreamTools, LayoutRuntime, PRThread, and others. This has been resolved by adding code to ensure the pzAuto variable is correctly nullified, and additional work has been done to improve memory management. | User Experience |
SR-D32507 | 507846 | GenerateCellContent updated to properly set active context | An issue with adding and deleting items in existing rows in a repeating grid layout was traced to the Base_ref being wrongly stamped on a section included cell. This was caused by a grid in previous cell causing the active context to be updated to the cell's grid source context, and has been resolved by updating the generatecellcontent Rule-Utility-Function to set the active context properly in generation. | User Experience |
SR-D32525 | 505468 | Dirty check added to offer save/discard changes when closing tab | With the out-of-the-box section enabled, performing a change in the form (changing a text value, selecting a option in a dropdown, etc.) and closing the case generated an unexpected alert indicating that the case was changed and the modifications were lost. This differs from the previous behavior of showing the section pyDirtyCheckConfirm which offered the opportunity to save the work. This was a missed use case and has been resolved by updating the system to perform a check for the dirty state when closing the interaction and show a modal dialog asking the user to choose either save/discard if dirty. | User Experience |
SR-D32528 | 502218 | 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-D32637 | 504120 | Added minification for out-of-the-box javascript files | Several out-of-the-box javascript files were not being compacted/minified as expected. This has been resolved. | User Experience |
SR-D32698 | 502739 | Updated optimistic locking save to resolve exception | When using Optimistic Locking, if the same work object was updated in another session in the middle of screenflow, the "save" button threw an exception on the screen and displayed the Review harness. This was traced to a change in the save API related to improved security, and has been corrected. | User Experience |
SR-D33008 | 505865 | Added handling for 'Safari version is not a number' error on mobile | When using a browser on mobile, the error "Safari version is not a number" appeared intermittently in the logs. This was traced to the code "Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1" returning the wrong value for the above user agent string because "Mobile/" was present in between Version/ and Safari/. This has been resolved by updating the BrowserUtilsRuntime.java file to handle these cases. | User Experience |
SR-D33096 SR-D35618 |
502742 504689 |
pzGetURLHashes returns proper content-type | When using an environment set with X-Content-Type-Options:nosniff, the response from pzGetURLHashes was returned with text/html response type and the mashup would not load due to browser exception "MIME Type ('text/html')is not excutable, and strict MIME type checking is enabled." In order to support CORB mitigation in the browser, the javascript content type will be set in the response header for pzGetURLHashes call. | User Experience |
SR-D33421 | 501115 | DX API - Field values for placeholder text localized | While using DX API, it was observed that if a field value was used for displaying placeholder text, the field value rule was not resolved. Instead, the name of the field value rule was passed in JSON as text and not the actual value. This has been corrected by adding pyNoSelectionText to specifically localize the placeholder text for dropdown. | User Experience |
SR-D33445 | 505995 | Handling added for context switching with Ajax container in Timeline | When using Interaction Portal -> Overview -> Timeline and opening a case that uses an AjaxContainer, clicking on an icon in the Timeline without having first clicked anywhere in the document was generating an exception. If there was a click in the document body first, clicking on the icon worked as expected. This has been resolved by adding a parameter to registerContextSwitching method to handle customeDOMEvents along with a condition to check if pega.u.d.isAjaxContinerExists is a function, which will register the Context if 'true'. | User Experience |
SR-D33966 | 504608 | Corrected accessibility error after resize | From within a Case and on a screen displaying the Information and Audit tabs in a Layout group, it was possible to use a series of sequences that included resizing the browser and opening Audit to cause the information tab to no longer be accessible. This has been resolved by setting the transform value to 0 after completing the resize. | User Experience |
SR-D34824 SR-D45360 |
508211 510100 |
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-D35266 | 509482 | Check added to postOpenAssignment to support Ajax Container use | After configuring an 'OpenAssignment' action on a begin button and giving the target as 'Dynamic Container', it worked as expected to open the assignment in a new tab on the Platform, but did not work from the Customer Service interaction portal. This was traced to the Customer Service portal using MicroDC to display the cases in the work area, which was not within the scope of the Ajax Container. Additional checks have now been added to the postOpenAssignment function to support this use. | User Experience |
SR-D35268 | 506686 | Max results limit increased for open-rule-advanced query | An issue with the results list of a class instance query being clipped in the autocomplete drop down was traced to an old limit that was put on to restrict the number of results shown in open-rule-advanced. This limit has now been increased in the open-rule-advanced control. | User Experience |
SR-D35842 | 505709 | Checks added for empty/missing properties during rule restoration | After making a change to the harness and checking it in, restoring an old version of the harness from history resulted in the old version of the rule displaying a missing or corrupted button area. The was caused by the rules revision history not keeping empty / default properties in the DB, so when the rule is restored those properties were not populated in the resulting XML. To resolve this, empty checks and default values have been added for any non-existent properties in pzpega_ud_gridlayout_model JS and pzpega_ud_gridlayout_structure JS. | User Experience |
SR-D35955 | 525239 | Special character removed from filename of RTE uploaded into PDF | An Image uploaded from RTE was not displayed in PDF if the image name had special characters. This has been resolved by setting the system to remove '%' from file names uploaded into RTE. | User Experience |
SR-D35956 | 521643 | Handling enhanced for invalid date values in date/time | Refreshing a section or entering an invalid date was causing the date/time to be reset to the current date. This has been resolved by modifying the logic and adding conditional checks in 'pzpega_ui_formatDateTime.js'. | User Experience |
SR-D36091 SR-D45251 SR-D65086 |
505614 523817 526597 |
Harness context will be stored to handle on click executed outside of the Ajax Container | An exception was generated in the interaction portal on execution of a post-value action for the on-change event on a text-box in the service case: "Failed to find instance Work-Interaction-Research.EmailBodyRTE of type Rule-HTML-Section". This was traced to a condition where clicking outside of the Ajax Container context to trigger the change caused the Events code to execute the event in the active context when the active context had already been changed by clicking outside of the AC. To avoid this, the system will store the harness context in the event object using pega.ctxmgr.getContextByTarget(target) API. Additional changes were also made to handle the context switching in case of post value when the blur triggers a change in context. | User Experience |
SR-D36120 SR-D40617 |
506275 507566 |
Escape added to Radio button field value to handle HTML tags | A radio button with a field label to display a help icon and to open the help URL when the icon was clicked did not display as intended. Changing the control to text area produced the desired results. This was traced to the radio button's label being assigned to a field value which returned a string that at some points contained HTML tags, and has been resolved by escaping the pyLabelFor value before assigning it to the aria-label attribute of the radio button's div tag. | User Experience |
SR-D36176 SR-D40055 |
508407 507422 |
Work List loads as expected in IE | After upgrade, the Work List was not loading in IE. This was an unintended side effect of work done to handle resizing the Recents list when another tab was open, and that change has been reverted to resolve this issue. | User Experience |
SR-D36335 | 504334 | Post Value action properly displayed in upper case after validation | After upgrade, if a property with Edit Input toUppercase was created and placed it on a section where the text input has Post Value on Change, validating the uppercased property on the clipboard resulted in the non-uppercase value displaying on the screen. This was traced to the target element with the response value not being updated with the server response for the post value action. Only the attribute value was updated, which is not shown to the user. In order to properly display the value, logic has been added to update the target element value with the response value. | User Experience |
SR-D36970 | 504986 | Calendar icon updated to properly display the set number of years | By default, the Calendar icon showed a date range of 10 years when -/+100 was expected. This issue was traced to the existing DSS setting (pyNumberofYears under Pega-UIEngine), which enables overriding the date year range, not being honored when the pyNoOfYears property was set to -1. To honor the pyNumberofYears setting, pyNoOfYears should be 21. This has been corrected so the value will be set properly. To see custom calendar range, attached snippet should be added to UserWorkForm. To see custom calendar range, the below snippet should be added to UserWorkForm: <script> pega.u.d.overrideCalendarDefaultRange = { past: 20, future: 20 } </script> |
User Experience |
SR-D37290 | 506285 | Null check added to ensure value "yyyyMMdd" displays correctly in DateTime Input | An issue where the input value "yyyyMMdd" was not displayed correctly in a DateTime input field was traced to moment.calendar returning invalid formatting when executed on a null property. To resolve this, a check has been added to assess whether the datetimeframe has any properties or not. | User Experience |
SR-D37326 | 504936 | Resolved clipboard formatting issue in Reply Thread and Send Correspondence | Issues were seen with the table formatting of client data after mail was sent. This has been resolved by ensuring all borders are retained in RTE when used in both "Send Correspondence Task" and "Reply Thread". | User Experience |
SR-D37348 | 514840 | 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-D38581 | 504776 | Removed unnecessary XSS filtering on paragraph rule | When a link was set in a paragraph rule, the target option was removed in the returned layout structure. This was traced to unnecessary XSS filtering which has now been removed. | User Experience |
SR-D38729 | 507032 | Included section with defer load loads in modal flow | An included section in a dynamic layout with 'defer load content' enabled was not loading in a modal window when it included a table sourced from Data Page which in turn called a Connect Soap to load the data. When the modal window was launched, it indicated it was loading text but did not actually load any data. When 'defer load' was unchecked, the data loaded as expected. In addition, the tab groups in the modal screen flow were not displayed. The same tab group did show when opened through a separate flow. This was traced to the data-harness-id not getting added to the flow in the modal case, and has been resolved by adding data-harness-id to the preRenderer in modalOverlay to handle modal flows. | User Experience |
SR-D38946 | 507907 | Dragresize plugin removed from RTE for better Microsoft browser compatibility | When a messge was sent through Pega chat while using the Edge web browser, the text field where the message was entered before the send button was pressed did not get cleared. This was traced to the Edge browser throwing a Permission Denied error while attempting to access a detached DOM element. To resolve this, the 'dragresize' plugin has been removed from RTE as its implementation is not compatible with Microsoft Internet Explorer 11 and Edge. | User Experience |
SR-D39369 | 513097 | 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-D39455 | 508606 | Shortened URLs (bit.ly) supported with custom image size | Marketing offers were very slow to load, often generating requestor lock exceptions due to the wait time. This was traced to one cell in one section that housed a company logo: the source to icon had a shortened "bit.ly" URL when the ImgaeIO API in Java expected the actual URL as its input. The API could not convert the shortened URL to the actual URL, resulting in the retries and connection failure. To resolve this, 'javax.imageio.ImageIO' invocation will happen only when the image size is auto. If custom height and width are used to display an image, Pega will not depend on the Java library and the system will be able to resolve the shortened URL. | User Experience |
SR-D40762 | 510370 | 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 | 512976 | 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-D40803 | 511593 | JSON parsing error on export resolved by ensuring parameter encoding | Menu items like "PDF" and "Excel" were not loading on click of the "Export" Button, and an "Exception in parsing JSON" message was logged. The export worked as expected when the menu rule actions of each menu item were modified to remove the openurlinwindow actions. This was traced to the Response JSON being broken due to a invalid format created when the "propositionName" was passed as an unencoded parameter when the report was exported. This has been resolved by ensuring the input parameters are encoded before creating the URL. | User Experience |
SR-D40938 | 509686 | Free form layout controls will be converted to dynamic layout | After upgrade, a a pzActionDropdown control that was inside a pyActionDropdownSection was not visible anymore. Using the pzActionDropdown control directly worked as expected. Investigation showed that pyActionDropdownSection was using Freeform layout instead of the upgraded Dynamic Layout, and that the custom control was failing to generate the markup whenever drag/copy-paste was used for the control in any layout. To resolve this, the system has been updated so it will remove the control from a free form layout and use dynamic layout instead. | User Experience |
SR-D40941 | 512593 | 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 | 513206 | 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 | 508946 | 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 | 510080 | 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-D41233 | 511718 | Radio button will not be generated for data page null result | When a Radio Button was sourced from Data Page with a report definition or a data transform, a 0-results return still generated a radiobutton with a selectable dot but no option. This has been fixed by adding a check so the results will not be added to a data list if the value is undefined. | User Experience |
SR-D41446 | 508991 | Multiselect control modified to not allow duplicate capsules | When using an OpenID Connect authentication service it was noted that the scopes were added multiple times when saving the authentication service or changing the scopes. Investigation showed this occurred when the multi select control was used for the scope field, with multiple values appended during reload cell activity itself. This was caused by the Multiselect control allowing duplicate capsules, and has been resolved. | User Experience |
SR-D41984 | 510013 | 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-D42334 | 510592 | Handling added to prevent Google Chrome double-localizing comma delim decimal input values | When using Google Chrome with a localization that uses commas for the decimal separator, additional zeros were being added to values in the skin and corrupting entered values. This was traced to Google Chrome lacking support for the comma in the HTML5 element input type=”number”: this resulted in an entered number such as 1.0 being localized by the browser display as 1,0 but the actual input value was still being held as 1.0. When a refresh happened, the localization was applied again and the corruption was seen. To compensate for this, the action has been changed from refresh section to post value. | User Experience |
SR-D42583 | 514487 | 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 | 510923 | XSS security added for Case Manager | XSS security has been added to the Document features in the Case Manager portal. | User Experience |
SR-D43141 | 512435 | 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 SR-D56836 |
511644 518011 |
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-D43740 SR-D45101 |
512183 512529 |
Added support for Helper Text Question Mark with visibility condition | The Helper Text Question Mark was not displaying if the control was configured with "Help icon with overlay on hover" combined with a visibility condition. This was a missed use case, and the expression visibility support for controls.changes have now been added in the pzpega_ui_DLCellTemplate.js file. | User Experience |
SR-D44546 | 512600 | 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-D44943 | 527921 | Handling added for mousdown triggers in Firefox dropdown and sutocomplete controls | After recording a test case that includes entering data into an autocomplete, the data was not actually entered into the autocomplete when the test was executed but the test step was marked as successfully executed. Other tests for other similar autocompletes appeared to execute as expected. This was due to a mismatch between the sequences of events that are fired in the Google Chrome and Firefox browsers: the system is listening for a mousedown event to record a new step, but the browser-specific behavior is different. Google Chrome: mousedown focus click change Firefox: mousedown focus mousedown change As this difference in events order is browser behavior, code has been added that will handle the specific Firefox case where mousedown triggers on invalid target elements related to dropdown and autocomplete controls. |
User Experience |
SR-D45395 | 524170 | Check added to improve progressive scroll in dynamic layout | If a repeating dynamic layout was given a data page as source, selecting a pagination format that used progressive load on scroll caused the same page list value to be shown more than once. This has been resolved by adding a check based on the page size and results loaded. | User Experience |
SR-D45415 | 510912 | RemoveThreadLEvelPages modified to preserve primary page for current action | The Job Scheduler Executions drill down showing success/fail results was inconsistently showing results for the wrong jobs when sorting by column (job name). Unsorted, it opened the correct results. This was traced to the pyRemovethreadLevelPages activity removing all pages including datapages on doUIAction, causing any action performed on the UI after sorting the grid to open a wrong page. This was an issue for both the Job scheduler page and the Queue processor page. To resolve this, the pyRemovethreadLevelPages activity has been modified to not remove the data page if it is the primary page for the current action. | User Experience |
SR-D45527 | 512326 | 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-D45736 | 512896 | Parameter field value correctly resolved for radio button rendering | After creating a section that held a Radio button field that used the field label as a parameter from another section, at run time the radio button displayed the parameter name on the screen rather than its value and the radio buttons did not appear. Investigation showed that when rendering the section, the param.property was not resolved and the control was not rendering. To resolve this, the DLCellTemplate.js has been updated to display the localized value in the Label, and DLCellTemplateMetadata and RunTimeUtil have been modified to include the parameter reference in the current context. | User Experience |
SR-D45828 | 518021 | 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 |
515527 515247 |
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 | 512377 | 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 | 514152 | 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 | 516183 | 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 | 511853 | 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-D47344 | 519893 | Single quotes escaped in RTE title field value | A JSON parse error was caused by single quotes not being escaped in the RTE title field value. This has been corrected. | User Experience |
SR-D47401 | 512618 | 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-D47477 | 513725 | Updated header left screen layout to remove extraneous checkbox | In Google Chrome, resizing the portal so it showed the hamburger menu displayed an extra small square checkbox above the menu. This check box was caused by a font icon whose content value was present, but the selector was not assigned a font family because it was targeted for header left footer screen layout and not the header left screen layout. To resolve this, the selector has been modified to be more specific to header left screen layout. | User Experience |
SR-D47583 | 518040 | IsMobile 'when' configurations are properly displayed in mashup preview | Given two layouts configured based on the 'when' rule pyIsMobile, the mashup preview did not work in the mobile form factor. This was only an issue with App Studio preview of a mashup and did not have an impact on the enduser use of the mashup, and the same mashup code viewed on mobile/desktop worked as expected. Investigation showed that the 'when' rule was evaluated correctly for the application level, but in mashup it was evaluated to false even when opened in mobile view from App studio. The Rule-Utility-Functionchecks to see if an overridden useragent has been specified and if it has, then it uses it for the preview in App Studio, however in mashup the userAgentDetails did not contain any of the satisfying conditions under which the condition might be returned as false. The issue in this case was traced to the Rule-Utility-Functionneeding to handle the scenario of Mashup Preview by checking if the thread was from the mashup preview, and that has been implemented. |
User Experience |
SR-D47689 | 520830 | EvaluateConditions properly sets context for refresh section | Rule Not Found and Unresolved Assembly Errors were seen in production logs after upgrade. Investigation showed that the method context used by pzpega_ui_changetracker.js in "evaluateConditionsOnXThread" was not reset correctly, causing the refresh section response for the Recents List to not be properly updated. This has been resolved by updating the evaluateConditionsOnXThread method to set the proper context after evaluateClientConditions is run. | User Experience |
SR-D47886 | 514780 | Home icon retains correct color after refresh | By default, the home icon is a svg tag with dark or white filling (based whether it is selected or not), however if another tab was selected and the page refreshed, the icon went black and became a svg img tag. This has been corrected. | User Experience |
SR-D48046 SR-D52472 |
512590 523768 |
Left panel content visible after window resize | After maximizing or resizing the window, the left pane on Designer Studio or User Portal either did not show the left panel or did not show the panel separator and did not display any content after clicking on separator navigation icon. It was also not possible to expand the Explorers again. This has been corrected. | User Experience |
SR-D48887 | 512946 | 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-D49182 | 513737 | Check added for special characters in parameter for table source | A table with a literal string that included the @ symbol for a parameter to its data page source was unable to load the section if it had the optimize code checkbox enabled. This has been resolved with the addition of a check for special characters. | User Experience |
SR-D49305 SR-D53488 |
519366 520016 |
Tab layout group handling improved | A difference in scrolling speeds between left and right arrows and an issue with the cursor correctly being redirected to mandatory fields were traced to errors in the tab layout group handling. The right scrolling issue was due to the calculation for right tab movement being incorrect in certain resolutions with relatively positioned elements, and has been corrected. The cursor redirect was caused by an error in the layoutgroup focus when used inside a screen flow where the first focus goes to the screenflow navigation on load, and has been resolved by adding a try catch for an invalid selector in case of a div error. | User Experience |
SR-D49468 | 516324 | Parent harness context passed for reference properties in Ajax containers | Attempting to save values failed for any property which was mapped to a parent property that was also a reference property. This was traced to an issue with the harness-level templating status: for the lazy loaded sections of a harness, the harness's template status was being passed instead of the parent harness template status when using an Ajax container. To resolve this, logic has been added to pzpega_ui_doc_serverProxy js for the invokeHandler function to add parameters based on the parent harness context to the safeURL object before invoking the post request. | User Experience |
SR-D49527 | 516297 | XSS security added to CKEditor in Richtext Editor | A scenario where HTML objects could be copied and pasted into CKEditor and the click action modified to perform different actions was traced to Pega event attributes present in the RTE content. This has been corrected by blacklisting Pega event attributes like data-click, etc. | User Experience |
SR-D50116 | 518002 | XSS filtering added for MobileSnapStart URL | XSS filtering has been added for windowTitle in the MobileSnapStart URL. | User Experience |
SR-D50208 | 517233 | Corrected layout of sort and filter icons for grid tables | The sort and filter icons in a table grid were almost overlapping, and in some cases the sort icon was so small that it was almost not visible unless the width of the specific text was enlarged to see it. This was traced to a CSS snippet present in one of the override files that forced the width of the name column grid header to 100%, and has been corrected by ensuring the sort column is left aligned next to the column header. | User Experience |
SR-D50372 | 514614 | 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-D50621 | 519299 | Handling added for Pagelist with brackets in rendering RDL | After configuring four nested embedded sections where the last section included a repeating dynamic layout, the RDL showed up in the included section as raw HTML markup in the UI at runtime. Analysis showed that when rendering the RDL on the last item of the Pagelist which contained PAGE_LIST_NAME<LAST>, the angular brackets were treated as HTML entities that caused the attribute page-context to break. This was a missed use case for First and Last pagelist items that caused an error in appending the page context to attribute, and has been resolved by encoding the HTML for the page context attribute before appending it to the DOM. | User Experience |
SR-D51555 | 516496 | 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 | 516705 | 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-D51776 | 531986 | Check added to resolve Ajax Container instantiation error in log | When using the Microsoft Internet Explorer or Edge browsers, manually launching a Service Intent and clicking the F5 refresh button properly refreshed the screen, but the PegaRULES log file contained the error "(DynamicContainerDataModel) Error occurred while instantiating tab for the thread index." This issue / exception was observed only when pzCustomDCTabHeader was configured (pyEnableCustomTabHeaders) and when there was a AjaxContainer configured in the document. Because the CustomTabHeader recreation (DynamicContainerDataModel.updateCustomTabHeader) should be skipped for AjaxContainer, as CustomTabHeader is applicable only to the top level DC document and not to the AjaxContainer document, a check has been added to resolve this issue. | User Experience |
SR-D52144 | 515673 | 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-D52630 | 519230 | Ad hoc task time validation done on correct thread | The validation on a time value was not working correctly when two cases of the same type were open at the same time. For every ad hoc task, there is some validation on the time property. After submitting a value in a second ad hoc task, the validation was triggered but used the property from the first ad hoc task and showed the error in the second ad hoc task tab. This was traced to the datepicker taking the reference from the previous MDC when it needs to take it from the active MDC. To correct this, the control_datepicker has been upadted to use pega.ctx.getElemById. | User Experience |
SR-D52665 SR-D71105 |
518264 532191 |
Corrected error when using CharCounter in non-template mode | An error message was generated when trying to save a section with the TextArea's Display CharCounter set to True. This was traced to an error in the remaining character count span generation for non template mode and has been corrected. | User Experience |
SR-D52695 | 515973 | Pagination context switch handling updated for mouse scroll | When using various tables in the DMG 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 |
SR-D53260 | 524752 | Added check for section refresh when files are attached offline | After attaching files in offline mode, the files intermittently did not show up in the "recent attachments" list when performing any action on the attachments section. This was traced to the asynchronous reload of sections, and has been resolved by adding a condition in the sectionRefreshCallback() to check if the response matches with the correct reload element. | User Experience |
SR-D53568 | 521146 | Improved post-upgrade compatibility for custom tabbed screen flows | After upgrade, a screen flow with a customized harness saved-as from a TabbedScreenFlow harness and configured with client side validation disabled was displaying a blank white screen if validations failed when moving from one tab to another tab. When a tabbed screen flow has errors the necessary script bundles should be added, but this configuration was created prior to the introduction of templated controls and non-templated controls don't need script files. Because the ‘doesStreamMatchInputProperties’ method sets ‘researchmode’ to true, the ‘doOnlyOnce’ method evaluated to false and script files related to templating controls were not getting appended. For greater backwards compatibility, 'mResearchMode’ will be set to ‘true’ to make stream processing light weight. In addition, the researchmode check will be removed when adding scripts. | User Experience |
SR-D54184 SR-D54594 |
519319 521635 |
Enhancement added to customize the clearing of error messages when performing modal actions | Opening any modal dialog, for example adding a row in Table/Grid layout, cleared any existing validation error messages on UI screen. In order to make this behavior customizable, a flag has been introduced to control the clearing of error messages from primary pages on grid actions. Updates have been made in the ui_grid, ui_grid_dragdrop and ui_repeatlayout JS files to include this flag in activity parameters and the pzdoGridAction activity has been modified to consider the flag. | User Experience |
SR-D54785 | 524804 | Corrected grey area seen when dragging tabbed layout Smartinfo scroll | When using Show Smartinfo in a tabbed layout group, a grey area was seen in the harness while scrolling. Scrolling up so that Smartinfo was out of view port caused another scroll bar to seen: one scrollbar was attached to the workarea div and the other to the body, and the gray area issue was only reproducible when explicitly dragging the (second) scrollbar attached to the body. To resolve this, if the popup is below the viewport using Smartinfo and the height calculated is negative, then the popup's height will be set to 0px. | User Experience |
SR-D54920 | 518274 | Extra checks added for pasting Excel content to RTE | Copying content from Excel into RTE pasted an image of the content either instead of the actual content or in addition to the actual content. This was traced to the handling of the isHTML flag: the flag should be set to true when there is HTML content in the datatransfer item or while pasting images (!isHTML is the condition in if). However, the sequence of the data items in the datatransfer can change depending on the browser/OS, causing isHTML to sometimes not be set to true before it is used in the condition while pasting images. To resolve this, changes have been made to the pasteHandler in the pzpega_ckeditor_extras file so proper checks are made to figure out the type of data from the clipboard that is being pasted. | User Experience |
SR-D55233 | 520721 | AJAX container handling updated to use Harness context API | After creating a service case and adding a task to the case, a button configured to refresh the section on a condition worked correctly the first time but did not respond to a second click. This was traced to the tasks being located in two different Ajax containers: in this usecase the condition evaluation logic related to actions was still using the regular DOM API and using the context from the first AJAX container. To resolve this, the system has been updated to use the harness context API pega.ctx.dom.getElementsByName instead of DOM API to resolve the necessary elements from the correct AJAX container. | User Experience |
SR-D55461 | 523176 | Corrected modal timing issue when deleting Data Transform or Property rules | When deleting Data Transform or Property rules, there were times when the deletion modal only appeared briefly and then the web page turned white, the message "No stream to display" appeared at the top of the web page, and all other content disappeared. This was more frequent when the requestor had been idle, but occurred under other situations as well. This was traced to a timing issue: once the modal action (localaction -modal or flowinmodal) is triggered the event queue should be paused, but in some cases the system was executing the next action in the queue and causing the no Stream to Display error. To resolve this, pega.u.d.bModalDialogOpen will be set to true in the prerender callback instead of success callback. This will set the flag in the pre-rendering logic so that correct modal status will be known to the action processor. | User Experience |
SR-D55972 | 518645 | SmartInfo disappears if cell clicked | After configuring a smart info on a table cell on hover where the table cell was also clickable to open a case, the smart info remained on the screen when the cell was clicked until the mouse was moved. This was opposite of the expectation that the smart info would disappear on click in this scenario. Analysis showed that the overlay event was not being dismissed if its associated element was removed/hidden, and this has been corrected. | User Experience |
SR-D56038 | 518033 | Corrected top row focus on scroll up for paginated table | When loading results in a table with progressive pagination, scrolling down and waiting for data to load and then scrolling back up resulted in the focus being set on the second row instead of the first as expected. This was due to an incorrect calculation for Scrolltop, which has been corrected. | User Experience |
SR-D56373 | 518885 | Mutiselect can localize "Use" | Localization has been added for the value "Use" in the multiselect control. | User Experience |
SR-D57278 | 519461 | Padding added to keep sort icon always visible in Google Chrome | When sorting a grid column on Google Chrome, the sort icon was missing if the header label was large. This was traced to the Sort icon being handled as a background image of 12px in width inside 'display:table-cell' which was forced to shrink by the resize. To resolve this, 'padding: 0 6px;' has been added to each side to keep the space intact for the sort icon to always be visible. | User Experience |
SR-D57629 | 532493 | Navigation sub menu shows all options | The switch app menu was running off the bottom of the screen, and using arrow keys to navigate it caused the whole portal to jump up. This was traced to the sub-menu style attribute 'top' being changed to '0' if it was given a negative value. To resolve this, a condition was added to check whether the rendering sub-menu height is greater than viewport, and adjust the top attribute value accordingly. | User Experience |
SR-D5904 | 504995 | 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. | User Experience |
SR-D61860 | 523584 | Preflight Optimization styling now handlies right-to-left language packs | When using Preflight Optimization on a generated app with the AR (Arabic) locale, Pages rendered in Right-to-Left (RTL) mode did not have the proper styling or placement for the radio button target and text. The same app rendered correctly when using an empty (default to EN - English) locale. Investigation showed that Preflight Optimization of CSS was failing when using Right-to-Left (RTL) language because the use of preflight bypassed all other CSS processing. To resolve this, the handling of Preflight's CSS Optimization has been updated to handle cases using a Right-to-Left language (ex: Arabic). |
User Experience |
SR-D62361 | 534811 | Read-Only harness takes precedence over editable section with when condition | Given a harness which was marked as Read Only and contained sections which were configured as editable based on some conditions, when the condition became true, the section became editable and ignored the read only conditions applied on the harness. Investigation showed that when a read-only 'when' rule evaluated to false, it rendered the layout in Edit mode instead of falling back to the read-only status of parent. This has been corrected by ensuring that when read-only evaluates to false, the system will fall back to the parent read-only status. | User Experience |
SR-D63416 | 526523 | Multi-select list control properly sets error message for server-side validation | When using the Multi-select list control, client-side validation was working as expected but server-side validation was creating the Property-Set-Message error at Form level rather than Field level. This has been corrected. | User Experience |
SR-D63737 SR-D66007 |
525524 526861 |
Resolved ruleset save issue for Google Chrome/IE | When using particular versions of Google Chrome or Microsoft Internet Explorer, the intermittent error "pyComponentInterfaceClass: <user> does not exist or is not a valid entry for this ruleset and its prerequisites" appeared when attempting to validate an application, and the ruleset could not be saved. This was traced to changes made in the browser around password handling, and has been resolved by explicitly clearing out the pyComponentInterfaceClass if that value is not in use. | User Experience |
SR-D66387 | 530843 | ReloadSectionsCache handling improved | Change Tracker was reporting changes properly and ExpressionEvaluator logic identified the correct DOM element related to layout refresh, but the refresh was not getting triggered due to _isInvalidRefresh logic. This was traced to reloadSectionsCache not being optimally maintained, and has been resolved by updating reloadSetionCache to avoid unnecessary reloads and only update the cache after a reload section is completed. | User Experience |
SR-D67360 | 527679 | Bottom and right custom borders appear as expected | After enabling editing of the default table format and then giving a format for the bottom and right borders, the borders did not appear. This was caused by code that was overriding the new configuration, and has been resolved. | User Experience |
SR-D71402 | 532333 | Localization added for Pega Call Login screen | Localization has been added to the label "Value can not be blank" on the Pega Call Login screen. | User Experience |
SR-D71756 | 533551 | Thread Cleanup error resolved | After upgrade, intermittent exception errors were being generated by the FreeClipboard activity when switching between applications. This was traced to specific use-case issues with Thread Cleanup, and has been resolved. | User Experience |