Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.3.1 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D16543 | 487945 | Thread cleanup improved for application switching to resolve skin issue | After opening a Case from the HR application and then switching to another application to open another case, the Review Harness skin control was not loading correctly. This was traced to a thread cleanup issue relating to the Portal: on application switch, the system should clean up all threads created on the current application before switching to new application, but in this case thread cleanup was not happening as expected due to conflicts in the unload event handling. This has been corrected. | Case Management |
SR-D22415 | 493439 | 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 | 503087 | 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. 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-D26589 | 496719 | pxParseExcelFile activity will now parse multiple sheets | 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. Additional issues for this issue in 8.4 to fix issues like formulae not getting evaluated and $ not parsed: 501592, 501383 |
Case Management |
SR-D29114 | 499930 | 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-D37444 | 507037 | 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-D50144 | 513684 | Dynamic RTE support added to Word document generation | Pega document generation from a Word template was not properly replacing field codes in the document header or footer and failed to render images embedded in rich text fields. An enhancement has now been added to pzGenerateDocument which will support dynamic content from RTE. | Case Management |
SR-D5904 | 488562 | Discard changes dialog now showing for local actions | After having modified case data without saving and clicking on a menu entry (left menu, search, ...), the system shows a dialog box to ask the user to confirm it is ok to discard changes. However, this confirmation dialog did not work with local actions, leading users to lose their work without any warning nor any way to step back. This was traced to a difference in the dirty form check, which was not present when launching a local action from a case. An enhancement has now been added to the handleMenuAction js function in pypega_ui_harnessactions.js which will perform a dirty form check with a prompt. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.3.1
Conversational Channels
8.3.1 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D18814 | 493323 | 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 DB attachments using pxGetFileAttachmentContent. | Conversational Channels |
SR-D23360 | 493463 | 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-D28342 | 504970 | 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. | Conversational Channels |
SR-D29832 | 503224 | 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-D32991 | 504129 | 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 |
Data Integration
8.3.1 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-C60963 | 424450 | Clipboard flag conflict cleared to facilitate data migration via product rule | After creating a Product rule in a 6.x version to export the Work Objects by adding all the necessary classes manually into the Product rule and then exporting the RAP, the in-flight work objects were imported successfully into the 7.x environment but the reference pages were not imported. This was traced to a broken reference link for the autopopulate process caused by ClipboardProperty flags being in conflict about whether or not the properties were defined as references, leading to the inference engine being disabled during the import. To resolve this, going forward the disabling of auto-populate properties will be done in conjunction with disabling the inference engine, as they should both be enabled or disabled together. By default the inference engine will be enabled as administrators are encouraged to import in the proper declarative context. | Data Integration |
SR-C76668 | 424443 | skipDocsRecreation option added to remove flickering during application launch | In order to avoid visible flickering resulting from a dynamic container refresh conflicting with custom code during application launch, an enhancement has been added that can be used to skip the SDM refresh functionality based on the "pega.u.d.skipDocsRecreation" JS property. This can be enabled in Userworkform. | Data Integration |
SR-C80200 | 494446 | 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. | Data Integration |
SR-D13514 | 489433 | Data-test-id handling updated to resolve testing issue with custom controls | After configuring a custom control, the control did not render as expected when trying to capture the scenario testing. Investigation showed that in read-only mode, two spans were wrapped with same data-test-id when formatType is number. This caused a ‘no unique selector’ issue with scenario tests. To resolve this, pzpega_ui_template_displayText.js has been updated to not include data-test-id on outer span when formatType is number. | Data Integration |
SR-D14201 | 485964 | MY system pulse receiver will parse originating tenant name to facilitate data page removal | When using a node level data page on a cloud multi-tenant system to get the data from a data table, attempting to flush the data page by explicitly calling pzFlushDataPage was not flushing the page in all nodes of a tenant. This was traced to the system pulse used to communicate between MT nodes: the receiver node was not removing the data even after receiving the system pulse because the cache contained the page with a different key. The key formed contained the tenant name, and the receiver was not parsing the tenant name from the pulse message received. To resolve this, the system has been updated to parse the tenant name from the pulse message and set it on requestor. This allows the correct key to be formed, allowing the receiver node to remove the data page as expected. | Data Integration |
SR-D16200 | 494582 | 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. | Data Integration |
SR-D16433 | 499294 | 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. | Data Integration |
SR-D17418 | 498720 | 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 (an 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. | Data Integration |
SR-D17825 | 494700 | 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-D18036 | 495396 | 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-D18200 | 492097 | 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. | Data Integration |
SR-D19111 | 496592 | 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-D19131 SR-D21555 |
490187 501104 |
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-D20763 | 500403 | 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 | 499919 | 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-D21569 | 491702 | 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 | 493777 | 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 | 501343 | 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-D22113 SR-D32441 SR-D16427 |
498312 502572 497220 |
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-D22437 | 492855 | 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 | 504393 | 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. | Data Integration |
SR-D23490 | 496574 | 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-D24193 SR-D24198 SR-D24214 SR-D24260 SR-D24261 |
492564 492696 492568 492560 492556 |
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-D24950 | 494563 | 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. | Data Integration |
SR-D25163 | 504610 | 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-D25560 SR-D22686 |
494555 496861 |
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-D26160 | 504068 | 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-D26342 SR-D28297 SR-D8754 |
495414 498140 497376 |
Tracer issues resolved for Google Chrome browser | 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-D30505 | 501894 | 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-D32086 | 500893 | 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. | Data Integration |
SR-D32307 | 500953 | 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 |
502268 506367 |
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-D33227 | 510824 | Check added for lock expiration when using Save for Default locking | With the default case locking policy, during the process from creating a Case Object to Submit it was possible for multiple users to edit and save the same work object if the lock expired for the original user. No warnings appeared. To resolve this, handling has been added for a lock expiration scenario: previously, Save for Default locking was not considered. This has now been updated with a check that will evaluate whether or not the lock is gone before attempting to save. | Data Integration |
SR-D33359 | 505772 | 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 | 503956 | 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 | 503334 | 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-D36293 | 509303 | 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 |
504745 510576 510182 |
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-D36715 SR-D41229 |
507455 507175 |
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. Additional enhancements for this issue will be included in a future release. | Data Integration |
SR-D42406 | 510668 | 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-D42456 SR-D23906 |
510956 501993 |
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-D44215 | 512190 | 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 | 486556 | 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-D50436 | 513848 | 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 |
Decision Management
8.3.1 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D16934 SR-D28038 |
493702 501755 |
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 | 493516 | 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 | 494171 | 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-D25184 | 494689 | 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. | Decision Management |
SR-D26010 | 500163 | 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 | 507216 | 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-D32719 | 505260 | Compliation error resolved for editing complex offers | The following error was logged while trying to edit offers: "com.pega.pegarules.pub.generator.FirstUseAssemblerException: Failed to compile generated Java, com.pegarules.generated.html_section.ra_stream_pyeditelement." Research showed the code for the static initializer was exceeding the 65535 byte limit, causing the java compilation of the pyEditElement section to fail for a decision data rule. This was due to the pyEditElement section for a decision data rule being circumstanced: the assembler architecture of circumstanced section rules generated and added code for all the versions of a circumstanced section. Hence, if the section referenced a lot of properties and it existed in multiple ruleset(s)/ruleset versions, the java compilation for the section rule failed. To correct this, the integration of the pyEditElement section with decision data rules has been revised and enhanced, and a function and utility have been provided to call the function to clean up the old and redundant pyEditElement sections for a given decision data rule. | Decision Management |
SR-D37163 | 505476 | 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 | 506798 | 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 | 507994 | 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 | 505488 | 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 | 511636 | 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-D41616 | 509808 | 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 | 508142 | 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-D43470 | 511439 | 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 | 512447 | 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-D47713 | 511969 | 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 |
Low-Code Application Development
8.3.1 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D18726 | 501388 | 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 | 501745 | 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 | 495319 | 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-D26785 | 495893 | 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. | Low-code app development |
SR-D27041 | 499045 | 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-D28985 | 498014 | 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. | Low-code app development |
SR-D32035 | 504704 | 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 | 504479 | 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 | 508966 | 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 | 508224 | 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 | 505655 | 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-D40685 | 508809 | 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-D42402 | 508894 | 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-D43776 | 510761 | 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 | 509907 | 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 |
Mobile
8.3.1 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D18853 | 488283 | 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. | Mobile |
SR-D28060 | 498749 | Cross-site scripting filtering added to App Studio | The pzDisplaySpaceFeedTitle control which is used to display the audit feed in Pega App Studio has been updated with cross-site scripting filtering. | Mobile |
SR-D28293 | 498233 | 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-D30428 | 503424 | 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-D33052 | 502061 | 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 | 507970 | 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-D37757 | 507966 | 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-D44012 | 509880 | 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-D7323 | 493176 | 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. | Mobile |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.3.1
Reporting
8.3.1 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D17306 | 490918 | RD pagination expanded to 1500 rows | The default pagination enabled on the Report Definition was limiting the results to 50. This has been enhanced to a row limit of 1500 in report definitions pzGetAllPropertiesOfGivenClass. | Reporting |
SR-D18879 | 500640 | 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 | 511322 | 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 | 491736 | 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-D22885 | 494162 | 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 | 500189 | 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 | 501369 | 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-D27687 | 500051 | 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 |
499438 513017 |
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 | 500898 | 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 | 502273 | 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 | 513420 | Deferred load works inside custom row section of Report Definition | Deferred Load was not working inside a custom row section of a report definition. This was traced to the non-auto-generated mark up written for the customRowSection include not having the node_type="MAIN_RULE" name="BASE_REF" id="RULE_KEY" base_ref="" attributes. This led to the load manager which performs the defer load to get the base_ref as "pyReportContent" from the "ReportDisplay" section dom node. To resolve this, the RRDataListGeneration has been modified to set the proper base_ref to customRowSection include so the context/base_ref is passed to the customRowSection. | Reporting |
SR-D35981 | 506380 | 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 | 509606 | 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 | 505696 | 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. 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-D39291 | 508367 | 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 | 507980 | 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 | 509517 | 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 Microsoft Internet Explorer =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 Microsoft Internet Explorer . | Reporting |
SR-D40599 | 508279 | Handlign added for Japanese half-space character during DB 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-D42138 | 509288 | 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 | 508939 | Large report pagination should use "Previous and Next only" | Some Report Definitions were getting timed out or facing gateway exceptions, primarily due to high time consumed by the DB Queries. Investigation showed the total result count process appeared to stop at the configured pyMaxRecords value as long as it was nonzero. This indicated the issue was related to changes made to fix the inaccurate behavior of the "Last" button in the responsive paginator which included removing logic that set pyMaxRecords to anything other than zero. To resolve this issue, those pagination changes have been reverted. The "Last" button should not be used when the paging mode is set to Numeric: in the case of large reports, the paging option should be set to "Previous and Next only". | Reporting |
SR-D43788 | 512542 | Corrected Last Added By values for reports created in report browser | After creating a report using report browsers in the case manager portal, opening that report definition rule in Designer Studio showed the person's name who created the pydeafult report instead of the expected values for Last added by(Operator ID & Name) and Last Moved by (Operator ID & Name,Date). This has been resolved by adding steps to pzRRSaveAs which will fix the history details when making a new report in the report browser. | Reporting |
SR-D46535 | 512846 | 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 | 513076 | "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 |
Security
8.3.1 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D23239 | 499595 | Support added for multi-operator SAML logins | When a SAML user is logged in by Single Sign-On (SAML), the system processes 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 the 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-D47611 | 513113 | 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. | Security |
System Administration
8.3.1 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D11655 | 485707 | 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-D20423 | 503445 | 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-D20439 | 496403 | Hotfix hashmap cleanup improved | A DL installation failed with an out-of-memory error. It was observed that many CacheEntry(VersionedJdbcJarRwader.java) hashmaps were being created to store the details for each hotfix but that were then never cleared. This has been resolved by adding the finally block in CodeImportProcessImpl.java class to call the shutdown method for proper cleanup. In addition, the default command line utility (prpcUtils) has been updated to use JVM settings of Xmx 4GB and capture a heap dump if an out-of-memory error is encountered. The auto-generated prconfig.xml has also been updated to leverage its minimal startup setting which will avoid loading the conclusion cache into memory. | System Administration |
SR-D21803 | 502129 | Cross-site scripting protection added for embedded portal URI | The URI used in the top window of embedded portals has been encoded to prevent DOM based cross-site scripting. | System Administration |
SR-D23862 | 503895 | 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 | 503873 | 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 | 495621 | 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 to 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 | 502134 | 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 | 501481 | 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 | 497611 | 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 | 497837 | 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-D28184 | 497165 | 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-D28460 | 509364 | 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 | 502056 | 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 | 505966 | 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 |
506862 507883 |
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 read-only, 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 | 503512 | 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-D31066 | 502252 | 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-D33491 SR-D43811 |
511726 511920 |
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-D37872 | 507340 | 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-D41532 | 512002 | 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 | 512268 | 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-D42602 | 511583 | 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-D44307 | 509000 | 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 |
User Experience
8.3.1 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D15844 | 496775 | Flag set for using defer load context switching with Microsoft Internet Explorer | 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-D15910 | 491007 | 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. | User Experience |
SR-D17568 | 498409 | 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-D18960 | 499909 | 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 | 490402 | 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 | 492338 | 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 | 495838 | Corrected embedded section inside dynamic layout group becoming read-only | When using a nested sections structure in a Dynamic Layout Group (tab), the fields inside the layout group were becoming read-only. 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 | 494515 | Handling added for exceptions related to IE11 grid cleanup | Numerous exceptions generated from IE11 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-D23164 | 493795 | 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 | 499567 | 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 | 497605 | 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-D24083 | 498486 | 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 | 494055 | Dom API updated to resolve IE11 not loading async data with refresh when | The browser was continuously showing "loading" if IE11 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-D25012 | 499851 | 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-D25251 | 493798 | 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-D26244 | 501191 | Label control cross-site scripting protection added | Cross-site scripting protection has been added to label control. | User Experience |
SR-D26784 | 507134 | 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-D28060 | 505636 | Cross-site scripting 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 cross-site scripting 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-D28496 | 499079 | 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 IE11. This has been resolved with updates to the 'pzpega_ui_dynamiccontainer' and 'pzpega_ui_doc_tabsupport.js' files. | User Experience |
SR-D28657 | 500583 | 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 read-only case. This has been corrected. | User Experience |
SR-D28869 | 499315 | 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-D29809 | 505255 | 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-D29926 SR-D33329 |
501406 502010 |
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 | 503683 | Cross-site scripting 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 | 503231 | 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 | 501285 | 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-D31599 | 503197 | 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 | 505055 | Added constraints to RTE resize | When using IE11 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-D32525 | 505466 | 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-D32655 | 510343 | Enhancement added to hold Change Tracker values until UI is loaded | Sporadically, an agent attempting to answer a queued call within 10 seconds received a loading screen. By the time the load completed, the next agent had already taken the call. This is a scenario where based on a change, the agent was trying to refresh something on the UI (a section or harness) which was not yet loaded/present on the UI. To address this use case, an enhancement has been added to hold the change tracked values and handle them once the UI is loaded. The new function pega.ui.ChangeTracker.prototype.handlePendingCTChanges in pzpega_ui_changetracker.js is used to handle the pending CT changes. A hook has been added in the pzpega_ui_doc_lifecycle js file to invoke the above function once the UI is loaded. | User Experience |
SR-D33421 | 501113 | 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 | 505993 | 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 | 504606 | 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-D35266 | 509480 | 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 | 506684 | 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-D36091 | 505612 | 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. | User Experience |
SR-D36120 SR-D40617 |
506241 507564 |
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-D36335 | 504332 | 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 | 504984 | 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 | 506283 | 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 | 504934 | 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-D38581 | 504774 | Removed unnecessary cross-site scripting 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 cross-site scripting filtering which has now been removed. | User Experience |
SR-D38729 | 507030 | 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 | 507905 | 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-D39455 | 508604 | 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-D40055 SR-D36176 |
507420 508405 |
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-D40762 | 510368 | 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-D41984 | 510011 | 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-D42701 | 510921 | Cross-site scripting security added for Case Manager | Cross-site scripting security has been added to the Document features in the Case Manager portal. | User Experience |
SR-D43141 | 512433 | 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 | 511642 | 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-D44546 | 512598 | Corrected opening collapsible rows with modal action inside a nested pane grid | After expanding the second level of a collapsible row in a table and then collapsing the row back down again, trying to expand other rows in the table did not work and the error "Unable to get property 'target' of undefined or null reference" appeared on the console. This was an issue with a modal action configured inside a nested pane grid that was attempting to call a target key on an undefined object, and has been resolved by explicitly checking for the existence of the 'event' object before calling the 'target' key on it. | User Experience |
SR-D45360 | 510098 | 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-D45415 | 510911 | 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 | 512324 | 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-D46532 | 512375 | 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-D46545 | 511851 | 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-D48887 | 512944 | 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 |