Pega Infinity™ includes an industry-standard release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.6 Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-128571 | 584752 | Auto-process assignments cleanup improved | After configuring auto process with an assignment at the flow end, the perform harness was being presented at the end of the assignment during runtime. This was the result of the newAssign page not being removed as part of the cleanup after auto-processing was done, causing the performB2BAssignmentCheck activity to believe the next assignment existed. This has been resolved by ensuring that auto-process assignments have the newAssignPage removed after the assignment is deleted. | Case Management |
INC-134113 | 591542 | Child case locking error message has correct parameter | A locking error message was appearing without the case parameter, showing "Error Message : Could not lock the cover ; has it. Please wait and try again later." This was traced to the cover already being present, causing the step to open the Cover Object to fail. To resolve this, and update has been added to pass the Cover case ID to the field value. | Case Management |
INC-135335 | 588511 | Parent flow next step will take precedence over sub-process | ABreadcrumb configured in the screen flow was not displaying at the last assignment when there were multiple embedded sub processes and the last assignment was called in a sub process. This was traced to the parent flow next step information not being passed due to the next step in the sub process being marked as an end shape. To resolve this, the pzFlowSteps7 html control has been updated to pass the parent flow's next step information in this situation. | Case Management |
INC-135751 | 587288 | Null check added for embedded section pyInclude tag | When attempting to implement a call to the Pega API casetypes endpoint, the end point /casetypes/{id} returned data for only some of the casetype IDs. For others there was no content in the response and in the logs the error "null at com.pegarules.generated.pzAPICreateJsonForGroup" was seen. This was traced to the use of an old section which did not generate the embedded section pyInclude tag. When the API was called on the same section, it tried to perform an equality check on the variable which gets the pyInclude value, and the null value caused the null pointer exception. This has been resolved by adding a null check to cover pyInclude in an embedded section. | Case Management |
INC-136208 | 585227 | Case history filter added for manual instantiation of Child Case | After upgrade from v7.4 to v8.3, creating any child case from a parent case unexpectedly added the audit history "Child case xxxxx has been manually instantiated" to the parent case. In order to make this customizable, an "isHistoryAvailable" function has been added in the 'when' condition of "AddCoveredWork" Activity's "History-Add" Step. This will use the FilterHistory decision tree, which now has a setting for "ChildCaseInsAudit" to control whether or not the manual Instantiation of a Child Case will appear in the case history. The default is "true"; setting it to "false" will suppress the message. | Case Management |
INC-136327 | 591467 | Stage keeps proper order placement on restart | When a user restarted a stage, the stage moved to the end of the list of stages and stayed there even when completed. Investigation showed that when pxRestartStage was configured as a post-processing activity for a flow action, pxStageHistory was updated with a new list item which considered pxCameFrom and pxStageId as the same. Due to this, the current stage was moved to last in the chevron. This has been resolved by adding a new 'when' condition to pzLoadStageStatusDP that will skip the item of pxStageHistory (Alternate stage) if both .pxCameFrom and .pxStageId are same. | Case Management |
INC-136641 INC-149946 |
586516 609042 |
OpenIfStale updated to resolve optimistic locking race condition | A race condition was created in optimistic locking by having two assignments save at overlapping times. This has been resolved by modifying the pzShowConflicts activity to use a version of openIfStale which will consider a workpage as stale even if the difference in pxUpdateDatetime is in milliseconds. | Case Management |
INC-138348 | 599769 | Added parameter skipPropertyEvaluation to handle CSS in email HTML | While sending an email with custom HTML appended to the email body, a "+" sign in the body was causing the correspondence generation to fail. Investigation showed that if there were CSS classes with braces in the message body, the braces were being removed and replaced via "+" symbol in step 21 of CorrCreate activity. To resolve this, a new Boolean parameter skipPropertyEvaluation has been added in the CorrCreate activity to handle the decision to either evaluate the logic or not, and the pre-requisite will be to resolve all the property references before calling this activity so custom CSS braces { } will be honored when the message body is sent. In order to skip the evaluation that removes and replaces the braces, the skipPropertyEvaluation must be checked. | Case Management |
INC-139074 | 587812 | Email handling security updated | Cross site scripting protections have been enhanced for email activities. | Case Management |
INC-141751 | 596135 | DragAndDrop attaching large file properly disables 'X' | When a large file was attached using the DragAndDrop feature, the 'X' icon/button was not disabled. This made it possible to click 'X' and perform other actions during the upload, which caused the screen to freeze and required a browser refresh to continue the work. This was traced to incomplete work done on large file uploads, and has been resolved by ensuring the busy Indicator shown will be applied to the complete screen to avoid any other actions being performed. | Case Management |
INC-142660 | 595392 | Pega API system management launches correctly from Help | The Pega System Management API did not work when launched from help window, although other APIs such as Case Management were working fine. This has been resolved by updating the basePath in pzSystemManagementDocumentation. | Case Management |
INC-143025 | 600608 | API performance improvements | Performance improvements have been made for running the get assignment action details API. | Case Management |
INC-143861 | 597556 | pzIsScalar 'when' rule updated for Value list and Value group | When using the GET/Cases/{ID} API to fetch details about a case, an intermittent HTTP 500 error appeared. This was traced to the 'when' condition pzIsScalar being returned as true for the ValueList property types and trying to set the value on the summaryData embedded page. This has been resolved by updating the pzIsScalar 'when' rule to better handle Value list and Value group. | Case Management |
INC-144265 INC-164413 |
609286 636126 |
Updated timestamp handling for duplicate key issue with PyCompleteAutomation | Occasionally a robot failed to complete a case due to a duplicate key exception. This was an issue with the History record creation due to duplicate key erlated to the timestamp, and has been resolved by updating the timestamp handling so that the REST API will use 'getCurrentTimeStampUnique' and for other cases 'pxGetCurrentTimeStampThreadUnique' will be used. | Case Management |
INC-144358 | 601011 | Localization added for "Automatically" and "Manually" field values | The Dutch translation of "Child case [Case_type] [Case_id] has been [Instantiation_mode] instantiated" used the hard-coded English expression "manually". This has been resolved by adding the "Automatically" and "Manually" field values to localization. | Case Management |
INC-146035 INC-160078 |
610518 628839 |
Work object status correctly set to Resolved after refresh | When using the Refresh option from the Other Actions menu before submitting the flow action, the work object status was not updating to Resolved-Completed. Investigation showed that when performing the Refresh action, the RefreshOnConflicts activity created a Clipboard page named LatestWorkPage with a copy of the work object. This page was not removed after use, causing the Resolved-Completed status to be set on LatestWorkPage instead of pyWorkPage. To resolve this, a step has been added to RefreshOnConflicts to remove LatestWorkPage. | Case Management |
INC-146339 | 600743 | ViewID parameter passed as part of DX API response payload for level 5 applications | Recent work to not consider production level and always pass 'viewID' parameter as part of DX API response payload was not working for cases where the APIProductionLevel was 5. This was a missed use case based on a condition that remained on the ViewID parameter, and the condition has now been removed. | Case Management |
INC-146564 | 607857 | DX API returns application specific validation messages | When trying to validate the input swagger details with application specific conditions, the create case DX API did not return the validation messages from application but instead returned a "500 Internal Server Error". Investigation showed that the error parameter was not set on validation fail, and this has been corrected. | Case Management |
INC-146780 | 602024 | Updated ArchivedCaseHistory visibility | After enabling case archiving on Pega Cloud, it was possible to search the cases from case manager studio, but the audit details were missing. Previously Audit History was directly displayed based on whether archival was enabled or not. As part of Field Level Audit, a new property called pyHistoryViewType was introduced which is a prompt list with ALL and FIELD as its values. This property checks whether FLA is enabled or not, and based on that value ALL is set. In this case, because FLA was not enabled, the pyHistoryViewType property was empty and the HISTORY tab was not shown. To resolve this, the pyArchivedCaseHistory section table 2 visibility condition has been updated. | Case Management |
INC-147457 | 621710 | Elapsed time in Work History Table includes sub-flow | Elapsed times were not captured when an assignment was in a wait shape followed by a utility which set a ticket and moved the assignment to a sub-flow. Investigation showed that when flow execution is in a sub-flow and a ticket is raised, the assignment in sub-flow was removed but audit history was not captured. To handle this scenario, the functions pzCleanSplitForTicket and pzRemoveFlowForTicket have been added, and FlowMethodBody FUA has been modified to include pzCleanSplitForTicket instead of CleanSplit. | Case Management |
INC-147658 | 604685 | Handling added for Top and Primary page references in flow action | After upgrade, if a flow action had a class of the section which was different from the class of the flow action, the DXAPI code retrieved the section as the same class of the flow action and not the class defined in the flow action. In flow action, the section was configured be rendered in the context of page reference as Top, however, this was not handled so the section was resolved in the context of primary page. This has been resolved by adding the missing handling for Top and Primary page references in flow action. | Case Management |
INC-148747 | 613877 | Helper text set for radio buttons in DX API | The api/v1/assignments/{ID}/actions/{actionID} Service Rest was not rendering the tooltip into DXAPI converted JSON for Radio Button Helper Text. This was traced to a missing Tooltip check in the API Rule-Utility-Function for radio buttons, and has been resolved. | Case Management |
INC-148817 | 604970 | Added check for ABAC policy to getassignmentdetailsinternal | When an attribute based access control (ABAC) policy was defined on a particular class, the policy was properly applied when browsing instances of the class and directly opening the work object. However when an associated assignment was processed via the DXAPI (using the assignments service) the security was not applied and users who should not have access were able to progress the case. This has been resolved by adding a check in the pzgetassignmentdetailsinternal activity to check for work object opening security. | Case Management |
INC-149213 | 608518 | Email attachments properly displayed in mobile browsers | When attempting to use any mobile browser to open the email attachment of a work object, a blank HTML page appeared before the email attachment was shown. The blank page did not appear if the mobile browser was set to use "Desktop mode" or "PC mode". This has been resolved by updating the BAC registration method so that correspondence attachments are properly opened in all mobile browsers and HC apps for all channel types. An additional issue of a blank window appearing on IOS devices that was caused by correspondence attachments opening in a new window instead of opening in the current window has also been corrected. | Case Management |
INC-149823 | 608353 | DX API returns properly referenced icon class for embedded page | When using the DX API to build an Angular JS UI, the response returned from the GET /cases/{ID}/actions/{actionID} api did not return the iconStyle for an icon class that uses a property reference when the flow is on an embedded page. This has been resolved by adding code to set the correct context for pzAPICreateJsonForModes and pzAPICreateJsonForField RUF. | Case Management |
INC-149988 | 608821 | Upload with "Select File" works in Microsoft IE | When using Microsoft Internet Explorer, uploading a document was failing on the first try when using the "Select File" button. The second attempt worked as expected. This was an unintended consequence of work done to enable attaching the same file after deleting it, and was related to Internet Explorer calling an "onChange" which caused the "pzAttachFileDDFileList" section which is used to display the attachments uploaded to not be properly refreshed. This has been resolved by updating the pzMultiFilePath control handling of the success and failure of the upload function call. | Case Management |
INC-150172 | 611773 | Updated class handling for View field security | When using a defined View which returned a page and its fields and used an inherited custom work party definition, trying to update the pyWorkParty(Customer) by calling the "post /assignments/{ID}/{actionID}" did not work as expected when Field Security was ON. This was traced to the field security relying on the design time page class information stored in the list/group property, and has been updated to resolve the view fields using actual class information from the work page. | Case Management |
INC-152442 | 616667 | Check added for Create Access to attachment | After restricting access for the attachments category in a CS application, the attachment was added without category and could not be opened. This was due to the Create Attachment access not being automatically created for all categories when privileges were added, and has been resolved by adding a step to check Create Access for attachments of the respective category. | Case Management |
INC-153688 | 616917 | Class name length limitation raised to 64 characters | In order to support field audits on very long class names, FLAudit Class has been modified to allow a class Name length of 64 characters instead of the previous limit of 56. | Case Management |
INC-153801 | 625946 | Modified handling for updating SLA on Bulk Agent items | While transferring SLA-configured assignments to the work basket using the Bulk Agent in background processing, the assignment handle of the SLA item was not getting updated to the work basket assignment handle. The error "duplicate key value violates unique constraint" was logged. This was due to the system not being able to dequeue the SLA item while it was locked by the Queue Manager as part of the background bulk processing, preventing the assignment handle from being updated on the SLA item. To resolve this, the system will perform a direct database open of the SLA item so the assignment handle is updated. | Case Management |
INC-154189 | 617245 | Harness used to determine read-only for button/text input | If a button/text input was configured to always be editable in a section by using the /v1/cases/{ID}/pages/{pageID} API (say i.e PageID as Review), the button/text input was always returned as readonly. This was due to the API being hardcoded to return readonly info, and has been resolved by updating pzGetPageDetails to not force read-only and let the harness configuration decide the behavior. | Case Management |
INC-154778 | 620907 | Bulk actions filtering works in Spanish locale | Filtering by only case type did not return any results when using the Bulk Transfer functionality with the Spanish locale. Investigation showed that the filter value case type had a field value set, but the localized value was not being checked in the pzPostFilterOperation in step 1 'when' condition. This has been resolved. | Case Management |
INC-154826 | 614817 | Enhanced handling for screen/non-screen/screen flow movement | When using a screen flow where the last screen had a link to launch a section, a cancel button in the section that was configured with a data transform and a 'Finish Assignment' intended to move back to the screen flow did not work as expected. If a browser refresh was performed and then the cancel button was clicked, the Finish Assignment / return was triggered as expected. Because this configuration navigated to a non-screen flow, the attachOnLoad function did not load the parameter needed for maintaining error messages. This has been resolved by updating the navigation to handle this use. | Case Management |
INC-155469 | 616910 | Attach Documents Control updated for busy indicator timing | When using the standard control - Attach content - to attach documents for processing in the application, selecting multiple files for upload and then clicking on the attach button before the busy indicator started resulted in not all files being uploaded. Investigation showed that the busy indicator was not set to display as soon as the attachments were added, giving an opportunity to click "Attach" before all the documents could be successfully added to the process. As part of the resolution for this issue, the busy indicator will be displayed immediately upon file selection. | Case Management |
INC-155559 | 617503 | GoToStage property marked as non-transient | When refreshing or reopening the flow, the pzRuleParamsHolder did not display the gotostage property in in the change to stage shape even though the property was present in the clipboard and the flow switched correctly. This was traced to pyGoToStage being marked as transient, which caused the value to not be saved to the database. To resolve this, the pyGoToStage property is now marked as non-transient. | Case Management |
INC-155587 | 621841 | Handling added for controls applied directly to parameters | After upgrade, the section displayed by the out of the box flow action pyDisplayRolesOfApplication was not displaying the role count and application name, instead highlighting values as null. Beginning with Pega 8.4, completely templated mode changes were introduced to repeating dynamic layouts. This led to parameter values which should have been passed to the field parameter to be missed because a control was added to the parameters explicitly. This has been resolved. | Case Management |
INC-155648 | 617395 | Corrected reference of PropertyExists in pyAdjustSLAPostAction | The PropertyExists function was returning incorrect results. This has been resolved with the addition of a 'property exists' check in pyAdjustSLATimes. | Case Management |
INC-159334 | 626763 | Handling added for custom attachment method | When sending a correspondence using the standard SendSimpleEmail activity, choosing only one attachment from the multiple attachments in the work object by passing the pxLinkedRefTo property from the clipboard page to the AttachmentKeysToSend parameter instead of passing the value to the AttachmentCategoriesToSend parameter successfully sent the message and attached it to the work object. However, opening the correspondence attached to the work object showed the attached file as blank even though the attachment was present in the receiver’s email. Research showed that during the comparison of keys in place of pxLinkedRefTo, pzinskey was used. This caused the comparison to not register as true and the attachments display was skipped. This has been resolved by updating the Data-Corr-Email.Show Html rule to use the pxLinkedRefTo field to find the right attachment. The URL encryption was also updated to ensure the links are functional and attachments can be downloaded. | Case Management |
INC-159807 | 629187 | Corrected bulk transfer status display for localized systems | The transfer processing status was not displayed after performing a bulk action transfer using the French locale. Investigation showed that during bulk processing, the status whether the item processing was successful/failed/queued etc was maintained in pyBPNotes property and localized, but due to the localization it failed the check in the visibility condition. To resolve this, the pzBulkProcessItemsInHarness activity has been updated to not localize the value and set it in pyBPNotes so the visibility check runs as expected. | Case Management |
INC-160115 | 627650 | Editing Approval flowshape retains decision tree | Editing the Approval flowshape caused the decision tree to become blank when selecting 'Use Business logic' in the dropdown for "Route to dropdown". This was traced to a missed use case for earlier work done on enhancements for email approver shapes regarding retaining previous values while switching back to using the business logic option, and has been resolved. | Case Management |
INC-162550 | 630274 | RefreshFor correctly returns validation messages | After upgrade, the PUT method on /api/v1/assignments/{ID}/actions/{actionID}/refresh?refreshFor was not returning validation messages on the child level. This was an unintended consequence of refactoring work done on pzApiCreateJsonForField around the default value calculation, and has been resolved. In addition, an issue with read-only text controls not being localized has been corrected. | Case Management |
SR-D60505 | 522998 | Upload with "Select File" works in Microsoft Internet Explorer | When using Microsoft Internet Explorer, uploading a document was failing on the first try when using the "Select File" button. The second attempt worked as expected. This was an unintended consequence of work done to enable attaching the same file after deleting it, and was related to Internet Explorer calling an "onChange" which caused the "pzAttachFileDDFileList" section which is used to display the attachments uploaded to not be properly refreshed. This has been resolved by updating the pzMultiFilePath control handling of the success and failure of the upload function call. | Case Management |
Cloud Services
There were no 8.6 Resolved Issues for Cloud Services
Conversational Channels
8.6 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-139018 | 587716 | Rules updated to handle Outlook change that displayed multiple/duplicate email responses | In Pega Email Triage case, all the replies were displayed along with the original email body, meaning for each and every reply, Pega showed the original email body and duplicated the data. This was traced to an update made by Microsoft in the Selector function of Outlook Windows, and has been resolved by updating the rules 'PyExtractLatestReplyFromHTML' and 'pyRichTextEmailHistorySelector' to work with this change. | Conversational Channels |
INC-142930 | 600768 | Email history will be stripped from case replies | When sending an email reply to a case, the entire email history (all previous emails in the email chain) was attached to the case as part of the reply. To resolve this, updates have been made so the system will strip history only when it's a follow-up mail. In addition, an issue with duplicate attachments has been corrected, and attachments from trailing mail will not be copied to a new post. |
Conversational Channels |
INC-143320 | 602280 | Support added for email addresses with hyphen in domain name | When attempting to enter a email with a hyphen '-' in the domain part of an email ID ([email protected]), the reply button was getting disabled. This was caused by the regex validation implemented in the "pzValidateEmailAddress" (Work-Channel-Triage-Email) standard activity not covering all the possible cases. To resolve this, regex has been changed to instead use a platform-provided rule to ValidateEmailAddress. | Conversational Channels |
INC-146544 | 604494 | Updated handling for unexpected character set in non-UTF-8 email | After upgrade, the listener properly created a case from an email, but the space character was being replaced by ? in the inbound emails. Investigation showed the messages did not appear properly in the UI if the email was sent using any encoding other than Unicode (UTF-8) and it had a special character set. To resolve this, the system will remove the attachment type which includes the charset. | Conversational Channels |
INC-150367 | 606029 | Double quotes escaped in entity mapping | A usecase where the BOTS created the triage cases from the emails and pushed it to the Workgroup had an intermittent problem where the screen would freeze and no actions could be performed. perform any action on the same. Investigation showed this occurred when the entity text contained double quotes which is caused JSON to break on the client side. This generated an exception during rendering, and other onload scripts failed on load and blocked the entire thread. To resolve this, the system will now avoid the JSON break by escaping double quotes in entity mapping. | Conversational Channels |
INC-152776 | 621245 | Check added for HTML and linefeed combined in email | In the Interaction right hand pane Email triage widget, additional line breaks were seen when displaying email message data that contained table tags. This was a missed use case for email which contains both HTML and '\n', which resulted in the system replacing '\n' with < / br >. This has been resolved by adding a check whether the content has HTML tags which will avoid the replacement. | Conversational Channels |
INC-156422 | 617381 | Updated email triage case creation to avoid unique key issue | After upgrade, when the email listener queued the case and an agent picked up the queued item to create an Email Triage Case and then the interaction case, trying to commit the case failed with a Unique Key violation. Investigation traced this to the system trying to insert the record into the PC_WORK_TRIAGE table twice due to a timing issue in the workobject commit. This has been resolved. | Conversational Channels |
INC-157214 | 631600 | Mentioned user in Pulse appears correctly | When loading user names while using the "@" functionality in a Pulse post, adding or tagging the operator/user in Pulse by entering each letter brought up the list, but when using copy/paste it was not possible to select the desired value from the user.Suggestions list of operators/users. If by chance the user name was selected from the suggested list, the operator ID was added instead of the full name. This has been resolved. | Conversational Channels |
INC-160372 | 629922 | Resolved unneeded chat survey error logging | After configuring a chat server to do a post chat survey, the post chat survey was correctly served but errors indicating "Cannot find PegaCA-Work-SurveyNPS.Thank you for your feedback. van type Rule-HTML-Paragraph" were logged. This was caused by the method used by the system to distinguish between text and paragraph questions in pyProcessNextStep, and has been resolved by adding additional checks for whether paragraph exists before opening it. | Conversational Channels |
INC-160688 | 632230 | Skip topics from the attachments setting honored | Topic detection was happening for attachments even when it is disabled in the UI. This issue was traced to pyTopics which were not properly configured by selecting checkboxes in iNLP configuration for Email Channel, and has been resolved. | Conversational Channels |
INC-165188 | 635775 | Third-party links allowed to pass target attribute in anchor | Attempting to connect to Docusign, a third party application, via Email in an interaction portal was not working, and the error "account.docusign.com refused to connect" appeared. This was caused by the HTML data being sanitized so the attribute 'target' was not allowed to pass and the application could not open in a new tab. To resolve this, an update has been made that will allow the target attribute for an anchor tag. | Conversational Channels |
INC-165886 | 637242 | JWT token support added for Digital Messaging | An enhancement has been added to support the use of JWT tokens for authentication with the Digital Messaging API. | Conversational Channels |
Data Integration
8.6 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-107737 INC-158728 |
544662 625587 |
Oracle handling updated for upgrade DDL | DDL generated for a Pega upgrade displayed the error "ALTER TABLE PC_ASSIGN_WORKBASKET DROP CONSTRAINT GETNEXTWORKINWORKGROUP" when trying to install. This was traced to a change made by Oracle for optimization, and has been resolved by updating the handling for primary key constraint and the corresponding index name. | Data Integration |
INC-121480 | 595823 | EnableRedirects property added for REST connections | When implementing a connector with the header “Location” which contains a redirect URI, a 303 response code was expected. Instead, a 400 or 404 error was generated. It was not possible for developers to process the code per their logic in Activity as Connect REST processed 303 responses automatically - i.e. there was no intercept points to implement the suggested approach. To resolve this, the new property "Rule-Connect-REST.pyEnableRedirects" has been added along with a checkbox for the property in "Rule-Connect-REST.pyService" in "Connection" section. Logic has been added in RESTConnector.java to take value of this property and set it on the HTTPClient being used, and a method has been added to HTTPClient interface and ComponentsHTTPClient to use the new value being passed. The default behavior is the same for the REST Connector, but a client can uncheck a checkbox on the REST Connector ruleform to stop the HTTP client from automatically following any compatible 3xx responses. | Data Integration |
INC-122112 | 599792 | Updated SLA table clearance | After cases were resolved, SLA entries were not getting cleared from the SLA table. This caused the SLA table to have a huge number of Overall SLA and PendFlow details present for cases that were resolved or moved to the next state, which impacted case processing via SLA Agent. This was traced to SLA queue-items not being removed by delete-deferred as expected, and has been resolved by invalidating the deferred operations and scheduling item removal. | Data Integration |
INC-125258 | 601606 | Documentation updated for troubleshooting rules counts | The troubleshooting documentation has been updated with extended information regarding correcting incorrect rule counts in dashboards and reports. https://community.pega.com/knowledgebase/articles/pega-platform-trouble… |
Data Integration |
INC-125633 INC-150633 INC-150861 INC-151043 INC-154062 INC-160360 |
589578 614513 610953 614870 614021 625684 |
Optimizing helper class enhanced to handle external databases | Running a BIX extract that included a manifest for a target database was resulting in a null pointer exception for the manifest extraction. Attempting to generate the DDL for the manifest table also failed. This was traced to an issue with the helper class using a hardcoded default database for forming the queries, causing it to ignore the database config/DADN/prconfig for the Oracle database and form a query using the PegaRules' database credentials. This only occurred when trying to do external database operations on a different database platform; Oracle PegaRules worked as expected with an Oracle external database and Postgres Pegarules worked with a Postgres external database, but mixing Postgres PegaRules and an Oracle external database would result in the null pointer exception. To resolve this, the helper class has been enhanced to work with external databases by passing the database name as a parameter so it will properly calculate the query based on the type of target. An error in the name of the class has also been corrected, and is now available as PerformanceHelper rather than the previous "PerformaneHelper". | Data Integration |
INC-125972 | 604081 | Improved resolved rules cache | When Rule resolution iterated over a candidate list to fetch a candidate, performance issues were seen on very large sites. To resolve this, an enhancement has been added that will cache the resolved virtual table entries to optimize performance in high demand use cases like DSM. | Data Integration |
INC-128800 | 592823 | Additional DSS added to handle Apache client-level timeout | In Connector rule, the system timed out a connection after 1 hour even after a connection time timeout was configured to be 30 seconds. Apache's refactoring of their HTTPClient in version 4.3 specifies request timeouts in two ways: on the client-level and on the request-level. Client-level timeouts are enforced prior to and during the handshake, whereas request-level timeouts are enforced after the handshake has been made. Previously, RESTConnector.java and ComponentsHTTPClient.java were configured to only set the user-specified timeout on the request, and not on the client. This caused the client-level timeout to default to "0", or an infinite amount of time. In this reported issue, the remote host closed the connection before the handshake had been completed so the connection remained open for several hours. To resolve this, the DSS "ClientLevelHTTPTimeout" has been added to allow specifying a client-level socket timeout, and ComponentsHTTPClient.java and RESTConnector.java have been amended to assign this value to the client. This DSS is set to 0 by default to preserve backwards compatibility. | Data Integration |
INC-128899 | 586972 | Resolved BIX Extract Summary Status Count mismatch | A mismatch was seen between the summary of the Extract Summary Status Count in the Execution History stats versus the logs, for example the execution history saying 98.74% completed while the log says 100% or 100.45% completed. Investigation showed there was mismatch in the query based on the filter value given in the extract rule and the where clause in the query that resulted in an error in calculating percentage in case of any exception. This has been resolved. | Data Integration |
INC-130176 | 585373 | Removing Page List removes all cached pages | A previous change was made such that when removing a Page List property, its size is removed from the size-specific cache as well. A further enhancement has been made so that when a Page List is removed, the system will clear the pageCache of all cached pages in the Page List. | Data Integration |
INC-130886 | 590375 | Bad Stream error after passivation resolved | A "Bad Stream" error was seen when attempting to reassign a case to the Workbasket, and a save of the work object failed. This was caused by a corruption of the work object during passivation, and has been resolved. | Data Integration |
INC-131635 | 579854 | New troubleshooting guide for exceptions on Stream nodes | A new troubleshooting topic has been added to the documentation for decision nodes which will assist with resolving Stream node exceptions. | Data Integration |
INC-131938 INC-141838 INC-166498 |
598476 598173 637351 |
Locking and classmap improvements | Threads were getting stuck inside classMap and tableInformationMap, causing nodes to go down. This was traced to issues with class map performance and locking, and has been resolved by replacing the lock library with a newer version and refactoring the tableInformationMapImpl class to use a concurrent hashmap instead. | Data Integration |
INC-132059 INC-139626 |
597305 592389 |
Enhancement added to fix corrupted operators | After upgrade, an issues were seen with older operator IDs: it was not able to save the operator ID, switching the portal to admin studio was not working correctly, and it was not possible to launch the case manager portal with the migrated operator IDs. The issues were not seen with operators created after the upgrade. This was traced to corruption in the BLOB, and has been resolved by adding an enhancement to run a utility that will fix the existing corrupted operators. | Data Integration |
INC-132088 | 603085 | Updated Tracer for cluster events | When running the tracer from the Admin Studio Listener management landing page, Tracer was always fetching data from one node only even though events were generated on another node. This was due to the specific node where the Listener was running being passed to the concern activity while launching the tracer; the Tracer Client node did not have data to check if the event was being populated on another node, and the result was to always fetch data from one node only even though events were generated on another node. To resolve this, the web node ID where the event is running will be passed. | Data Integration |
INC-132658 | 590951 | Atmosphere updated to resolve request object recycle exception | The exception "java.lang.IllegalStateException: The request object has been recycled and is no longer associated with this facade" was traced to a request object being recycled in Tomcat because of pooling. To resolve this, a fix was made in the Atmosphere open source library to ignore such exceptions. A new jar with version 2.4.5.8 has been uploaded to the repository and defaultVersionsByGradle has been updated with this version. | Data Integration |
INC-134143 | 594198 | Export URL encryption update for BAC | After applying URL Encryption and URL obfuscation DSS changes, the export option was not working from data types. This was traced to the URL being decrypted as part of the standard handling: If BAC is turned on, it accepts only encrypted URLs. To resolve this, an update has been made to ensure the URL remains encrypted in the declare expression when appropriate. | Data Integration |
INC-134260 | 588366 | Tomcat-dbcp upgrade | Tomcat-dbcp has been upgraded to version 9.0.37 . | Data Integration |
INC-135065 INC-136817 |
598716 596488 |
Added database query optimization and cache invalidation logging | Web nodes were going down during deployment due to failed health checks. This was traced to queries firing even when there was no rule change, and was due to unnecessary cache invalidations. An update has been made which will optimize and analyze declarative database queries and capture diagnostic details on any invalidation of the declarative reference information cache. | Data Integration |
INC-135313 | 596097 | Correct circumstanced version of portal loads | Desktop users were seeing the mobile circumstanced version on the application portal immediately upon login. This was a missed use case for a user logging into a mobile portal first and then into a desktop, caused by data between the two sessions being shared in an invalid way. This has been resolved by updating the save work in progress feature to prevent UI data from being shared between mobile and desktop. | Data Integration |
INC-135359 | 587039 | CORS header configuration added for Stream tier | An enhancement has been added that allows setting the CORS header (Access-Control-Allow-Origin) to allow *.DOMAIN.com on Stream tier (/stream/view & /stream/click) calls by way of the setting /stream/httpHeaders . | Data Integration |
INC-135821 | 588999 | Timeout for node to join cluster increased and made configurable | Hazelcast timeouts were causing application restart failures. This was traced to a rare case scenario of heavy processing on the primary node causing the new node to not be able to join the cluster within the designated 5 minute threshold. To compensate for this, the default time to join has been increased to 9 minutes and a prconfig setting has been added to configure the time setting. | Data Integration |
INC-135823 | 586418 | Transient property passivation handling improved | Frequent "com.pega.pegarules.pub.PRRuntimeException" errors were seen in the production log file while working on the WO. This was traced to corruption in the blob caused by transient properties during passivation. To resolve this, corrections have been made to the handling for the transient property entries in the blob. In addition, a utility has been provided to restore existing corrupted operators. | Data Integration |
INC-136019 INC-145255 |
584809 600273 |
EmailListener restart correctly reflects Inbox folder change | The Email Listener did not pick up a change in the INBOX folder name when the listener was restarted, but did when the server itself was restarted. This was due to the folder name being cached but not being included in the cache key: a cache change only occurs when the key of the cache changes. This meant that even after changing the folder name, the object was treated as 'not changed' and returned the older connection with older folderName. This has been resolved by adding the foldername to the cache key. | Data Integration |
INC-136708 | 584868 | Query String Parameter handling updated for REST service | Technical parameters starting with underscore, such as _pageNum, _pageSize, and _last_modified that were used as Query String Parameters in a Service-REST caused it to fail with the error "failed:Inbound data mapping failed". This was caused by the system considering the parameter names as invalid. To resolve this, the design time and validation handling has been updated for the query string parameter. | Data Integration |
INC-137235 | 586080 | Validations and rules tuning | Issues relating to an extra row being added to auto-populated properties, adding a 'when' visibility to a picklist property, and errors saving nested properties have been resolved, and performance of the overall system has been improved. | Data Integration |
INC-137882 | 599137 | Hazelcast will be used to determine node presence | When calling logoff from the end user portal, sporadic PresenceStandardLifeCycleListener exceptions were seen during high load periods. This was traced to changes made in the Service Discovery behavior: when there is an issue with the node and heartbeats are missed, the node goes to Safe Mode. This caused the topology to change and trigger clearing off presence sessions, but the node still received service requests and this issue was seen. To resolve this, an updated has been made so the system will rely on the Hazelcast listener instead of service discovery to determine whether a node has left. | Data Integration |
INC-138041 INC-138253 |
590556 597570 |
Handling added to ensure proper Data-Admin-DB-Table name records | As part of property optimization, after exposing the property "SolutionName" using the wizard, the value was not visible in a new column for existing records after the completion of the column population job. This was traced to an issue with DBSchemaDDLExecutor expecting lowercase Data-Admin-DB-Table names, and the wizard has been updated to ensure Data-Admin-DB-Table name records are all lowercase. | Data Integration |
INC-138243 | 584898 | Performance improvement in When parsing | After upgrade, performance issues were seen in the execution of rules with When conditions. This has been resolved by modifying the code to address some inefficiencies in the parsing method. | Data Integration |
INC-138265 | 591903 | Improvements made for releasing stream objects | Unreleased stream resources were causing a potential memory leak that could impact performance. This has been resolved by updating the system to explicitly close store, folder and all stream objects when appropriate. | Data Integration |
INC-138649 | 585357 | Timezone retrieval performance enhancement | In order to improve performance and reduce a potential bottleneck for concurrent threads, PRDateTimeUtilsImpl has been updated to use a common GMT time zone object rather than getting the time zone for each operation for each function call. | Data Integration |
INC-138743 | 602445 | Updated LegacyPageAdapter with forward links | After upgrade, attempting to submit an assignment from an existing case type did not work, and the message "There was an error processing the 'ValidateTechnicalData' step [(no task)]: java.lang.ClassCastException: com.pega.platform.clipboard.adapters.internal.LegacyPageAdapter cannot be cast to com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl" appeared on screen. Investigation showed that a reference forward link was unexpectedly referring to a LegacyPageAdapter. This has been resolved by implementing get/setNamedPageReferenceForwardLinks in LegacyPageAdapter so LegacyPageAdapter can be cast to a ClipboardPageAPI. | Data Integration |
INC-138840 | 599259 | Data-Summary reports default will not use the rule resolved setting | An intermittent issue was seen where a query could become stuck for ~2 hours in the database. This has been resolved by setting the default for Data-Summary reports to not use the rule resolved setting. | Data Integration |
INC-139106 | 593272 | HTML Tags stripped from text email body | The Service Email message data section was showing HTML tags in the email message body for both 'prefer-HTML' and 'prefer-inline' where the body was missing. Investigation showed there was no default feature for segregating the markup tags and providing the plain text when ‘HTML’ format was selected in Outlook. This has been resolved by adding a Prefer: outlook.body-content-type="text" header to get the message without HTML tags. | Data Integration |
INC-139297 | 601419 | JSON content type update | An update has been made to ensure the content_type is set to application/json for JSON response. | Data Integration |
INC-139611 | 587600 | Timezone.getDefault function replaced for performance improvement | Blocking threads were seen around the GregorianCalendarFactory.clearObject(Object) function, leading to an adverse impact on the performance. TimeZone.getDefault() is a synchronized method call, and under high load this method caused contention when more date-related APIs were invoked. To resolve this, Timezone.getDefault() has been removed and the function has been assigned to a static variable used in the clearObject() API. |
Data Integration |
INC-139619 INC-140879 |
597333 596570 |
Agent tracing handling updated | When attempting to trace agents the error "Unable to trace the agent" appeared on screen. Investigation showed that the data page used by the Tracer was not always available in a thread that was displaying the section, most commonly if the section was using deferred loading. This has been resolved by using a data page available in a thread that opens a Tracer's section. | Data Integration |
INC-139627 | 604761 | Legacy and new ID generation logging enhanced | Legacy and new ID generation logging enhanced A DuplicateKeyException was generated when attempting to create a case. The root issue was related to the local modification of the reserved ID field in the database through a custom activity and was able to to be fixed with a local change. In order to improve diagnosing events such as this in the future, enhanced logging has been added to to the legacy and new ID generation. |
Data Integration |
INC-139695 | 593084 | Mountain time zone format updated | If an operator was created with any calendar instance time zone mapped to "Canada/Mountain" and made unavailable for the current period, routing an assignment to that operator using the standard ToCurrentOperator activity resulted in a null pointer error when the Rule-Utility-Function was executed to find a substitute operator. This was traced to the time zone format Input to DateTimeUtils API (parseDateTimeString) having the wrong time zone, for example, 20200819T080000.000 MDT (CA), and has been resolved by modifying the locale XMLs to remove (CA) from zone code so that MDT (CA) is updated as MDT. | Data Integration |
INC-139802 | 594032 | Extra logging and more resiliency for cleanup daemons | Null pointer exceptions thrown by daemon threads that clean requestors and handle agent changes can result in a high number inactive requestors. Additional logging has been out into place to help capture information to identify the offending data, and master daemons for requestors and for new agents have been made more resilient to any null pointer exception thrown by the diagnostics code so they do not stop their work. | Data Integration |
INC-139810 | 592835 | New Rule-Utility-Function added to allow customizing filename formatting in repository | When using S3 as file storage, uploading a file with a name such as "sample.tar.gz" resulted in the file name in the repository being formatted as "sample.tar_.gz" instead of the expected "sample_.tar.gz". This was caused by the handling in pzSaveToRepository, which was meant to include the CaseID for the customer use case of same-name attachments on every instance of a case. In order to handle attachments with multiple file extensions such as "<FILE_NAME>.tar.gz", the logic for the fileName formatting has been moved from pzSaveToRepository to the new Rule-Utility-Function pyFormatAttachmentName so that is is possible to override and customize the behavior. | Data Integration |
INC-140341 INC-156765 |
593706 622027 |
Cross site scripting updates | Additional cross site scripting protections have been added to pyActivity processing and pzTransformAndRun. | Data Integration |
INC-140421 | 595472 | DSS added to enable short-term IBM MQ tracing | In order to support on-demand MQEnvironment tracing, a DSS property has been added to enable tracing for a day. This is done by setting the DSS property IBMMQEnabler = true , which will set MQEnvironment.enableTracing(86400000); and tracing will be enabled for a 24-hour period. | Data Integration |
INC-140750 | 589926 | Resolved post-passivation login issue | An authentication error was seen when operators tried to log in again after passivation. This was traced to a corrupted BLOB, and has been resolved. | Data Integration |
INC-141570 | 597844 | Performance improvements for first JVM start and login | First JVM start and first log in were taking a long time with Oracle DB. To resolve this, several updates have been made to optimize performance. | Data Integration |
INC-142036 | 594579 | Additional BIX logging added | In order to improve the ability to trace and resolve issues related to BIX extract rule failures, additional diagnostic logging has been added. | Data Integration |
INC-142188 | 600329 | Resolved parent lock sending child item to broken queue | If the ServiceLevelEvents agent tried to process the queue item for a child case but encountered a lock error because the parent case was locked, the queue item was immediately going to the Broken-Process status instead of re-queueing the item to try again in 15 minutes. If the property was set to 'Copy data from a data page', the item was re-queued. To resolve this, the unwind and forward chain calls have been reversed. A dynamic system setting is available to reset the change. | Data Integration |
INC-142569 | 597898 | CORS headers added for Health check URL | Pega Health Check URLs were throwing CORS error when invoked for application Health checks. This has been resolved by adding CORS headers for pingService responses. | Data Integration |
INC-142792 | 594501 | Modified thread data page cleanup | Some cases were becoming stuck at a particular stage and not proceeding further even though the task in the backend was complete. Investigation traced this to work done that removed declarative pages at the thread level to optimize performance while other clipboard pages were retained, and the issue has been resolved by deleting all thread data pages after every item processed by the agent. | Data Integration |
INC-142831 | 605474 | Corrected Outlook web inline image handling | Outlook web was not able to render inline images and instead added them as external attachments. Investigation showed inline images were not being rendered properly in Outlook web due to the disposition not being set. This has been corrected. | Data Integration |
INC-143376 | 604530 | Adding handling for property without parent page | Filtering was not working for a DateTime control in an optimized grid with embedded property which was a function alias defined in a report definition referenced by a Data Page. This was traced to the system assuming that every property has a parent page, which this use case did not. To resolve this, an update has been made that will return null for the parentGroupOrListProp if one does not exist. | Data Integration |
INC-143461 INC-144978 |
601840 600589 |
Updated JSON DT nested page property handling | In a JSON data transform, when using an "Update page" step on a single-page property, as a child step of an "Append and map to" step where a page list property is given, the page list was populated with only one result but the single-page property was treated like a page list and received multiple results. This has been resolved by updating the ClipboardJSONDeserializer implementation and downstream abstractions to support "clipboard only" relations as properties in nested Page Lists. | Data Integration |
INC-143668 | 617488 | Performance improvements for Attachment Migration Utility | The Attachment Migration Utility was showing a zero count for attachments in the Pega Database. This was traced to the underlying report definition that retrieves data for the Attachment Migration Utility timing out, and has been resolved by updating the activities to improve performance for applications having a large number of attachments without customization. | Data Integration |
INC-143865 | 602197 | Handling added for empty back link in BLOB | A DirectStreamContainerV7 Exception (BLOB Corruption) was seen when opening a work object that expanded a certain property. This was traced to an empty back link present in the BLOB: during deserialization, the exception was thrown while trying to parse that empty back link. To resolved this, an update has been made which will parse the empty back link information properly. | Data Integration |
INC-143908 | 606550 | Data Page Save correct in batch mode | After configuring a List type savable Data Page with save activity in Code-Pega-List, the save data page was triggered from utility of flow from the queue processor to handle queueing 10k data items and creating 10k work objects. When this was run, a field dpClassName was being changed by different threads in DataPageSaverImpl.java. This has been resolved by making the class DataPageSaverImpl.java stateless to ensure thread safety. | Data Integration |
INC-143972 INC-156674 |
600520 632661 |
Added handling to avoid class cast exception | The error "doMaintain errorjava.lang.ClassCastException: java.util.HashMap cannot be cast to com.pega.pegarules.priv.factory.SequencedEntry" appeared in production numerous times per day, leading to exceptions. Investigation showed this was being triggered from the activity Show-harness, and was traced to the ConcurrentMostRecentlyUsedMap eviction method casting entries to Sequenced entries. There is no such check while putting entries. To resolve this, a wrapper has been added over the ConcurrentMostRecentlyUsedMap object to avoid a class cast exception. | Data Integration |
INC-144387 | 605340 | Support added for allow list for LaxRedirectStrategy | When using Connect REST with POST to access a third-party service deployed on multiple nodes, the load balancer sometimes replied 302 with Location header. The ability to allow the REST connector to automatically follow these redirects even in the case of POST messages is supported by Apache http client via LaxRedirectStrategy, but REST Connectors need both rule and engine enhancements to allow for this. To support this use, an allow list has been implemted for hostnames. This will allow the connector to be configured to follow the LaxRedirectStrategy only when the hostname of the redirect location is in the allow list. The default will continue to block the redirect. | Data Integration |
INC-144601 | 602423 | Empty addresses removed from email | After upgrade, an issue was seen when sending email to multiple 'To' addresses generated an exception if any 'To' address had an empty value. To resolve this, a check has been added that will remove any empty address from the recipientTo address list. | Data Integration |
INC-144917 | 598199 | Healthcheck will only initialize after successful node startup | Nodes were not starting up, but because the Healthcheck service was initialized even though the node was not started properly, errors related to that were overriding the actual exception causing the node startup to fail and it was not possible to diagnose the startup issue. To resolve this, an update has been made that will ensure the Healthcheck service is only initialized when the node is initialized successfully. | Data Integration |
INC-144982 | 615338 | Log-Service-File persistence logic updated | When "Persist Log-Service-File instances" was unchecked and set to false, the process was still writing and committing the Log-Service-File table for every record processed from the file. This was traced to logic that always overrode the setting, and has been resolved by updating the system so the Log-Service-File will only be saved if it meets the conditions check of the setting. If the File Listener is recovering and "Persist Log-Service-File instances" is false/unchecked, the old and the current Log-Service-Files will be deleted. | Data Integration |
INC-145756 INC-149187 INC-149370 |
619295 622486 619992 |
Logging for MultiNodeSynchronize lock attempts changed from error to warn | The File Listener was logging numerous errors stating "Unable to establish MultiNodeSynchronize lock while trying to determine if listener is enabled for this node". Handling has been previously established for error cases when the Listener is unable to establish a MultiNodeSynchronize lock, but this condition continued to be logged as an error even though it was not related to any failures in functionality. To resolve the logging issue, the logger level has been changed from ERROR to WARN. | Data Integration |
INC-146030 | 602604 | Added queue process tracer cleanup on node restart | If a node restart occurred while a queue process trace was in progress, some entries in the tracer distributed map were not cleared properly and a subsequent tracer failure was encountered indicating a current trace by a requestor on same operator Id was already running. This has been resolved by clearing the tracer distributed map on node startup for stale entries associated with this node. | Data Integration |
INC-146057 INC-149517 |
599806 609474 |
Secure access for Activities | Authentication requirements have been added to Standard activities. | Data Integration |
INC-146123 | 601119 | SOAP service exception resolved | A SOAP service created using the Service wizard resulted in a "Caught exception building SOAP request envelope" error when attempting to invoke the generated service/WSDL from the Soap integration wizard or SOAPUI. This was traced to an unexpected conflict with work done earlier in XSDConstants.java around name case matching and certain methods in XSDTreeViewUtils used to generate the attribute text "name" during SOAP service WSDL generation, and has been resolved. | Data Integration |
INC-146610 | 614423 | MimeTypeHandler added for cloud downloads on mobile | When using the Pega cloud storage repository (Application -> Integration -> Content Storage) with the Google Chrome browser on an android device, it was possible to upload attachments but re-downloading the attachments failed. Investigation showed that this was due to the content-type appearing as application/* so Google Chrome on mobile was not able to identify the file type. This was a missed use-case for returnFileForDownload(), and has been resolved by setting the system to use MimeTypeHandler for getting the content type. | Data Integration |
INC-146752 | 602934 | File Listener made more resilient | When file listener encountered a FileNotFoundException as a consequence of sporadic AmazonS3Exceptions, the listener was disabled and no retries were made. In order to make the file listener more resilient, FileMatchConcentrator has been updated. While file listener is running and trying to get the next set of files, if the isDirectory() method returns false due to a non-existent directory or some other intermittent issues, instead of throwing an exception and shutting down the file listener, the system will now log the exception and continue. | Data Integration |
INC-147140 | 604370 | Email listener update for Microsoft Exchange server | After upgrade, TooManyObjectsOpenedException/MapiExceptionSessionLimit errors were seen when starting the email listener. Investigation showed that when the listener was started, two sessions were getting opened and then not closed properly. This was a method originally intended to allow the system to re-use the session to minimize performance overhead, but it is not well-suited for use with Microsoft exchange server as the Exchange server is unable to cleanup idle sessions. As a result, too many MAPI sessions were opened and led to an authentication exception while opening additional sessions. To resolve this, an update has been made so the system will close the session while the listener sleeps. This stop, restart and graceful shutdown scenario for single threaded email listener scenarios will create a new session every time and close it properly. | Data Integration |
INC-147156 | 605664 | Struts references removed | Struts dependency references have been removed due to Secure Mobile Architecture (SMA) being deprecated. | Data Integration |
INC-147669 | 614882 | Enhanced logging added to REDUX query references | Diagnostic logging has been added to REDUX query references which will capture information about exceptions that cause the system to fallback to generating legacy references. | Data Integration |
INC-147716 | 603239 | Warning added to indicate if QP/JS have been disabled via DASS | Search was not working, and the error “The Flow Action pre-processing activity pzLPSearchManagerMainActivityWrapper failed: java.lang.NullPointerException” appeared in the search landing page. Investigation showed that the environment was configured with disabled BackgroundProcessing, which prevented the QueueProcessor framework from working. There was no notice in the UI of this condition. This has been resolved by adding a warning that will appear if background processing is disabled. | Data Integration |
INC-148414 INC-154605 |
615593 615660 |
Date field correctly extracted for IMAP inbound email | After upgrade, email-sourced cases were not being created correctly. Tracer showed the date field was blank, causing an error which was traced to the getReceivedDate being returned as null for the JavaMail AP even though the IMAP protocol was being used. This was an unintended side effect of work done to handle a throttling exception in the IMAP inbound email flow, and has been resolved by updating the system so that if the getReceivedDate is null, the date will be extracted from the mail header while processing dates in EmailMessageInfo class. | Data Integration |
INC-148544 | 606250 | Handling added for unclosed bracket in getLocalizedText | A StringIndexOutOfBoundsException error was occurring when using the getLocalizedText method of ClipboardProperty class if the property's value included an unclosed bracket. E.g.: property value is "(123456". This has been resolved by adding handling in MessageEvaluator.java for this scenario. | Data Integration |
INC-148582 | 607073 | Check added to minimize Obj-Open-By-Handle error logging | When using a Data Type with the "Automatically generate a unique id " option, calling the Save-DataPage method by using the savable data page of the data type finished correctly but showed Obj-Open-By-Handle errors on PegaRules.log. Investigation showed the exception was thrown when running the save plan from DataPageSaverImpl: while attempting to run the save plan, the system does not know whether a parameter (pyGUID in this case) will be required to run the save plan or not, meaning that it can't detect any possible error in DataPageSaverImpl. The implementation instead makes a call to db.open to check if an instance exists and hence logs are thrown. To resolve the error logging, a check has been added: if the save-to class has an autogen key and the savable data page instance doesn't have the autogen key in it, the system will directly call pxCreateRecord. This will avoid a call to db.open to check if instance exists and hence no failed logs will be thrown. This partial change will work only for classes having an autogen key and in cases where the page is trying to create a record by intentionally not passing the key. | Data Integration |
INC-148944 INC-152647 INC-157081 |
604101 609603 623807 |
Email Listener auto-reply evaluation updated | After upgrade, messages were being read but not getting processed for a specific Email listener (RCEmailListerner). The error "Email flagged as an autoreply email and will not be processed" appeared in the logs. Previously, an email was not considered to be an auto-reply only when the 'auto-submitted' header didn't exist or existed with value 'no'. This caused issues with auto-forward or auto-redirect emails where 'auto-submitted:auto-generated' could be in the header. Due to this, email was marked as auto-reply and email listener stopped processing it. To resolve this, the system has been modified to mark the message as auto-reply if it finds 'auto-submitted: auto-replied' in the header, but not 'auto-submitted:auto-generated'. | Data Integration |
INC-149171 | 604558 | Improved privacy for email listener alerts | To improve privacy, the customer 'from' address will be removed from PEGA0011 alerts for email listener processing. | Data Integration |
INC-149375 | 607830 | Adjusted email listener behavior for authentication failures | After upgrade, email listeners were not staying up during connection outages. This was traced to the handling of authentication failures when trying to reconnect, and has been resolved by changing the disconnected listener state to sleeping and raising an alert for authentication failures. | Data Integration |
INC-149382 INC-150809 |
612426 611854 |
Loading timing updated for openAPI content | Open API content loading was taking too much time and interfering with working on other REST rule configurations. To resolve this, the loading of openAPI contents has been removed from the opening or saving of REST rule and shifted to lazy loading. Clicking on the openAPI tab will load the contents, and any modification in REST rule or service package rule will update the contents of openAPI when "Action->Refresh" is clicked. | Data Integration |
INC-149466 | 607611 | Fixed alias assigned to custom categories to handle Oracle limitations | When trying to access CHAT via interaction portal, Oracle SQL was fired with incorrect syntax. This was traced to an Oracle limitation of 30 characters on the length of the table name, table alias name, or column name in database versions prior to 12.2. This is caused an SQL exception if the Pega class name was more than 30 characters. To prevent this, a fixed alias has been assigned to the custom category table. | Data Integration |
INC-149849 | 612261 | DSN message mapping corrected | Original-text-html was not correctly mapped to .pyInboundEmail.pyOriginalTextHtml . This has been resolved by removing an incorrect null check encountered while setting original-text-plain mapping for the DSN message while handling a DSN ReturnedMessagePart of type message/rfc822 and updating the handling for text parts which are not null. | Data Integration |
INC-150038 | 614826 | Data Type local data storage snapshot history updated | When a History Class Data object was created, two snapshots were made - one with value and another with no value. This was traced to a 'when' condition that evaluated whether to add history when deleting a record from records editor, and this issue has been addressed by removing the condition as the history-add step takes care of checking if there is a dedicated table or not. | Data Integration |
INC-150151 | 613413 | Stream REST endpoint CORS support added | CORS support has been added to the Stream REST endpoint. If a request contains an "Origin" header, the "Access-Control-Allow-Origin" header with the origin value (*.companyname.com) will be added to the response for Stream tier (/stream/view & /stream/click) calls. | Data Integration |
INC-150271 | 608943 | Fallback added for calculating date after upgrade | After upgrade, the date value returned from Stored procedure failed to be mapped to "date" type property. Stored Procedure was used to get data from an external Oracle database and then handed to a Data Transform to map the values. When the Data was fetched from the store procedure, the date properties were mapping correctly, but when these values were mapped from the clipboard into the usecase using a Data Transform, the data for date properties was becoming corrupted. This was traced to logic differences between the versions: 8.2 generated resolveToDate while in 8.5 generates resolveToBigDecimal. In this case, resolve to big decimal was being called with aType='D' and aValue=20200918, and the 20200918 number was being interpreted as days since 1 Jan 1970 instead of as a date. This has been resolved by adding a fallback for the date calculation. | Data Integration |
INC-150610 | 627427 | Argument number exception handled for SERVICES-PAL log configuration | An issue with being unable to configure the SERVICES-PAL log file has been resolved by adding handling for an unlogged "wrong number of arguments" exception. | Data Integration |
INC-150704 | 613440 | Azure Repository connection updated | Attempting to connect to Azure blob storage using SDK v8.6.4. SDK was not working. Investigation showed that the x-ms-version:2013-08-15 was set by default; the issue has been resolved by setting the x-ms-version to 2018-03-28, and Pega will be working with Microsoft support to understand what has changed at the Azure Storage end that introduced the issue. | Data Integration |
INC-151228 | 620603 | Kafka updated | Stream node errors were seen in the log file indicating "Invalid configuration. Undefined stream provider end point." This has been resolved by updating Kafka to v1.1.0.5, which was released to address this issue in WIndows environments. | Data Integration |
INC-151426 INC-158159 |
613088 622630 |
JobScheduler initialization timing adjusted | DDS nodes were ending up in a deadlock condition on restart, preventing them from joining the cluster. This has been resolved by ensuring the JobScheduler initialization task waits for Search to start up. | Data Integration |
INC-151708 | 622068 | React-based UI app alias supports space or dash | When using the "React-based UI" (Beta test version) in App Studio, portal creation was successful but previewing the portal showed only a blank page and a 404 error code was generated. Switching to "Server rendered UI" rendered the portal as expected. Investigation showed that the alias had a space in the name which was handled as a dash (-), and this issue has been resolved by adding support for using a dash in the app alias. | Data Integration |
INC-152057 | 621211 | S3 attachment migration handles LInk-Attachment with multiple instances | After S3 attachment migration, some attachments were intermittently not opening and displaying an error relating to being unable to load the file. Investigation showed that the attachments that failed to open did not have a pxStorageType tag in the XML of the work item. After the migration is done, the corresponding Data-WorkAttach-File and Link-Attachment instances are updated to point them to the repository. In this case, multiple LInk-Attachment instances were pointing to the same Data-WorkAttach-File instances, so only one Link-Attachment was updated and all of the other instances pointing to the same Data-WorkAttach-File instance were rendered unusable. While there was a workaround of manually updating the storage type in the database, this has been resolved by updating "pzgetattachmentcontent","pzupdatesourcereferences", and "pzuploadcontenttoexternalstorage" to check whether attachment is already migrated or not using the boolean parameter "isAttachmentAlreadyMigrated" to ensure all of the other Link-Attachment instances for a particular attachment are updated. If a migration was done and all Data-WorkAttach-File instances are pointing to a repository with some Link-Attachment instances not updated, those will be updated by running the migration again. | Data Integration |
INC-152170 | 609058 | Resolved hung thread potential | Attempting to create an empty file in the S3 bucket using the S3 repository create file API was causing threads to hang in RUNNING state forever, leading to the node failing a health check and generating warnings of "Detected stale thread for node <batch node id>". This has been resolved by updating the Java concurrency classes. | Data Integration |
INC-152435 | 612995 | Hardcoded cluster password deprecated | An unneeded hardcoded cluster group password has been removed in 3.8 version of Hazelcast as this use has been deprecated. | Data Integration |
INC-152440 INC-157864 |
614333 630702 |
Compiler jars load as expected | The system was not able to pick up the Default Paths and Default Classes arguments in Configure->System->Settings->Compiler tab when attempting to use a third-party custom jar file. This was an unintended consequence of work done to address performance issues when a requested DASS instance was missing, and has been resolved by ensuring that null values are not cached where are are lookup failures. In addition, enhanced logging has been added to SystemSettingsImpl. | Data Integration |
INC-152634 | 616757 | FileListener correctly starts with debug on for FileS3Adapter | When debug was enabled for class com.pega.platform.physicaldatalayer.internal.cloud.aws.s3.FileS3Adapter, no FileListeners could be started from admin console. The error "File.FoundationDataFileIngestion - Unexpected exception caught during processing" was generated. This has been resolved with the addition of a null check on publicAPI before starting the timer. | Data Integration |
INC-153014 | 625696 | Handling added for missing archival class definitions | Handling has been added to avoid suspending the archival process when a class definition no longer exists in the system. If the system does not find a class corresponding to a configured case type, the exception generated will be logged and processing will continue with the next case type. | Data Integration |
INC-153086 | 619322 | Job scheduler tracing updated for multi-node | When attempting to trace the job scheduler using "trace any node", the error "Unable to trace trace job scheduler 'ConsumerPathRequestEvents' on node as the scheduled tracer information was reset" appeared intermittently. When Job Scheduler is configured to run on "any associated node" and the trace is designated as "trace any node" option, the implementation was running the trace on the node that received the request which may or may not be the one running the job scheduler. This was not an issue when tracing a job scheduler that was running on "all associated nodes". To ensure the correct node is found, when using "trace any node" for the job scheduler, the system will now look for the eligible node and return the requestor ID for the trace. | Data Integration |
INC-153310 | 611881 | Connectivity issue recovery made more robust | In order to ensure agents are able to recover from a problem connecting to the database due to network issues or some other transient problem, the retry logic has been updated to classify connection-related exceptions as temporary issues and retry the agent's run. |
Data Integration |
INC-153664 | 613053 | QP general metrics now disabled by default for better performance | While testing decisioning on fnx cloud platform, using an application to simulate load and using the Stream service with Kafka Instaclustr as a backend, large latency spikes over 1,000 ms were observed at around 33 second intervals from Stream writes. Investigation identified that the metrics that are gathered for every QP every 30 sec (on every single node) include a "lag" calculation that requires a heavy process operation during which more threads are spun off, causing CPU spikes. To mitigate this, the QP general metrics are now disabled by default and can be enabled using DSS. | Data Integration |
INC-153877 | 612369 | Enhanced socket timeout logging | In order to assist with diagnosing issues with socket timeouts such as a Data Flow Daily Run failing, logging to print the SocketTimeout value has been added when case info is enabled. | Data Integration |
INC-153895 | 628174 | Correspondence rule finds updated content | Activity Method Property-Set-Stream retrieved the older content of Correspondence when triggered via Queue processor. Restarting the queue processor resolved the issue until the next correspondence update, and then the cycle repeated. This has been resolved by adding an explicit thread cleanup to remove cached rules. | Data Integration |
INC-154026 | 630869 | Resolved exception from expanding deserialized Data Page | When using a data page backed by a report definition where the data page data type was Rule- and the virtual page data type was Rule-Obj-Property, serializing and deserializing the data page and then expanding the deserialized data page generated the exception "the reference .pzInsKey is not valid. Reason: .pzInsKey is mapped to class Rule-Obj-Property, which is not the primary class of the list: Rule-; must specify a group name in mapping". The issue occurred only if "Run on Data Page" on the data page was checked and "Report on descendant class instances" on the report definition was unchecked, and has been resolved by updating the runLoadActivity() of DeclarativePageDirectoryImpl to skip setting pyObjClass for the report definition if it already present, i.e. if already set by the loader activity. | Data Integration |
INC-154434 | 621568 | Additional logging added for exceptions related to agent restart | One Legacy agent, AgentBulkProcessing, was failing to restart following a database connection issue even though the 'always retry' flag was enabled. Research indicated that an exception was occurring during the evaluation of whether the agent should be stopped or rescheduled with a delay, but that exception was suppressed by an additional exception from a database connection error. This is standard Java behavior related to exceptions thrown from a finally blocks. To resolve this, a catch to improve troubleshooting has been added which will log any exception that may be suppressed by an exception thrown in finally block. | Data Integration |
INC-154884 | 614731 | Dataflow statistics will fetch 5000 results | In order to accommodate large Dataflow runs, the configuration in the report definition has been increased from pulling the first 50 records of dataflows to pulling 5000 rows, and the pagination has been removed. | Data Integration |
INC-154889 | 617189 | Corrected export of zero value as '0E-9' | File Data Set was exporting properties such as pxPriority and pyPropensity as '0E-9' if the value was 0.00000 . This has been corrected. | Data Integration |
INC-155294 INC-160198 |
626662 632905 |
Enhancement added for attachment size handling with Kafka | Attempting to send an email attachment larger than 2 MB resulted in the error "Caused by: org.apache.kafka.common.errors.RecordTooLargeException: The message is 8101592 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration." This has been resolved by updating the Stream SPI size to 2.0.5-14 to support custom producer configurations. The settings can be passed as environment parameters, for example 'Dstream.producer.max.request.size=500990'. | Data Integration |
INC-155573 | 617517 | Email Listener updated to handle double quotes | The From field in Requestdata was blank for emails that had a FROM address that contained double quotes, causing them to not be read by the email listener. This has been resolved by modifying the regex pattern to accept double quotes, square brackets, and any ASCII characters between quotes. | Data Integration |
INC-155624 | 627233 | Added check for .eml /.msg extension | Attachments with .eml /.msg extensions were treated as FileAttachments by the MS Graph API and generating a classcastexception. To resolve this, a check has been added to identify the attachment along with content type so .eml will be correctly recognized. | Data Integration |
INC-155851 INC-160103 |
626046 627602 |
REST connector creation errors resolved | Attempting to create REST Connectors via the dev studio wizard using live endpoint invocation as "Add a REST response" was failing with a java.util.LinkedList error. This had a workaround of either running the REST wizard with file upload samples or configuring them directly on the rule form. In addition, REST Connectors were not executing if both the DEBUG level logging was turned on and the request had no headers, which had a workaround of using any other logging level (INFO, ERROR). These issues have been resolved by updating the system such that pyResponseHeaders are populated appropriately, and if there are no headers in the request, the system will not try to remove the trailing comma that would have been introduced in the oLog message. | Data Integration |
INC-156588 | 621968 | File Listener creates pegaAPI reference for indirect reference | When using a constant for the source location of a file, the listener had no problems starting but a severe guardrail warning appeared indicating "Source location should use D_pxGetApplicationSettingValue instead of a constant value". When the source location was changed to point to a data page as suggested, the file listener would not start. This was traced to a null pointer exception caused by the listener running on a thread that did have a reference to publicAPI as required to get the indirect reference to the property, and has been resolved by adding code to create pegaAPI (if not present) when an indirect reference is present. | Data Integration |
INC-158308 | 624368 | Cleaned up tracer exceptions for requestor inactivity | After upgrade, the exception "No records were found for the lookup with keys : pyEventType=REQUESTOR-INACTIVITY" was appearing multiple times in tracer for Data-UsageEventType class. This has been resolved by changing the conditions order to decrease the number of data page loads. | Data Integration |
INC-158314 | 630718 | Listener with MSGraph reads all subfolders | When an email account had more than 10 subfolders, configuring an email listener with MSGraph to read subfolders 11+ was not working. This was traced to the MSGraph API displaying only the top 10 folders under one parent folder by default, preventing the Email Listener from reading folders beyond that when a MSGraph configuration was used for inbound email. To resolve this, a filter has been implemented across all the pages to read all of the folders. | Data Integration |
INC-158689 | 628861 | #resolvedissues note: Attachments successfully fetched with CMIS |
After upgrade from Pega v7.2 to Pega v8.5, trying to fetch an attachment from CMIS storage and attach it to an email generated an exception. This was traced to a repository name null check which always evaluated to true when used with CMIS, and has been resolved by removing the null check from abstractRepo. | Data Integration |
INC-159143 | 628922 | Methods updated to prevent rounding of JSON response decimals | When using a REST connector for an outside service, precision numbers in the JSON response were being rounded or truncated when parsed for the DataSource page. For example, a JSON message with a value like 6045.900000000000000001 became rounded to 6045.9. This happened in both methods used for fast and non-fast processing, and has been resolved by treating the decimal value as a string and then creating a BigDecimal object out of it to avoid truncation in the fast processing scenario, and by adding mapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); for the non-fast processing scenario. | Data Integration |
INC-159736 | 630045 | Queue processor alert threshold error resolved | After upgrade from v8.2.6 to v8.5.2, all queue processors reported the error "Threshold Default - 2000.0 is not a valid integer value". The issue was related to Java type promotion from long to double; since the ClipboardPage.setValue() method has two overloaded versions accepting int or double, the double type was being selected for the long type and returning 2000.0 instead of 2000 for alertConfig.getThreshold(). This has been resolved by updating the system to specify setValue((int)alertConfig.getThreshold()) in the pzLoadQueueProcessorAlertDefaults activity. | Data Integration |
INC-159879 | 627830 | Race condition resolved for input/output pipe streams | Writing to S3 using file data set was failing with the error "Exception occurred while uploading file". The system was relying on PipedInputStream for getting the data from the file while uploading, which needs to be connected to PipedOutputStream which holds the data to be uploaded. Investigation showed a race condition was occurring where for some use cases the reading of inputStream was happening before the connection of I/P and O/P streams, resulting in a "Pipe not connected" error. This has been resolved. | Data Integration |
INC-160767 | 628373 | Email headers correctly mapped when using MSGraph | The value of "Send Date" was not correctly populated when using MSGraph instead of IMAP, causing the Email Listener to fail. Microsoft populates the "sendDateTime" field in the JSON with the value of the RFC 822 email header "Date:", but this value was not being passed to Java object of type "Message" as part of the query. To resolve this, ReceivedDateTime and SentDatetime have been added in the select filter of getMessagebymessageID. | Data Integration |
INC-162198 | 628703 | Tracelist cleared to address parser exception in REST Service | In a requestor pool of mixed types, HTTP and REST, the alert data was not initialized properly if there was a parse exception due to invalid data in the incoming payload. For example, last_input, first_activity, and last_step could all be left over from the prior HTTP service request. This was caused by the system pulling in seemingly unrelated activities for the "Last activity called" in the stack trace of a service when a single alert was created by two different service types which were sharing the same package, and has been resolved by explicitly clearing the tracelist for the service to prevent inaccurate information being reported in the logs. | Data Integration |
INC-162217 | 635889 | Default sorting with Pagination, Data Page and Report Definition corrected | After configuring a section with the table sourced from a data page and personalizing the table with the pagination and sort-by features available in a report definition, the table content sourced with the data page was not sorting the data. This has been resolved by updating the pxRetrieveReportDefinition activity so that the sort order for queryable data pages will not be reset for a first-time request. | Data Integration |
INC-163295 | 631472 | Cookie filtering logic updated to better handle upgraded environments | After upgrade from Pega 8.3 to Pega 8.5, login issues were seen if cookie/HttpOnly was set to 'true' and the cookie was sent as part of headers based on the prconfig setting. This was due to handling changes, and has been resolved by updating the cookie filter logic. | Data Integration |
INC-163791 | 633298 | JobScheduler time zone display expanded | The Time zone control on the JobScheduler rule form displayed only the first few characters for the time zone. This was due to a hard-coded CSS setting for the width, and has been resolved. | Data Integration |
INC-163863 | 632427 | Monthly agents run correctly on non-English locales | Nodes with non-English locales were not starting when using an Agent with a monthly execution pattern. This was due to incorrect handling of the user locale, and has been resolved. | Data Integration |
INC-163898 | 635397 | DASS added to configure Property Query inclusion in ADM flows | After upgrade, ADM flows were failing to compile if the model had more than 300 predictors. Investigation showed that the generated code of the rule included both the Property Query as well as scaler reference, causing the generated code to exceed the maximum size. This was due to a change instituted to support the move from scaler references to Property Queries for performance reasons, and has been resolved by adding a DASS configuration which can be adjusted to disable the Property Query inclusion. By default the value of this DASS is false. | Data Integration |
INC-163985 | 635145 | Class mapped to CustomerData is incrementally indexed as expected | When using a class which mapped to customerdata, instances that were added/updated were not automatically getting indexed unless a full reindex was performed. If the class mapping was changed from customerdata to pegadata then the incremental indexing was done. To resolve this, the UpdateProcessor class that resolves CustomerData to the correct database name has been updated to use PegaData. ConfigurationMapImpl contains the resolution mapping and a call is made to ConfigurationMapImpl to retrieve the correct database name. | Data Integration |
INC-164472 | 635113 | Performance improvements for archiving and purging | Archiving and purging jobs were not working in Prod. Investigation showed this was caused by the system timing out. To resolve this, improvements have been made to purging by batching the deletions and refactoring the Where condition to simplify the complex expression queries that determine the cases to be archived. | Data Integration |
INC-164514 | 635085 | Unnecessary logging removed from startup | The error "SettingMisusageFailure: Database is null" was repeatedly being logged following an update that consolidated error-handling logic for using a third-party custom jar file during the compiling process. This was an unnecessary message for this scenario as the database is often null at the early stages of startup, and SystemSettingsImpl has been updated to skip logging this error. | Data Integration |
INC-85182 | 622326 | Process added to clear unneeded requestors from shared pools | Shared service requestor pools were persistently showing a growing count of active requestors when a service was under heavy use, potentially leading to timeouts and exceptions. Investigation showed requestors were moving from active to inactive without updating the pool manager, causing service requestor pools to be held in an inconsistent state with active requestor pools not going down even after completion of service request. To resolve this, a job scheduler process has been added to stabilize the service requestor pools heuristically. | Data Integration |
Decision Management
8.6 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-128342 | 594185 | Improved cleanup for adm_response_meta_info | The adm_commitlog.adm_response_meta_info column family was growing, leading to gradual increase in CPU utilization on the Adaptive Decision Management (ADM) nodes over time. Investigation showed that the compaction on the adm_response_meta_info table was not being triggered by the ADM service, and the compaction did not remove rows that belonged to models that had been deleted. To resolve this, compaction of the adm_response_meta_info table has been moved from the ADM client nodes to the ADM service nodes, which will correctly trigger the compaction on a predefined schedule. The compaction logic has also been refactored to remove rows that belong to models that have been deleted. | Decision Management |
INC-136634 | 591679 | Thread contention resolved for InteractionHistoryQuery | High thread contention was observed while running Inbound load tests. This was traced to pzLoadInteractionHistory invoking a generated strategy to retrieve ihFields from InteractionHistoryQuery using the getUsedInteractionHistoryFields() method: because this method is synchronized, it caused a bottleneck. To resolve this, the synchronized methods have been replaced with the appropriate data structures. | Decision Management |
INC-136969 | 585547 | Section and Paragraph rule types added to Revision Manager | An enhancement has been made to add support for section and paragraph rule types in revision management. With this change, the sections and paragraph rule types can be added to overlay and can be added to change requests and modified. | Decision Management |
INC-138037 | 586595 | Strategy handling updated for very large systems using IH summary | When a Strategy in a Real-time dataflow used IH Summary on a system with more than 5000 groups for one eventKey, the message "Error retrieving aggregates from Cassandra KVS" intermittently appeared. Investigation showed that if the number of result rows was greater than the FETCH_SIZE (set to 5000), it meant another read to Cassandra was required and an exception was generated. To resolve this, updates have been made so that instead of returning maps, the system will return iterators and change them to map on the calling thread. | Decision Management |
INC-138103 INC-139371 INC-141579 INC-142674 |
585640 588236 591851 594495 |
Enhancement added for node heartbeat recovery process | Nodes were not showing up in the admin portal even though they were up and running and could be seen in the pr_sys_statusnodes table. The exception "An exception was encountered while invoking the cluster membership listener callback" was seen. All nodes became visible again after multiple restarts. The root cause was traced back to a temporary database connectivity problem. The database itself was fine according to database monitoring reports, but a network problem, a slow database query, or another issue prevented Pega from establishing a connection for more than a minute. An enhancement has been made to resolve this: if a node becomes unhealthy due to the service registry missing due to a failed heartbeat, the heartbeat will try to recover after 60 seconds and keep trying every 30 seconds until it succeeds. | Decision Management |
INC-138501 | 592288 | Added VBD support for CSRF token setting | Attempting to open any VBD reports in the marketing portal for a simulation test caused the user to be logged out. Investigation showed that this happened when CSRF token check was enabled in System > Settings > Cross-Site Request Forgery, and was caused by the planner not passing the CSRF tokens in its Ajax calls. To resolve this, handling for the CSRF tokens has been added to the necessary Ajax calls. | Decision Management |
INC-139574 | 606142 | Exception handling added for dataflow rule assembly | A Blue Screen error was coming up in the Customer Service Web Chat Application after an agent accepted the incoming chat request and sent messages in the chatbox in the Interaction portal. This has been resolved by adding handling for exceptions that occur when inlining templates during dataflow rule assembly, when inlining templates, we weren't handling exceptions properly. | Decision Management |
INC-140160 | 597036 | NLP model update reflected on utility nodes | After training models on a web node, model updates were not reflected in the email listeners running on the utility nodes. This was traced to the implementation of the model storage using obj-save, which does not propagate the static content on nodes apart from where it was saved. To resolve this, the implementation has been updated to use WBSave which clears static content on all the nodes. | Decision Management |
INC-140210 | 591884 | RUTA scripting documentation updated | Additional documentation has been added around the variables available for RUTA scripts for entity extraction. This includes information on explicitly clearing the variables that are declared in the scripts, which may be necessary for ensuring the correct entity extraction. https://community.pega.com/knowledgebase/articles/decision-management-o… |
Decision Management |
INC-140821 | 600748 | Resolved Intermittent Access Group Issue for GetBundleEventDecisionDetails | When using a REST service that calls the GetBundleEventDecisionDetails activity and dataflow to send the treatment in multiple channels, intermittent access issue related errors appeared while running the activity in logs for multiple customers. This was traced to a missed use case for authentication, and has been resolved. | Decision Management |
INC-142084 | 599874 | Support added for expression in strategy scorecards | When invoking REST against a dataflow that had a strategy containing a scorecard that used an expression and the "Include model explanations option" was enabled in the Strategy configuration, the system failed with the error "PropertyValueInvalid .pxMaxScore Cannot cast the value (unknown) to double". This was traced to the Scorecard explanations failing during serialization when an expression was used, and has been corrected. | Decision Management |
INC-142118 | 597313 | Data Migration Import/Export made more resilient | The entire data migration operation (export or import) was marked as "FAILED" even if the operation failed for just one type of data. While managing the failure, the operation deleted any completed data flow runs as part of the clean-up and only retained the failed data flow runs for use in further analysis. Because the queued runs could not be deleted, the data migration case became a broken process. At the root of the issue, the data export work item was failing due to one or more DSM service nodes being non-functional based on a validation failure in the case type that runs a check for the presence of functional DSM nodes before starting the data migration operation. This validation can return false negatives, especially on Cloud where the nodes are usually swapped seamlessly without the function realizing it. In such cases, the validation function returned false despite the DSM service nodes being up and running. This has been resolved by adding handling for the failed data migration case by stopping and deleting the open data flows and by disabling the validation which checks for functional nodes. | Decision Management |
INC-142216 | 596667 | VBD performance improvements | Performance issues were seen when running a decision funnel simulation. As part of the simulation, a VBD collection was created on the fly to store the metrics and linked to the simulation. Before each insert, which happened in batches of 500 records, there was a check if such collection exists. This check was required in earlier versions as the process relied on the VBD service being running, and the run would fail otherwise. Recently, VBD handling became more resilient and was updated to allow inserts even if the VBD server is down. If the VBD service is stopped before the simulation is completed, the simulation will continue writing records. When the VBD service starts again, it reads the backlog, and the simulation displays the final results. To adapt to this resiliency and improve performance, the system has been updated so that the VBD collection is not created and checked before the insert call, but only when the simulation is run or scheduled. | Decision Management |
INC-142669 | 599061 | JMX exception logging corrected | Although the process of decommissioning a Cassandra node worked correctly, JMX errors were visible in the logs during the operation. This has been corrected. | Decision Management |
INC-143121 | 610733 | Timeout for loading predictors made configurable | When using an extremely large number of predictors, the Report definition pzADMPredictorsFilter was suffering timeouts due to the time for loading predictors from the database exceeding the time threshold allowed. This has been resolved by marking the rule as editable to allow custom setting of the threshold according to need. | Decision Management |
INC-143441 | 608897 | Strategy Simulation Runs made more resilient | Intermittently, a decision funnel simulation would fail with particular strategy logic or a particular StrategyTracker would not contain the results for all components so the system would not be able to calculate input SRs. Handling has now been added to make the simulations more resilient so they will not fail with a null pointer error due to incomplete strategy inputs. | Decision Management |
INC-147692 INC-158686 |
605279 628553 |
Date properties on DSMClipboardPages formatted by determined type | When data flow data was sourced from a File type dataset, the destination data showed 2020101+ for a valid date like 20201016. This has been resolved by modifying the way Date properties are read for DSMClipboardPages: properties which are instances of Date will be formatted considering the type, which will be deduced with usage of "getType" method. Invocation of this method can decrease performance of DSMClipboardPages, so it will be executed only when property will be of date type. | Decision Management |
INC-148006 | 605582 | Enhancements added for very heavy use of strategy decision logic | Recent updates were made to improve memory performance for scenarios where a single request primary page had tens of thousands of pages under an embedded page list property and the decision logic involved a strategy running on all the pages in that page list. To further improve performance, the array iterator has been modified and a DSS has been added that makes the threshold (50) in SSAExecutionContextIteratorFactory tunable. | Decision Management |
INC-148585 | 617716 | Revision modified to skip empty ruleset version | When submitting a revision, the package created was empty and a ruleset version with empty label and version was created. The error "ArrayIndexOutOfBoundsException" was noted in the alert logs. This exception was traced to pzgetnextrulesetversion and was caused by the ruleset version being passed as empty. This has been resolved by setting an error message on the workpage when the ruleset version is empty, so the revision package will not proceed. | Decision Management |
INC-148899 | 615701 | Adaptive models update correctly | Some models had the recorded responses column updated, but the models (number of Positive, Negative and Processed Responses) were not updated. Investigation showed that deleting the modelRuleConfiguration through the stateManager/client did not delete modelFactories related to the configuration. If a new configuration came in with a different algorithm, the update issue occurred. This has been resolved by reseting the configuration according to its factory in that specific case. | Decision Management |
INC-150854 | 608369 | Logic optimization disabled in offers | Offers that should not be eligible to customers were passing through even though the offer was narrowed down to using “OR” conditions in the Engagement policies. This was traced to the logic optimization ignoring precedence, and has been resolved by disabling the optimization. | Decision Management |
INC-150873 | 612895 | Performance improvement for saving ADM model rule | Saving an ADM model rule generated a heap dump. The stack trace from the heap dump showed a thread consuming the maximum memory (4.7 GB of memory). Configurations on all factories are updated when a model rule is saved, but at the time of development it was not expected that there would be a lot of factories in a Dev environment so the system was loading all existing factories simultaneously into memory and updating configurations on them. To improve performance, an update has been made which will now sequentially load factories and update the configuration. | Decision Management |
INC-151037 | 609624 | Enhanced ADM diagnostic logging | Diagnostic logging enhancements have been added in order to better identify issues related to ADM models not being created or where learning is impacted. | Decision Management |
INC-151421 | 614595 | Adaptive Model Save-as works With Predictor Type | A predictor change which was accounted for in a previous adaptive model rule version did not work on future save-as. This was traced to a missed use case that when the value 'pyPrevPredTransformation' is empty, validation on that is unnecessary. This has been resolved by adding an 'if' condition in the validation activity. | Decision Management |
INC-153223 | 613704 | DSS added to set Cassandra query page size limit | When a site with a large number of nodes captured responses to the commit log, it was possible for nodes run out of heap space and cause system instability. This was due to the Cassandra query not having a specified page size, so the cluster-wide default setting of 5000 created an issue for large sites which could have over 150 nodes capturing responses. This has been resolved by specifying the page size on the Cassandra query that used to read responses from the commit log. This value will be set dynamically with a DSS to not read more than n responses from all shards combined in a single batch. | Decision Management |
INC-154128 | 614296 | High thread contention in StrategySSAProgram resolved | While Running inbound campaigns during peak times, high contention was observed around "threadSafeWrite" and "threadSafeRead". To resolve this and improve performance, the code around handling write locks has been updated. | Decision Management |
INC-155822 | 618270 | Locking added to avoid null pointer exception for auto-populate property | After configuring the auto populate property "OrgProduct" which referred to a data page, the system experiencing heavy load led to the property not getting properly initialized. This resulted in a WrongModeException and NullPointerException. To resolve this, the system has been updated to lock the requestor when Queue Processors execute their activity. This will prevent race conditions and concurrent modifications if other threads are accessing the same requestor. | Decision Management |
INC-155908 | 625217 | Logic updated for handling future events in strategy tests | After upgrade, there was an unexpected exception "EventStrategy error in SerializeUtil: Integer too large to read, Size:48" while retrieving the final BBK aggregate results during strategy tests with several different pre-existing customerIDs, and no results were returned. When aggregations are read, there is a check to make sure the system does not return empty records. The logic for determining whether there is empty data in the record was mistakenly reading the event count from the wrong bytes which were part of a date for 2023. This was due to the second byte of the year date in hex being interpreted as the start of the event count. As a workaround, results are returned if no pxOutcomeTime dates in the database are more than a year in advance along with all aggregate datasets being recreated on production immediately after upgrade from v8.1 to v8.5. To resolve this issue going forward, the logic has been updated to handle the errors, and future records will trigger a warning in the log with information such as "Event time greater than current time in clipboard page. Event Time = Mon Mar 10 14:46:27 UTC 2025, Current Time = Tue Feb 09 14:18:49 UTC 2021. Ignoring event...". | Decision Management |
INC-156299 | 619712 | "Daily" ADM monitoring setting now equals seven days a week | Previously, the setting "daily" for monitoring ADM activity set the schedule only for weekdays. While there was a workaround of selecting Dev Studio -> Records -> SysAdmin -> Agent Schedule -> Pega-DecisionEngine -> ADMSnapshot -> Advanced, select Daily with Every 1 day option to capture the snapshot for seven days a week, this has been resolved by modifying the default "daily" snapshot agent interval definition to mean every calendar day. | Decision Management |
INC-156818 | 628466 | Materialization uses time limit boundary for query | After turning on Materialization for pyIHSummary and OfferOutcomesForPast45Days datasets, an SQL query was taking an excessive amount of time and causing multiple alerts in the logs. Investigation traced the issue to database partitioning, specifically that running a query where the pyOutcomeTime range spanned multiple partitions was causing the indexes for all partitions in the range to be opened. To resolve this, the query has been updated with a DSS to support a partition size of min(pxOutcomeTime) to limit the time range to querying day by day, or hour by hour, or any other chronology unit specified. If there are no records for the current limit, then it will look at the next partition. This should prevent the query from needing to open more than 1 or 2 partitions. | Decision Management |
INC-157097 | 619997 | REGEX In Expression Builder matches runtime values | An expression builder statement was evaluating differently at runtime vs at testing. This was traced to a difference in escape character handling between old legacy code and the new strategy runtime engine, and has been resolved by ensuring the strategy runtime engine is supporting escape character use cases. | Decision Management |
INC-157194 | 620154 | CheckRevisionDeployment requires authentication | Authentication has been added to the CheckRevisionDeployment service package. | Decision Management |
INC-158813 | 629485 | Updated report handling for simulations using database output | When running a simulation with a database table as the output destination, the pxObjClass property was not populating with a value in the results. This caused sub-reports to not be populated with data. Investigation showed that issue happened when the simulation output destination database table was inferred as an external table due to not having an exposed column for pzinskey. To resolve this, the pxObjClass and pxCreateDateTime properties, which were added to simulation output destination tables for compatibility with Report browser, will not be added to those tables when they are created. Instead, to address compatibility issues of simulation output destination classes with Report browse in the Customer Decision Hub, the pyDefaultSummaryReport has been brought up into the Data-Decision-StrategyExecution-ResultOutput class from the @baseclass. | Decision Management |
INC-159332 | 629618 | Logic updated for finding 'Last' in Interaction History | The 'LastReponseDate' and 'LastInteractionId' in the Interaction History summary data set were null. Investigation showed that reusing the ESM component in the aggregation dataset caused any assumptions made during the optimization of ESM to not be true anymore. To resolve this, the logic of the Last aggregation has been modified to not rely on a Last event which might not be stored in-state (such as optimization), but rather to use the list of events which is always stored. | Decision Management |
INC-160277 | 628159 | Implementation updated to ensure consistent compareDatesByDays results | When using compareDatesByDays in a filter shape within a strategy, the results of the expression were different between the expression test and the strategy test run. This was traced to a difference in handling that became visible after upgrade; giving a negative number for the numberOfDays parameter worked differently in v7.4 than in v8.4. The SSA implementation of compareDatesByDays always worked with the absolute difference in days between dates, whereas the Java function in Pega used in expressions did not, and would compare negative differences as well. To restore the expected behavior, the SSA implementation has been adjusted to not work with absolute differences, and tests have been added to ensure equal results for the Java function in Pega and the SSA implementation. | Decision Management |
INC-160887 | 629271 | Resolved strategy optimization exception | After upgrade from v8.2 to v8.5, Customer Decision Hub strategy failures were seen in the data join used with a datapage/page list to fetch some results. Errors appeared in the logs and UI. The exception indicated that the Strategy Parser for the new execution engine (SSA) was not able to parse and inline the used expression. Normally this exception would be caught in subsequent processing and the component where the exception is used would fall back to legacy so as to not affect the runtime behavior, but this scenario triggered a corner case inside the parsing logic for Data Join and Exclusion shape which caused the exception and stopped the process. To work around this issue, the Data Join configuration can be split into two shapes: create a new Data Import shape to only import the Page list, e.g. 'Page.pxResults', then on the original Data Join component, instead of joining the 'Page.pxResults', join with the new Data Import shape. This issue has been resolved by catching the exception when compiling the Data Join component and properly falling back to the Data Join shape. | Decision Management |
INC-161604 | 631764 | Corrected unreleased database connections | When using a custom activity that calls Dataset-execute on a database table dataset, the DSS Pega-Engine.prconfig/classmap/usemergestatement/default was set to false and the prepared statement for database table dataset was failing. Upon the failure, an exception was generated that prevented the database connection from being released. This has been corrected. | Decision Management |
INC-161604 | 631762 | Node stability improved when adding relevant records | A node was going down after maxing out the database connection pool whenever the inbound service call was invoked. This was traced to several relevant record-related database queries being invoked within a short time for marking 'when' rules referenced in the proposition filter rule as relevant records. This has been resolved by adding 'when' rules as Relevant Records based on a DSS and not adding auto-generated 'when' rules at all. | Decision Management |
INC-163723 INC-166354 |
633441 637300 |
Queue Processors made more robust | After upgrade, multiple queue processors were not running as expected. Attempting to restart them generated an error. Investigation showed that the real time data flow runs were not picking up or accepting assignments because the local node was under the impression it was still processing data. In this case, the need to synchronize the state of multiple threads caused the queue processors to become stuck in an initializing state due to a race condition that caused the data flow engine to think this run still had threads running when all threads were already stopped. To resolve this, the callback handling has been simplified and made more robust. In addition, in some cases the data flow leader node would believe the service nodes did not accept assignments even when they did. This occurred if many runs and nodes were involved, and was traced to an implicit limit on the NativeSQL query used to read the data to see which assignments were accepted. To resolve this, the key-value store in the Service Registry has been modified to allow a query of more than 500 entries at once. | Decision Management |
INC-164581 | 634154 | Import UI option updated to handle data import for upgrades | After upgrade from Pega 8.1 to 8.5, importing data into the datasets using the Actions->Import UI option was not working. This was due to the previous save operation used in import being deprecated, and has been resolved by instituting a new save operation in import to handle this scenario. | Decision Management |
Low-Code Application Development
8.6 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-128923 | 594161 | Cross site scripting security update | Cross site scripting protections have been added to OpenNoteDetails. | Low-code app development |
INC-132590 | 590493 | Exported Excel from Decision Table wraps correctly | After upgrade, entries were displayed in a single line on exporting a decision table to Excel despite WrapText cell formatting being set. This was traced to the WrapText cell formatting set under the UpdateGridCells() function being overridden inside an addDataFormat() function callas part of DecisionTableWorkBookConverter.java. This has been resolved by adding the new function "setWorkAreaCellStyles" and calling it after generateWorkbook() function call of super class (AbstractWorkBookConverter.java). | Low-code app development |
INC-132930 | 600294 | Updated UpdateDateTime handling for branch merge SaveAs | After Pega API's standard branch/merge service was consumed, the service was not returning response as expected due to the system encountering listing conflicts on the branch merge. The error "a rule in lower version has been updated more recently than when the checkout was created" was generated. This has been resolved by updating the Record API (pxUpdateRecord / pxCheckIfStale) to handle setting pxMergedSynchronized property to the pxUpdateDateTime of the base rule instance when doing a Save As into a branch ruleset from a non-branch ruleset / non personal ruleset. Please note - this fix is only applicable to Record API SaveAs, and will not work if customized logic is used to perform the SaveAs. | Low-code app development |
INC-136186 | 592969 | JAWS reads the name of the field/instructions | JAWS was not reading the name of the field/instructions in a work group. This has been corrected. | Low-code app development |
INC-136187 | 596093 | Mask hidden as expected in small window/tablet view with Dragon | When using Dragon in a small window/tablet view, the mask was not getting removed as expected. Performing a mouse click on the tab was successful for hiding it. To resolve this, Data-portal!pzProfileMenu has been modified to run the script removeScreenLayoutMask after clicking Profile, Preferences, Operator, Access Group, and My Favorites > Edit . | Low-code app development |
INC-139300 INC-139867 |
590272 588758 |
Additional security for encrypted passwords | Handling and cleanup has been updated for encrypted values to enhance security. | Low-code app development |
INC-139337 | 595221 | RefreshRequestors security update | Security improvements have been added for RefreshRequestors. | Low-code app development |
INC-140272 | 595253 | Report definition performance improvement | Performance issues were seen with the pzOperatorsByWorkGroup report definition. This was traced to the report definition is adding an UPPER function for edit filter properties which caused it to take more time to run when combined with an ignore case check in the filters of the RD. This has been corrected. | Low-code app development |
INC-140789 | 597800 | Added handling for validation after inactivity | A Validate rule was configured to add an error to a field if MyPageList had any page where MyProperty was not empty. The rule worked correctly if there was no pause in using the UI, but if the UI was left for a few minutes and then the field was changed, the Validate rule always evaluated the expression to true. This has been resolved by adding a null check in Utilities.countInPageList() function. | Low-code app development |
INC-141261 | 595465 | Document generation corrected for table outcomes | An issue with generating a Microsoft Word file of table outcomes using the Document generate smart shape was traced to the system not being able to parse the necessary details from a referenced page group. This was caused by a syntax error for regex in the document file, and has been resolved. | Low-code app development |
INC-141296 | 592473 | Log-access security updated | Access control has been updated for Log-Usage class. | Low-code app development |
INC-142223 | 598646 | Handling added for new case type using reuse case life cycle | Creating a new Case Type in a branch ruleset using the 'Reuse case life cycle' option was not working, and the error "branch rulseset not a candidate" was generated. pxCreateCaseDataPages that are called as part of creating a case rely on Param.RuleSetName; generally this parameter is set in the param page when other assets are created. When Reuse case life cycle was selected, other assets were not created and param.RuleSetname was not set. This affected pxCreateCaseDataPages when branch parameter was provided. This was a missed use case, and has been resolved by setting param.RuleSetName from param.ruleset to fix the issue. | Low-code app development |
INC-143136 INC-151102 |
604015 615014 |
Cross site scripting update | Cross site scripting protections have been updated in Designer Studio. | Low-code app development |
INC-143193 | 595939 | Handling added for UI overlap issue | Elements of the window "Test Case Record Configuration" were shifted into one another when the Application name was too long that it overlapped with the other UI Elements. This has been resolved by adding a style sheet with overflow hidden. | Low-code app development |
INC-146098 INC-146098 |
607792 633724 |
Keyboard shortcuts work in Decision Trees | Keyboard short cuts in Decision Trees used to copy/paste by holding ctrl button in Decision Trees were not working. This was an unintended side effect related to changing non-auto grid to an auto-generated hierarchical table to make the Decision tree rule form multi-browser compatible, and has been resolved by adding cut/copy/paste/insert-after/insert-before functionality to the decision tree context menu. | Low-code app development |
INC-146424 | 602897 | Keyboard users can select DSS records with enter key | Keyboard accessible users were not able to select DSS records using the keyboard. This has been resolved by adding the action "Open selected item to the Enter event for the section pzViewInstances. | Low-code app development |
INC-148458 INC-152321 |
623779 612364 |
docx4j libraries updated | After performing a Microsoft Word merge with a Word template, the error “Word found unreadable content in….” appeared while opening the Word document. This was traced to the older versions of docx4j not handling the latest Microsoft Word features, and has been resolved by upgrading the docx4j and related jars. | Low-code app development |
INC-148853 | 609317 | Corrected password comparison handling for CopyMerge Ruleset Wizard | When running the CopyMerge Ruleset Wizard, entering the password failed with the error "pyPassword: Invalid Password for" Temp:01-01-01 for each ruleset. Investigation showed that the system was calling an activity which encrypted the user input, causing the comparison with the stored password of the system to fail the match. This has been resolved by removing the extra encryption so the call to the comparison evaluates correctly. | Low-code app development |
INC-149728 | 608106 | Application wizard security updated | A user having PegaRULES:User1 role only was able to run the Create Application wizard until an authorization block was reached, yet some rules were created. No operator records were created as part of this process. This was traced to code left in place after the creation of pxAppConfig and pzAppConfig portals, and has been resolved. The New Application wizard UI will display a message to a user when they lack access to build a new application, and an error will be displayed for any attempt to create a new application directly via pzCreateNewApplication to address a scenario where a user might be trying to call the activity without the front end. | Low-code app development |
INC-150039 | 608043 | Adjusted validation of literal value of a parameter | When mapping a parameterized when rule to the proposition filter, parameters passed from the proposition filter page were not getting flown to the when rule. This was caused by special character validation for a literal value of a parameter which necessitated putting the parameter value within quotes and which resulted in a parameter value mismatch at run time. To support this use, this validation has been disabled as parameter values would not get included within quotes. This change does not have any impact on when rule or proposition filter rules java generation. | Low-code app development |
INC-150845 | 606343 | OpenRule logic updated for GetRuleInfo | The exception "InsufficientPrivileges:RuleExecutionDenied RULE-OBJ-ACTIVITY @BASECLASS PZGETRULEINFO" was thrown for some access groups when attempting to view a section from the end-user perspective on the Opportunity screen. Investigation showed this happened when a section had a table in which "Optimize code" was unchecked. If "Optimize code" was checked, then the exception was not thrown. This was traced to recent security changes in pzGetRuleInfo which affected the BAC registration process, and has been resolved by updating the way the openRule action registration logic invokes the activity. | Low-code app development |
INC-151662 | 626577 | Handling added for application which includes production ruleset | When creating the Email channel or Webchat channel, the Text Analyzer and its respective class (Data-Decision-Request-MCP-WebChat-xxxxx) was being saved in the ruleset of the built-on application while there were rulesets open in the top application. This was a missed use case, and has been resolved by updating the logic to account for the scenario where an application includes a production ruleset. |
Low-code app development |
INC-151669 | 618043 | Formulas corrected for GenerateExcelFile | After upgrade, using pxGenerateExcelFile to generate an Excel file resulted in some formulas and values not displaying. This scenario used an Excel template with two tabs - one showing direct page values and the second displaying the calculated values of first sheet. In the exported file, the formula was not getting evaluated unless and until the cell was activated with the enter key. This is a known limitation, and a temporary solution has been made here to add parameters that force the formula evaluations on the saved Excel document when editing is turned on. A more complete solution will be included in the next patch release. | Low-code app development |
INC-153697 | 625983 | Dragon successfully navigates to user profile icon | Attempting to navigate to the user profile icon when using Dragon software was not working. This is an issue with how Dragon interacts with the "< i >" element operator icon, and has been resolved by replacing "< i >" with a button and appropriate aria label. | Low-code app development |
INC-154524 | 613893 | SortColumn direct invocation set to true | Sorting on email account rules was generating an error. This was traced to previous security work that removed the ability to use direct invocation of the activity sortColumn from the client or a service, and has been resolved by setting "Allow direct invocation" to be true as well as adding the "AllFlows" (based on @baseclass) privilege. | Low-code app development |
INC-155401 | 630449 | Circumstance Definition rules save correctly | After upgrade, attempting to save any circumstance definition that used multiple "or" conditions consistently failed during conflict detection. This was an inadvertent side effect of work done to resolve an out of memory error and has been resolved by modifying the Rule-Declare-!testConsistency java step: "int numRows = numOrs;" to"int numRows = numSubRows;". |
Low-code app development |
INC-156740 | 619770 | Show versions and circumstances in View references feature repaired | The "show versions and circumstances" check box in the Pega Rule Referencing Tool was not showing the circumstanced rules. This was a missed use case from the refactoring of the referencing rules, and has been resolved. | Low-code app development |
INC-156743 INC-157634 |
618999 619691 |
Cross site scripting protections updated | Cross site scripting filtering has been added to IDs related to login. | Low-code app development |
INC-159238 | 624305 | Handling added for identical property and page names in test case recording | When trying to record a test case, the error "WrongModeException: The property PostProsSnapOfWorkpage.Name was of mode String while com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getPageValue() was expecting Page mode" was generated. This was an edge case caused by property and page names being the same on the "PostProsSanpOfWorkPage" page, and has been resolved by accessing the page with the full path so it has the proper prefix. | Low-code app development |
INC-160437 | 629645 | Upgrade compatibility enhanced for Pega-ConditionBuilder ruleset | In Pega v8.2.5, the Pega-ConditionBuilder ruleset was added as part of the PegaMarketing application. When these enhancements were promoted to a platform ruleset beginning with Pega v8.4, the function names were modified with PZ/PX prefixes due to the corresponding validation standards in place for rules created in platform rulesets. Unfortunately, this introduced an upgrade impact. Due to the function name change, strategies failed when attempting to evaluate the functions configured in the filter component. Eg: @string.ContainsIgnoreCase function is part of the Pega-ConditionBuilder ruleset, which was not available. To resolve this, the following function aliases have been created in this release: ContainsIgnoreCase StartsWithIgnoreCase EndsWithIgnoreCase CompareDateTimeToSymbolicDate In addition, the pzGetFBData activity has been modified to ensure these function aliases are upgraded to the most current version available in the system and that assembly of the When rule or AccessWhen rules created in v8.2.5 perform as expected after Revalidate & Save or direct rule save actions performed after upgrade. |
Low-code app development |
INC-160446 | 627380 | Updated TimeZone dropdown control | The RF_Timezonelist control was deprecated in Pega v8.4 and withdrawn in Pega v8.5 and a replacement datapage was provided to give the same list of timezones. Unfortunately, some references were not corrected to point to the replacement, causing an issue with custom functions that were attempting to set the time zone on an OperatorID calendar instance in order to calculate goal and deadline properties before setting the SLA. The work has been reviewed and updated to ensure all referencing rules are now correctly replacing the RF_Timezonelist with a dropdown sourcing the datapage. | Low-code app development |
INC-160603 | 629944 | Removed development test log message | The message "came to my actiovity branchhhhhhhhhhhhhhhhhhhhhhhhhhhhh" appeared multiple times in the log, and was traced to clicking on the refresh button of the Application Quality Dashboard page. This was an oversight log message inadvertently left in place after development work, and has been removed. | Low-code app development |
INC-163970 | 636136 | Expression Builder updated for special character handling | If a modulo operator (%) was used in expression builder, the expression showed the correct value when it was submitted (closed) but on reopen the expression was changed and not calculated correctly. If the expression was not reopened then it calculated the value properly. This issue was traced to a server call to pzEvaluatePegaExpression which treated certain values as containing special characters, and has been resolved by updating the handling for this scenario. | Low-code app development |
INC-164944 | 636291 | Logic updated to handle decision trees over 64k | An exception was thrown when decision trees reached the 64K size limit. This has been resolved by modifying the logic in the DecisiontableMethodBody Rule-Utility-Function where the split size nPropRowLimit is based on the number of columns. | Low-code app development |
Mobile
8.6 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-135015 | 591982 | Handling added for overriding questions rules | After overriding questions rules and then upgrading/validating Question Groups, questions were not shown. It was necessary to manually edit, save, and refresh for the questions to appear, affecting mainly Rule-PegaQ-QuestionGroup rules. This was traced to missing handling for this usecase. The commit was added in Revalidate and Save, which was committing different data because the upgraded data was not copied back to step page being used. Due to this, the commit in BulkValidateSave was overriding the changes done in the pzUpgradeSurveyInstance activity, and the survey upgrade was failing. To support this use, Page-Copy has been added to pzUpgradeSurveyInstance after the pzSaveSurveyInstance call step to copy the updated data to the step page which will later be committed by BulkValidateSave during revalidate and save. | Mobile |
INC-135720 | 594793 | Case link shows in Social messages for the old cases | After upgrade from v7, the case link was not visible for the cases that were created in the old platform version. In Pega 7.1.7, metadata was stored in .pyPrivacyContextor while the later versions are using .pxContextType for Case type to show the related data. To resolve this, new properties have been implemented to hold the Case ID link. | Mobile |
INC-136091 INC-142632 INC-143134 INC-152217 |
598905 598168 598578 613929 |
Activity updated for Mobile attachment access | Preview and download were not working for attachments stored in Pega Cloud Storage repository for mobile devices. Attempting to open an email attachment to preview or download resulted in a console error and the tracer showed the message 'Class pxLinkedRefTo does not exist'. This has been resolved by updating "pzpega_control_attachutil" to use the activity "GetAttachmentReference" for interactions with the attachments from any storage type. | Mobile |
INC-136202 | 603904 | Needed offline mobile resource added for upgraded channels | The error "Mobile login issue - "Resource missing. See client logs" appeared after upgrading the platform and updating the mobile channel interface. A logout button appeared, and clicking it generated a popup with "Cancel" and "Log off" buttons. Clicking Cancel returned the user to the default UI in the mobile screen. This was traced to py-avatar.css not being present, which is a resource needed for the offline application with the current platform, and this has now been added. | Mobile |
INC-136410 | 591892 | Check for mobile added | While performing external assignment in the Designer Studio, the console error "Uncaught TypeError: Cannot read property 'isMultiWebViewOfflinePegaMobileClient' of undefined" was generated. Investigation showed that this was caused by the pega_desktop_api checking pega.mobile.isMultiWebViewOfflinePegaMobileClient, which was undefined while not working on mobile. To resolve this, a check for mobile has been added. | Mobile |
INC-136768 | 588451 | Question Wizard import will downcase answer types to match system requirements | The Question Upload wizard would not create a File type question while using a survey template. The template has a column Answer mode in which accepts an input of the type of answer expected, but in this use case "File" was given instead of "file", resulting in the question being created using the default values. To resolve this, during the import process when the system parses the file and gets the contents from the data using the pzSetdefaultValuesforQuestions DT, mode values will be explicitly set to lowercase. | Mobile |
INC-138106 | 601809 | Documentation update for offline apps | Information in the top-level offline guidelines article has been updated to include a recommendation to avoid using declarative indices in offline-enabled mobile apps as these may cause multiple duplicated indices to be created in the database. | Mobile |
INC-138698 | 595380 | Mobile app improvements for poor connectivity conditions | When the mobile app was used in areas with poor data network connectivity, the screen was freezing or a number of sync errors were seen. Improvements have been made in the processing and wait conditions to smooth the functions when connectivity is intermittent. | Mobile |
INC-138954 | 591835 | Logic updated for deepMergeObj API | Issues with the embedded page values being removed when navigating from a flow action and inconsistent localization of labels and captions in a mobile app were traced to the deepMergeObj API; the logic for the API has been revised to ensure the pxObjClass property is not removed from embedded pages during the doSave function. | Mobile |
INC-139112 | 590982 | iOS module creation documentation updated | In order to clarify the procedure to launch a custom iOS module from Pega devkit, the general guide to PIMC custom module development has been updated to include more detail on the development path as well as information on the most common problems encountered. | Mobile |
INC-139678 | 589050 | Cancel button added to reset stuck mobile downloads | Occasionally a mobile download would become stuck from an undetermined reason and cause the UI to freeze without a means to reset or cancel. To assist in recovery, a "Cancel" button will now be visible during the downloading process for a mobile app in mobile channel. | Mobile |
INC-139861 | 594007 | Cross site scripting protections added to Case Email | Cross site scripting updates have been added to rules handling linked email correspondence. | Mobile |
INC-140725 | 597473 | Custom question parameters visible in survey | When opening an individual question in the custom question section of a survey, the parameters passed were visible in the Answer tab but not when clicking on the getParams link in the right-side panel. This has been resolved by updating the pzSetRuleAndPropValuesForQuestion activity to copy section params from the question rule and call GetSectionParamsToPrompt to get latest parameters data. | Mobile |
INC-143036 | 599189 | SurveyPage loads when ruleset is locked | When the ruleset containing the survey rules was locked D_pzSurveyPage did not load and errors were generated. Investigation showed that if the flow was in a locked version, the PopulateShapeNodesFromFlowData activity did not call EvaluateConnectorState, causing the mapping of the transitions for connectors to fail in the activity MapBranchShapeConnectors. This has been resolved. | Mobile |
INC-143845 | 603219 | Signature support added for external repositories | On Accepting the signature for a repository, saving the case cleared the signature from the control, even though the signature was saved into the data repository. This was a missed use case, and support for signature has been added to external repository use. | Mobile |
INC-144311 | 601107 | Updates for nested "Append And Map To" | Nested actions "Append And Map To" in Data Transforms were producing incorrect results when offline. This was traced to all operations being performed on the Page List which was on the first level of nesting, which was caused by changing the Data Transform into JavaScript form for offline use. The JavaScript form of DataTransform uses variable the "targetListObj" to represent the Page List, and this same name was reused regardless of the "Append And Map To" nesting. An additional problem was seen with the "Update Page" Data Transform action when used with conjunction with a nested "Append And Map To" action: the action assumes that top level Pages exists, but "Update Page" did not create them. This caused the "Append And Map To" action to fail. To resolve this, the "Append And Map To" action will use suffixed variable names to reference nested Page Lists, and "Update Page" will create the Page if it doesn't exist. | Mobile |
INC-144566 | 600855 | User lookup list correctly populated when using # tag | When typing '#ANewTag @' in Pulse, the user lookup list was not shown. Using '#ExistingTag @' worked as expected. This was a missed use case in work done to improve the performance of pzJquerymentionsInput by restricting REST calls, and has been resolved. | Mobile |
INC-144948 | 602274 | Resolved JBoss memory leak | JBoss logs indicated connection leaks. This has been resolved by limiting the scope of instance of ActionProvider, DataSyncRequestParser to a try-with-resources block which ensures that all resources are released. | Mobile |
INC-144970 | 604953 | Tags correctly displaying after Pega 8 Upgrade | The context class for Tags was consistently picking up from the Access group but not consistently from the work class. This caused previously created tags in Pega 7 to not show up in Pega 8, and tags created through the Case Management->Social->Tag configuration were not showing up for user details. This was traced to several differences in the logic between the versions, and updates have been made to resolve this. | Mobile |
INC-145052 | 604350 | Survey Question Page enhanced to improve large question set performance | When a survey was saved from survey designer authoring, all the questions within that survey were saved irrespective of whether the question was modified or not. This caused performance issues when there were more than 150 to 200 questions in survey. To resolve this, whenever a question is touched, a pyIsVisited flag will be maintained for each question and only those questions which have this flag set to true will be saved. | Mobile |
INC-145445 | 606466 | Added handling for Get Directions using http in mobile | When attempting to use the Get Directions action from from a newly launched window in the mobile application, an error indicating the popup blocker was enabled appeared even though popup blocker was disabled. This was caused by the map being requested with http while the current protocol was https, and has been resolved by adding logic that will handle the map from https conditionally based on the current protocol. | Mobile |
INC-146114 | 604412 | Create Survey routes case correctly | The Create Survey utility was not routing the case to the user who initiated the case, but instead was routing it to the user who checked-in the case. This was traced to an error related to pxRequestor.pxUserIdentifier in the data transform pzpopulate survey params which is called when the survey utility is used, and has been corrected. | Mobile |
INC-146676 | 601941 | Field Service app localizations updated | Localization has been added to the 'getDirections' alert and other popup alerts in the Field Service app. | Mobile |
INC-148392 | 610668 | File type handling added for cloud downloads on mobile app | When using the Pega cloud storage repository (Application -> Integration -> Content Storage) with the mobile app, it was possible to upload attachments but re-downloading the attachments failed. Investigation showed that this was due to the content-type appearing as application/* so the file type was not able to be identified. This was a missed use-case for returnFileForDownload(), and has been resolved. | Mobile |
INC-148657 | 607571 | Check added for invalid operatorID set by autopopulate | When an SLA rule attached email reminders, the Link-Attachment table saved the creating operator as System. Upon opening the case perform in Cosmos, all attachments were shown in the utility area and the system tried to show the user name using the pyUserDetails linked property, causing the assignment system to generate a "System is not valid operator" error and the case open failed. To resolve this, the system has been updated to avoid setting the error message on Datapage if an invalid operatorid is passed. | Mobile |
INC-150578 | 607478 | RTE control handling updated for survey display text | After upgrade, Display text in the survey was missing for the question rules which used Rich Text Editor control. This has been resolved by updating the system to copy DisplayText and QuestionText into DisplayTextWrapper. | Mobile |
INC-150762 | 609547 | Support added for Android mobile app with _ in AppId | Login on Android devices was not working for a non-offline mobile app built with with Pega and PIMC 8.5.204. This was traced to the use of an underscore in the AppID. PIMC launches authentication in a custom tab which is fully isolated from the mobile application; after providing valid credentials, the mobile client gets notified by meta-tag "refresh", which contains a redirect uri with authentication code & state. According to RFC 3986 the scheme should not contain underscore "_" character, so the Google Chrome custom tab was not respecting redirect uris with an underscore. To resolve this, underscore will be allowed in Certificates > Add certificate set, but the system will replace all underscores with hyphens during handling. | Mobile |
INC-151446 | 614447 | HTML tags removed for Survey Question tooltips | After upgrade from v7.1 to v8.4, question rules with rich text along with styles and answer mode as dropdown were not loading in the survey UI and the error " Exception Occurred in Rule-HTML-Section for question QuestionName" was generated. This was traced to the use of HTML tags in the "pytooltip" property. To resolve this, HTML tags will be removed using a regex and the property will be correctly handled from there. | Mobile |
INC-151998 | 616321 | Offline mobile RDL attach updated | It was not possible to attach any file using the attach content control while the mobile app was configured as offline and property reference was used for the file name in the attachment control. No issues were seen if a static file name was used. This has been resolved by updating the RDL Attach content handling. | Mobile |
INC-153133 | 612726 | Updated encryption and decryption handling for non-auto control | After encrypting the pyMessage from PegaSocial-Message, the message was displayed in Pulse in the encrypted form. This was caused by a difference in handling between auto and non-auto controls, where the decryption was only handled automatically in the auto controls. To resolve this, explicit encryption and decryption handling has been added to the non-auto control. | Mobile |
INC-153423 | 615665 | Timing update for Signature Capture Control | A signature could be lost when using the signature capture control if a signature was drawn then the Accept and Submit links were clicked in quick succession. The problem occurred more frequently (although was not limited to) when there were multiple signature capture controls on the screen. This issue was due to transaction mismatch error for few pzAttachSignatureWrapper requests (signature post requests) caused by triggering the next accept request before completing the previous accept request. To resolve this, an update has been made to display busy indicator immediately when the first accept button is clicked. | Mobile |
INC-153805 | 627968 | Mobile app language remains consistent after data sync | When using a Field Service Mobile App where the locale of all workers was set to nl_NL, the UI was intermittently flipping from NL to EN and and back again. This was traced to the locale of the requestor (field worker) being lost during synchronization of the mobile app data to the server, causing the UI to fall back to the default value of EN. This has been resolved by ensuring the requestor always uses the chosen locale for the operator. | Mobile |
INC-154290 | 613472 | Signature capture exception resolved | The signature capture control was throwing a JSON parse exception when the value was set and section was refreshed. This was caused by the signature for PIMC passing incorrect data which Preview could not parse, and has been resolved by ensuring the correct data for PIMC local store. | Mobile |
INC-155214 | 617005 | GetBinaryFilesRef updated for resolving wildcard | After upgrading from 8.2 to 8.4, errors related to "Unable to serve file java.lang.IllegalArgumentException: Illegal characters detected in the path" appeared numerous times during full syncs, either on first time login or after cache clear. This was traced to normalizeRelativePath failing, and was caused by a resource declaration in pzGetBinaryFilesRef that encountered an issue where wilcarded URLs were not automatically resolved while packaging Static resources. This has been resolved. | Mobile |
INC-155640 | 622979 | Mobile logging updated for data page required parameters | After upgrade, the number of warnings increased substantially in the mobile app log file for D_Pages, specifying "Required parameter X for data page X cannot be blank." This was traced to the forced logging related to missing required parameters for Parameterized DataPages during DeltaSyncs. In order to increase the value of the logging, the process has been moved from being called before packaging the Data Page to being printed later in packaging code and set to warn only about any unsupported data page configuration with required parameters. As a workaround, the warnings may also be added to a denylist in "Dev Studio > Configure > Mobile > Offline Configuration" to block them. | Mobile |
INC-155752 | 622773 | Hidden Question pages and answers will be saved to DB | After a question page was shown and some values were entered, going back to the question and reverting an option caused the question page to not be visible, but the answer values persisted in the clipboard and were eventually saved into the database. This was a missed use case for Question page smart shapes, and has been resolved by updating the pzSetQuestionPageParams data transform so that whenever a question page is evaluated to either to show/hide, when the question page visibility is set to false and the pyClearAnswerValuesWhenQPHidden 'when' rule is overridden, the corresponding values will be wiped from the clipboard and only the required values will be saved to the database. However, please note this is not supported for branching logic and visibility conditions should be used instead. | Mobile |
INC-156211 | 620194 | Verbose comments removed from wrapper | Comments with references to external links have been removed from some harness wrappers. | Mobile |
INC-157217 | 631971 | Field Service mobile refresh timing updated | A configuration in the Field Service mobile app used to select and map data from a modal section to a wrapper section used "pega.fsm.mobileutil.reloadSection" to refresh the wrapper section and make the data visible after the mapping. If the refresh was performed after the initial login, the refresh was done on only a portion of the screen and resulted in incorrect data being shown to the user. However, continuing to fill in the section and then saving and reopening the task displayed the correct results. The issue was reproducible only on the first attempt after clearing cache/date: subsequent uses refreshed properly. This was traced to the timing of the configured actions, which caused the refreshSection action to be triggered before the runDataTransform action execution was completed. This has been resolved by adding code that will pause the action queue until the runDataTransform action completed. | Mobile |
INC-157317 | 620574 | Signature Capture supported in RDL | An enhancement has been added which supports using Signature Capture on forms in repeating dynamic layouts. | Mobile |
INC-157532 | 631716 | Corrected runtime name length check for custom fields to resolve logged error | The error "Notification_MobilePush.Action ERROR - Can't parse JSON string to map" was being frequently logged. Investigation showed that in the Step8 activity in pySendNofication from Pega-Notification-MobilePush class, setting @String.length(customFields)>0 where customFields was a local value caused the runtime length check on customFields to fail. To resolve this, the Step8 activity in pySendNofication from Pega-Notification-MobilePush class has been modified from using @String.length(customFields)>0 to use @String.length(Local.customFields)>0. | Mobile |
INC-157596 | 624791 | Mobile channel upgrade wizard correctly initiated | After upgrade, the offline mobile app was not loading the correct portal. This was traced to missing properties needed to launch the upgrade wizard for channels upgrading from a previous release to v8.5, and has been resolved by setting those properties in upgrade activities. | Mobile |
INC-160275 | 628103 | Unchecked Include descendant classes in pyFeedUserDetails report definition | After upgrade from Pega 7.4. to Pega 8.4, the use of a custom class 'XX-Data-OperatorLoginDetails' which pattern-inherits from Data-Admin-Operator-ID was causing the error "Union not applied because properties [pyImageFileName, pyEmailAddress, pyUseLocale, pyDefaultTimeZone] are not optimized in Data-OperatorLoginDetails”. This happened when the case manager portal was launched and the report definition pyFeedUserDetails (introduced in newer releases) was running by default, and was due to the presence of a few unoptimized properties when the report definition had "Report on Descendant classes" - include all descendant classes, checked by default. To resolve this, the checkbox to Include descendant classes in pyFeedUserDetails is now set as unchecked by default. | Mobile |
INC-160295 | 635008 | Null check added for pzinskey in CSLoadSelectedArticle | In step 5 of CSLoadSelectedArticle, there is a call to pzGetAssociatedTags. Step 1 of pzGetAssociatedTags is an Obj-Browse with MaxRecords set to 100000000, and there is logic to retrieve records where pxLinkedRefFrom = Primary.pzInsKey. If Primary.pzInsKey is null, then the Obj-Browse will fetch all of the records. In order to prevent an unnecessary flood of results, a when condition has been added in the CSLoadSelectedArticle rule to check pzInskey so that when the context is empty the system will not call the pzGetAssociatedTags and return the entire record set. | Mobile |
INC-160851 | 631620 | Multiple Pulse attachments deleted correctly from datapage | If a Pulse post had only one attachment, removing the post using the Delete option correctly deleted the attachment from Link-attachment and Data-WorkAttach-File. However, if more than one attachment was present, the attachments were removed from view in the UI but were not deleted as expected from the datapage D_AttachmentList. This caused the pr_data_file table to grow very large. Investigation traced the issue to a 'when' condition in the PegaSocial-Message-ValidateDelete activity that was incorrectly being set to true due to a null value and causing the system to skip the deletefile step. This has been resolved by updating the logic to correctly handle removing multiple attachments on delete of a post. | Mobile |
Project Delivery
8.6 Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-133986 | 585431 | Encryption documentation updated for embedded properties | Documentation updates have been made to provide instructions on configuring property encrypt policies for embedded properties. This includes information on creating two policies, on the class where the property is referred/used and on the final property level, so these properties can be smoothly encrypted/decrypted at all the places in the UI. | Project Delivery |
INC-137757 | 600489 | Primary page setting updated for micro DC container | In Cosmos, a "Cannot Render Section" error displayed on submit of modal dialogue. This was caused by a primary page calculation error for the micro DC container, and has been corrected. | Project Delivery |
INC-138443 | 584680 | SAML authentication documentation expanded | Documentation for SAML authentication services has been updated to include more detailed information about app alias URL changes. | Project Delivery |
INC-139085 | 589553 | Documentation updated for using Custom Stored Procedure after upgrade | Documentation has been updated to reflect that when upgrading an environment to Pega 8.3+, the following two prconfig/DSS settings should be removed. This is the preferred approach to use the new ID generation mechanism. Additionally, if a database sequence was previously used to generate IDs, pc_data_uniqueid should be added or updated to make sure each case type has a row defined, and that the pyLastReservedID matches the maximum of the relative database sequence value plus 1. env name="pega/sequenceid/useOldOOTBIDGenerator" value="true" or DSS: prconfig/pega/sequenceid/useoldootbidgenerator/default env name="database/databases/customUniqueIDproc" value="sppc_data_uniqueid_custom" or DSS: prconfig/database/databases/customuniqueidproc/default To keep using the old custom stored procedure, the following settings should be given either through prconfig or DSS setting (prefixed with "prconfig/"). The sppc_data_uniqueid_custom can be replaced with a custom procedure name with the same signature as the standard stored procedure. env name="pega/sequenceid/useOldOOTBIDGenerator" value="true" env name="database/databases/customUniqueIDproc" value="sppc_data_uniqueid_custom" |
Project Delivery |
INC-139843 | 594083 | WSDL for Connect SOAP documentation updated | SOAP integration documentation has been updated to include information regarding handling a WSDL that contains references to external XSD documents. | Project Delivery |
INC-143033 | 607836 | Access Control Policy documentation updated | The documentation for the ACP rule (https://community.pega.com/knowledgebase/articles/security/85/creating-…) has been updated to clarify that these rules must be checked in for the policy change to take effect. Access control policies only work when a rule is checked in. Therefore, any changes in a checked out rule will be ignored. When changing or modifying any ABAC policy rules, the rule must be checked out, updated, saved, and checked in for the changes to take effect. | Project Delivery |
INC-145944 | 612847 | Product Rules help updated for Report Definition filters | The Product Rules help documentation has been updated to remove references to the deprecated use of When filters and List View filters as these have been replaced by Report Definition filters. | Project Delivery |
INC-158784 | 625592 | Throttling during email processing help documentation updated | The IMAP section of the support article for throttling email has been updated to include more detailed information about the dynamic system setting used for throttling, Pega-IntegrationEngine Email_throttling_pattern_regex, and how to configure it. | Project Delivery |
SR-D89339 | 550312 | Ping service documentation updated | The documentation for ping service architecture and output has been updated to reflect that the response now includes more parameters. The response contains JSON text in the following format: {"node_type": [""],"health": [{"last_reported_time": "","test_name": "","status": ""},{"last_reported_time": "","test_name": "","status": ""}],"state": "","node_id": ""} |
Project Delivery |
Reporting
8.6 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-127102 | 602697 | Synchronized BatchStatus email available for multi-node | An enhancement has been added which will handle synchronization between BatchStatus used in different events on different nodes and send email notifications. | Reporting |
INC-128880 | 592816 | Handling added for angle brackets in legacy Chart control | When using Investigative Case Management, some report charts were not rendering correctly. This has been resolved by updating appendFormattedString in AbstractJsonDataGenerator.java to escape angled brackets (< and >) before appending the input. | Reporting |
INC-132169 | 584760 | NativeSQL will use inline rule resolution for core components | After upgrade, nodes were going down with a heartbeat error. This was traced to issues with NativeSQL taking a very long time to generate queries due to the overhead in calling multiple complex functions to resolve rules. To correct this, updates have been made to resolve the standard set of functions used by core components inline in NativeSQL function resolution. | Reporting |
INC-133482 | 605003 | Corrected isExternal flag not resetting | Corrected isExternal flag not resetting If an extraction referred to external tables, an isExternal flag that was set to true during the Extraction process did not get reset to false for the tables which were not referring to external. This has been corrected. |
Reporting |
INC-137317 INC-144756 |
585403 602723 |
Security improved for searches | Authentication requirements have been added to activities associated with searching. | Reporting |
INC-138168 INC-145810 |
598100 599464 |
BIX log shows correct corrupted BLOB pzInskey | An update has been made to ensure the correct inskey is shown in the BIX logs for a corrupted BLOB. | Reporting |
INC-138931 | 588247 | Report Definition filter corrected for integer | When using a report definition where an integer column was added in a filter, clicking on select values did not display the available values as expected. Entering a value and clicking on search also showed no items. Investigation showed the operation was defined as 'Contains' on integer and decimal properties, which was incorrect, and changes have been made in the pzGetselectvalues activity to change the filter operation to 'Equal to' in case of integer and decimal properties. | Reporting |
INC-139130 | 591861 | Tab Headers accessible in Report Filter with keyboard | Tab Headers such as "Available Values" were not accessible with a keyboard in the modal to select values for Report Filters. Instead, the focus marker directly shifted to content and toggling between Tabs was not possible. Investigation showed that at runtime for report definitions, the value for prevElement was null, which threw an error and caused the rest of the function to not run. This has been corrected by adding null checks for prevElement and newElement in the function tabClickCallback in the pega_report_events js file. | Reporting |
INC-139295 | 588139 | Report Shortcuts resolve datapage parameter references | After upgrade, no results were displayed in case manager portal report browser. This was traced to a data page value that was not resolved at runtime when a data page was used in the report definition shortcut to pass a parameter value. Investigation showed this was due to a change made for v8.4 to correct an issue with data page variables that were not persisting if a report was made with pre-exisiting filters. To resolve this, the logic related to pzResolveCopyFilters has been updated. | Reporting |
INC-140110 | 600397 | Large filter values accepted in Report Definition edit | Report definition edit filter values were not accepting large comma separated values properly. This has been resolved by modifying the logic in RRFilters_Logic to use ReportFilter.getReportFilters. | Reporting |
INC-140353 INC-144103 INC-147621 |
592214 599680 604283 |
Updated filter logic for filtering on a DateTime column | When a class join was used in a report definition, the error "The Filter Logic used in the report is invalid" appeared while filtering rows of a report definition results on a DateTime column. This was a missed use case, and has been resolved by modifying pzGridSortPaginate to convert the data type value into the proper casing. | Reporting |
INC-141322 | 594512 | Resolved drill up doubling the filter box | When opening a report with a visual graph, clicking on one of the filtered options, leaving this box open (not submitting it) and then clicking on a bar in the visual graph of the report showed the contents of the graph, but then clicking on the report link to go back to the report overview caused a doubled filter box to be displayed. The report would then have to be reopened before being able to continue. The problem was that the value of .pyUI.pyConfigSecToShow was still set to "filter" after the drill down. When the drill back up happened, the report was trying to show the filter configuration section from before but the context was no longer available and it failed. This has been resolved by adding a call to pzCancelFilterLogicChanges in pzDrillUpReport to set the filters to the previous values and reset the value of pyConfigSecToShow. | Reporting |
INC-143191 | 596468 | Scheduled tasks landing page shows all tasks | Due to pzGetScheduledTasks listview having a hardcoded limitation of 500 records to be fetched, not all scheduled tasks were being shown in the scheduled tasks landing page. This has been resolved by modifying the pyCreateSummary activity to use a newly created Report Definition to fetch data instead of list view. | Reporting |
INC-144333 | 603261 | Documentation updated for reindexing of specific classes | The documentation for rebuilding search indexes has been updated to specify that selected class is the only one taken into account for re-indexing; child classes need to be added separately. https://community.pega.com/knowledgebase/articles/system-administration…; |
Reporting |
INC-147166 | 601800 | AvailableProperties cleanup added after save | The Report filter value auto-complete was displaying an incorrect list of values. This was traced to pyAvailableProperties not being cleaned up after being created and used in a prior process, and has been resolved by ensuring pyAvailableProperties is removed on save so it can be cleanly built when needed. | Reporting |
INC-147643 | 605387 | Corrected filtering logic for Report Definition with declarative join | When using a report definition with declarative join enabled, running the report produced the correct results, but filtering on any other column resulted in all values being shown. This has been resolved by modifying the logic used for pzGetGridColUniqueValues. | Reporting |
INC-147844 | 612898 | Check added for type of value in scheduling adaptive reports | When scheduling the pyAdaptiveModelsOverview, pyAdaptiveModelsPredictorOverview and pyModelsActivePredictorsOverview reports, the error "atest.Snapshot_Time is not a valid date/time value" was occuring in step 1 of the pzRDExportWrapper activity. The reports worked as expected when run standalone; the failure only occurred when running from scheduled tasks. Investigation showed that the system was trying to parse a property reference as a datetime, and the failure and error caused the report scheduler to refuse to send the generated report. This has been resolved by adding logic to ReportFilter.java to check if the value is a property reference before attempting to parse it as a datetime value. | Reporting |
INC-147856 | 607133 | Description input for new reports restricted to 64 characters | After saving a report with a description containing more than 64 characters, trying to delete the same report generated error messages saying the report description exceeds 64 characters. There was no maximum character limit set on the description input when creating/editing/save as a report. The delete modal shows any page-level warnings, so the guard rail warnings show up at that time. This has been resolved by disallowing the creation of a description greater than 64 characters in length. | Reporting |
INC-149143 | 613142 | Report category error messages made accessible | In order to improve accessibility while creating new reports, labels have been added to the error messages on the category name field. | Reporting |
INC-150054 | 607388 | Drilldown works for display of all locks | In Developer studio, drilling down from the summary count of all locks to see the actual cases locked gave a generic error screen. This was a missed drilldown use case for List Views during security updates, and has been resolved. | Reporting |
INC-150193 | 613915 | Corrected page counts for 'save-as' reports | The total pages count and last page icon were not displaying when the Preview button was clicked after a save-as of a report in the Report Browser. Investigation tracked this to a visible when condition on those fields that was being changed to the default of false during the save-as, and this has been resolved. | Reporting |
INC-151185 | 618731 | OptimizeForLargeResults flag set in BasicListSpecification to avoid OOM | As soon as dedicated indexing started for a data type, the JVM heap occupation went beyond 99 and eventually caused a system crash due to an out of memory error. This was traced to the use of the BasicListSpecification API for retrieving results from the database always having the autocommit mode on, which loaded all instances for indexing into memory and interfered with PostgreSQL's cursors (query encapsulation). This has been resolved by adding an OptimizeForLargeResults flag that will be set to on in the BasicListSpecification activity before fetching the keys from the database. | Reporting |
INC-151568 | 610220 | Handling added for comma value in FusionCharts XML | After creating a Summary Report through the report browser and adding that report to the Dashboard, clicking on the report to drill down generated the error "Can't open the rule with the specified keys". Investigation showed that if a category or series in a Report Definition chart contained a comma, the drilldown would not work because of an incorrect pyclassname being passed. This was traced to the use of XML to configure the chart: the FusionCharts third-party library parses the link XML incorrectly and splits JS arguments at any comma. This was a missed use case for having a comma in the name, and has been resolved by adding encoding for the comma value in pzMultiSeriesData FusionCharts XML rule. Then this will be decoded in the drilldown JS APIs pzPega_chart_legacydrilldown and pega_report_summary. | Reporting |
INC-152108 | 622373 | Logic updated for exporting customized multi-column report definition | While attempting to perform an export to Excel for the results of a report definition which had two custom functions for two columns, the error "PRRuntimeException: Section 'pzRDExportWrapper' execution error on page '' of class 'Rule-Obj-Report-Definition'. : The Reference .pyTextValue(2) is not valid. " was logged. The export worked if either one of the columns was removed or if "Display values across columns" in the column settings was unchecked. This has been resolved by updating the logic in PivotTableDataGridGenerator for rowheaders to handle using DisplayValuesacrossColumns with FunctionAliases when not checked on in sequence. | Reporting |
INC-152800 | 611748 | Reports filtering made accessible | In order to ensure accessibility, titles and helper texts have been added to the text fields and checkboxes that appear in the Edit Filter non-modal window after a 'Filtered By' value is selected on the My Reports page. | Reporting |
INC-157974 | 621966 | Summary Report collapsible sections made accessible | In order to improve accessibility, the rules 'RRDataSummaryGeneration' and 'pzDisplayGroupNodeVertical' have been updated so the clickable expand icons in summary reports will append the value of the current group when setting the text "Click to expand or collapse". This will allow JAWS to uniquely identify exactly what will be expanded or collapsed. | Reporting |
INC-158473 | 626277 | BLOB decryption API updated for greater flexibility | A BIX extraction issue occurred after the class had enabled BLOB Encryption. The errors indicated the BLOB had been persisted in an incorrect stage, causing the extraction of the single item to never complete even though some CSV file was created. This was traced to the API used to read the encrypted BLOB, DatabaseUtilsCommonImpl.getStreamBytes, which had the limitation of decrypting only when a Site-specific cipher existed. To resolve this, the system has been modified to use a different API which works for all encryption modes, PageDatabaseMapperImpl.getStreamBytes(). | Reporting |
INC-158874 | 625384 | Zero value parameter handling added to Trend Reporting | After converting the Summary Views to a Report Definition, the Chart reporting functionality was not working in the Report Definition drill-down reports; whole records present were being fetched instead of only the graph chart count. Investigation showed that one of the parameters in the FilterBy was missing, and that pxSLAAgeTimeliness used 0 instead of null, causing the system to consider all records. This has been resolved by modifying the pega_report_Summary.js file and the pxSLAAgeTimeliness FunctionAlias to handle the 0 value and ensure all parameters are present. | Reporting |
INC-159399 | 626767 | Report styles color contrast enhanced for accessibility | In order to improve accessibility, pzReportBrowserStyles has been updated to change the report creation info color to #00000 to enhance the contrast. | Reporting |
INC-159759 | 629624 | Report title displayed for empty widget charts | Per design if there is no data to be rendered in the chart from a report added in a Widget in any portal, a static image is displayed saying "No Data to Display". However, if there were multiple reports in the Widget it caused confusion on which report was not being displayed because the image did not show the title of the report. To resolve this, an enhancement has been added to modify pzRRChartDiv to display the report Title even when there is no data in it. | Reporting |
INC-160178 | 632897 | Local time used for report filters | The date format in the filter condition of the report was being displayed in GMT format rather than the Local time Format. This has been corrected. | Reporting |
INC-160825 | 629369 | Search landing page performance improved | Performance improvements have been made for the Pega Platform search landing page by implementing timeouts for all requests to ElasticSearch when executing PegaIndexAdminImpl.getIndicesInfo() and changing all requests for single index to requests for all indexes. In addition, SearchUtils.areDummyDocumentsPresent() has been modified to get all 'dummy documents' in case there are duplicate dummy documents in the ElasticSearch indexes. | Reporting |
SR-D91660 | 555725 | Updated document ID handling for deleting indexes | When trying to delete a document for index name "work*", intermittent errors were seen indicating an invalid index name or index does not exist value. This has been resolved by updating the handling for delete by ID. | Reporting |
Security
8.6 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-128533 INC-134808 INC-145694 INC-156797 |
588007 590712 601293 618991 |
Property check handling updated for Ajax requestor | SECU0001 alerts were seen when submitting a case in the interaction portal. Logging indicated the errors were related to the 'pxRequestor.pyLatitude' and 'pxRequestor.pyLongitude' properties which are included in an Ajax request when they exist in the DOM and the 'pyGeolocationTrackingIsEnabled' when rule is true. The error was traced to a condition where a new thread request results in an unexpected property check that encounters a clipboard which doesn't have any pages created for that thread. To resolve this, the 'pxRequestor.pyLatitude' and 'pxRequestor.pyLongitude' properties have been added to an allow list to handle the unexpected properties check. | Security |
INC-130703 | 597254 | Operator provisioning on authentication service corrected | When operator provisioning was triggered on user login via authentication service, the error "ModelOperatorName is not valid. Reason: declare page parameters not supported by PropertyReference" was generated. This was traced to optimization work that had been done on the expression evaluation for operator identification, and has been resolved by adding the required GRS Syntax support in the Operator Provisioning section in SAML and OIDC. | Security |
INC-133518 | 592228 | Context updated for IACAuthentication activity trace | After upgrade, tracing the IACAuthentication activity was not working. Investigation showed that the context object had a null tracer value, which has been resolved by updating the system so the tracer runs with the correct context. | Security |
INC-137709 | 584981 | New security role added to restrict access to development-specific classes | A new security role and related RAROs have been implemented to allow better security for end users on non-BAC systems. This restricts access to Rules and execution of activities on classes that are development-specific. | Security |
INC-137873 | 596157 | Java injection security updated | Protections have been updated against a Java injection. | Security |
INC-137874 INC-146921 |
599128 601636 |
Cross site scripting update for Dev Studio | Cross Site Scripting (XSS) protections have been added to Developer Studio. | Security |
INC-139084 SR-D79737 |
626647 602304 |
Improvements for Report Definition OperatorID filtering | Report Definition filters were not working as expected when data from the OperatorID page was used and authentication was enabled. This was traced to the OperatorID page not being correctly populated. To resolve this, the authentication logic has been modified to always create the OperatorID page at requestor level, and the HTTP API layer has been updated to remove the thread level OperatorID page if exists. In addition, an enhancement has been added for improved debugging on log appenders provided by log4j which allows log filtering based on the requestor and thread for a given appender at a specific log level. | Security |
INC-140101 | 597635 | System will attempt to decrypt data ending in "+" | Encrypting and decrypting one specific email address was not working properly when showing on the UI. It was possible to force a decryption using decryptproperty, but Pega generated an error. This was due to the actual encrypted value ending with '+', which conflicted with a system check that skips decryption if the encrypted property value ends with + . To resolve this, the system will attempt to decrypt the property even when encryptedText ends with + . | Security |
INC-140111 | 594377 | CSRF token handling added to Bulk Processing | CSRF token handling added to Bulk Processing On click of submit button from the bulk transfer screen, the pzbulkprocess harness was loaded and the portal was automatically logged off. Investigation showed that when CSRF was enabled, loading pzBulkProcess failed with a 403 error that resulted in logging off the current session due to a missing fingerprint token. This has been resolved by adding both CSRF token and fingerprint generation logic to pzBulkProcessingList. |
Security |
INC-140224 | 604004 | Corrected SAML SSO error | After opening a case from the Pega-FCM portal or after logging in from SSO, closing the Pega window and opening it again resulted in the error "Unable to process the SAML WebSSO request : Violation of PRIMARY KEY constraint %27pr_data_saml_requestor_PK%27. Cannot insert duplicate key in object". This was a missed use case that happens only under the old SAML configuration, and has been resolved by removing a when condition that checks for stepstatus fail for the pySAMLwebSSOAuthentication activity. | Security |
INC-141595 | 602714 | CSRF and Browser fingerprint tokens added for testing custom scripts | After upgrade, the test window appeared blank when attempting to test Decision Table rules. This was traced to there not being CSRF token and Browser fingerprint handling in the custom script used to show a prompt screen to the user. Because the CSRF token validation was missing, the request failed. To resolve this, CSRF and Browser fingerprint tokens have been added as hidden fields. | Security |
INC-141940 | 601541 | Revoke Access Token check removed from OAuth Client Registration | When client credentials were implemented, the OAuth 2.0 Client Registration form was designed such that once the instance was created and a token issued, the access tokens were deleted on save. Process changes now indicate that it should be possible to save the form because it may only have History Description/Usage changes made to it and Revoke Token and Regenerate Secret buttons are already available. To address this, the Revoke Access Token check has been removed from the validate activity of Client Registration. | Security |
INC-142145 | 594917 | Resolved 403 error for refresh of incognito window with CSRF | Opening the simpleurl in a fresh incognito window opened the work object in a standard thread, but on refresh of the window a 403 error appeared and the screen went blank. This was a missed use case for the recently-added CSRF validation for non-ajax get requests which are redirected post requests. The CSRF token was being validated if pzPostData was in the request, but once the original request was complete the request map was cleared and the pzCtkn value in the request map was empty, resulting in the 403 error. To resolve this, the system will skip CSRF validation for a refresh scenario where the post data request map is empty after the original request, and validation has been added for the blank pyActivity in the request. | Security |
INC-142648 | 594806 | PRTraceServlet security check added | Modifying the Pega application URL with PRTraceServlet displayed multiple user credentials and session information. This has been corrected with the addition of a privilege check in GetConnectionListCommand before allowing the connections list to be fetched. | Security |
INC-143181 | 599591 | Handling added for terminate session exception caused by null operatorID | After the REST service called ((PegaAPI)tools).triggerRequestorTerminationPulseEvent(action,OperatorsList,message), which was being used for maintenance by handling the REST request for terminating user sessions before the system was brought down, all login attempts were resulting in a null pointer exception and the system had to be restarted to recover. This was a corner issue caused when a NULL operator was provided as input, and has been resolved by adding handling for that case. | Security |
INC-144591 | 601608 | Oauth and beanutils jars upgraded | The third party Oauth2 jars and commons-beanutils jar have been updated to the latest versions. | Security |
INC-144597 | 598304 | Updated handling for MT query of pr_data_admin table | When using a multi-tenant environment with Oracle, as the number of users in the environment increased, the number of queries of the pr_data_admin table "WHERE pyEnableAuthService" increased exponentially and causes system slowness. This was traced to missed handling for the @ character in the authentication service cache while requesting, and has been resolved by updating authservicecache.java. | Security |
INC-145033 | 599479 | ForgotPassword responses made consistent | To prevent possible exposure of valid usernames, the ForgotPassword logic has been updated so that it will show the same messages and set of screens to both valid and invalid users if a lost password request is made. | Security |
INC-146434 | 602739 | Accessibility added to Security Event Configuration headers | Labels for the headers in the Security Event Configuration screen have been converted to dynamic layout headers so they will be detected by JAWS screen reader. | Security |
INC-148117 | 608005 | Option added to return to same authenticationService after SAML logoff | An enhancement has been added which provides a check box on the Authentication Service ruleform to select the option of redirecting users back to their original authentication service screen after logoff. | Security |
INC-150317 | 625882 | Certificate updates handled across nodes | An SSL handshake exception was occurring when running a Connect-REST call automatically from the flow as a background process on a background processing node. The same Connect-REST worked fine when run manually. The exception detailed the issue as "SSLHandshakeException: java.security.cert.CertificateException: None of the TrustManagers allowed for trust of the SSL certificate(s) provided by the remote server to which this client attempted a connection." This was traced to a pulse change scenario where the reloading of the certificates was not happening on all the nodes after adding a new certificate or deleting a certificate. This has ben resolved by adding the DATA-ADMIN-SECURITY-CERTIFICATE class into the UpdatesCacheUtils.java class. | Security |
INC-151253 | 607625 | Hash comparisons adjusted for upgraded sites | Existing Pega Diagnostic Cloud SSO URLs were not working after upgrade. This was traced to the previous tenant hash (or AG hash) having padding characters like ‘(’ which are no longer used in higher versions. This caused the tenant hash comparison during the SAML login flow to fail. To resolve this, the system will not compare an incoming tenant hash (in relay state) with a current platform tenant hash, but instead will rely on the “/!” pattern to identify the tenant hash in the relay state. | Security |
INC-153957 | 615289 | Cache key handling updated for OAuth2 Connect-REST | After upgrade, a Connect-REST using OAuth2 credentials was failing with HTTP response code 403 when the Connect-REST was invoked by the agent, but the Connect-REST was successfully invoked from web node with the same Auth profile. OAuth2 tokens are stored in the cache and database. In this specific environment the key formation was happening differently on the utility node for batch processes, causing different keys to be formed for the same token. This has been resolved by adding a provider filter and updating the cache key. | Security |
INC-154311 | 615683 | Decryption updated for External assignment routed with DWA | When an external assignment was routed to a user using DWA, the user was able to access the assignment but received the error "There has been an issue; please consult your system administrator" when submitting. Investigation showed this was caused by the system attempting to decrypt the External assignment with the requestor level key, causing the decryption to fail with a NumberFormatException. To resolve this, the system will check if the obfuscated string starts with Global encryption key prefix and then decrypt with the global encryption key by trimming out the prefix. | Security |
INC-154627 | 619572 | Re-enabled users are able to log in | When disabled operators were re-enabled through operator management, the forced password change on next login was manually unchecked but the operators were unable to login because the change password screen was displayed without any password entry fields. This was a missed use case for handling the change password flag on a requestor , and has been resolved by having the system skip setting the change password on next login flag for disabled users. | Security |
INC-155276 | 626618 | Null check added for step page | After creating and adding new Access Roles and application 'Access When' to the privileges instead of Production level, during run time the error "runtime.IndeterminateConditionalException: Trying to evaluate Rule-Access-When conditions L:IsProdAccess when there is no page to evaluate them against" appeared for the specific privileges. This was traced to a missed use case where the system falls back to the step page if the page for evaluating the 'when' condition is null, which did not account for scenarios where the step page can be null. To resolve this, a null check has been added which will fetch the primary page if the step page for the access 'when' condition is null. | Security |
INC-155813 | 629505 | SAML SSO redirects to correct URL when application and authentication aliases match | Whenever there was a match in the authentication service alias and the application alias, the application alias was replaced with empty after logoff instead of making the authentication service alias empty. For example, given an authentication service with the alias XYZ ("login with XYZ" alias option) and an application name XYZMyOps, the application alias was being changed from XYZMyOps to appMyOps after logoff. As a result, a blue screen error resulted when clicking on button "login with XYZ" again because it redirected to appMyOps, which didn't exist. This has been resolved by removing authservicealias and modifying AuthServiceAliasHelper.adjustPathIfAuthServiceAliasPresent() to change the method for calculating the pathinfo to string tokenizing. | Security |
INC-155954 | 622606 | HTTP Strict Transport Security update | An update has been made to add HTTP Strict Transport Security (HSTS) headers to the DSS http/responseHeaders by enabling X-Content-Type-Options Header and X-XSS-Protection Header. In addition, the max age of the HSTS header parameter has been increased from 7 days to 1 year. | Security |
INC-156128 | 620485 | Added mail/telephone link to allowed CSP child frame | After upgrade from v8.3 to v8.5, clicking on the mail / telephone link in the out of the box case participants gadget generated the Content Security Policy error "This content is blocked. Contact the site owner to fix the issue." Examination of the browser dev-tools console indicated the object refused to frame because it violated the Content Security Policy directive: "frame-src *". This behavior was specific to the Google Chrome browser, and has been resolved by adding code so the mailto: and tel: will be added to the frame-src when Data is selected under Child Frame-Source option. Unchecking the Data checkbox for Child Frame-Source on the policy landing page will remove these from allowed actions under CSP. | Security |
INC-156647 | 626294 | Improved disconnected requestor cleanup for FieldService | A large number of requestors from FieldService with the status as 'Disconnected' were accumulating and causing performance issues. This was traced to the requestors not getting passivated due to users not logging out and new requestors being created for the same users next time, and was caused by the value of the DSS Initialization/PersistRequestor being set as "OnTimeout". When the DSS prconfig/timeout/browser/default is not configured, the default browser requestor timeout is 60 minutes. In this scenario, requestors were not passivating as the requestor passivation timeout was set to the refresh token lifetime for mobile users, which was very large and overwrote the DSS value. This has been resolved by removing the code which set the passivation timeout to the OAuth2 refresh token lifetime. | Security |
INC-158489 | 623452 | Captcha control updated to support ClientValidation | The required checkbox for the pzCaptcha control was not working when using a custom configuration, allowing a case to be submitted with a blank captcha even when the required parameter was selected on control. This was traced to a required parameter not being correctly populated to the pzCaptcha control, and has been resolved by adding ClientValidation into the pzCaptcha control so that if a required parameter is selected on the control it will be applied during case execution. | Security |
INC-160024 | 625831 | Deprecated authentication methods removed | After upgrade, attempting to trigger the Pega hosted API externally through Post Man resulted in the exception "The method getAuthenticationService() is undefined for the type OAuth2AccessTokenValidation". This was traced to the use of references to the methods getAuthenticationService() and getAuthenticationServiceType(), which are not in use from v8.5 onwards in pzOAuth2AuthenticationActivity and have now been removed. For OAuth2 authentication, the service package should use authentication type as OAuth2; the system will then take care of validating the token and establishing the operator context. | Security |
INC-161660 | 633032 | Authorization token handling and cleanup improved | When using a mobile app configured with default authentication, clicking on the "Trouble logging in?" link opened a new window and displayed the message "please contact your system administrator" along with the error "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY CODE-SECURITY PZGETAUTHORIZATIONCODE". This has been resolved. In addition, the OAuth token generation and handling has been improved, and the purge agent has been updated to accept a DSS setting for the max number of expired records to purge each time it is run. The default value is 5000. | Security |
System Administration
8.6 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-133214 | 590380 | Deployment Manager rollback works for directed inheritance | Rollback was not working correctly in Deployment Manager for history classes using directed inheritance. This was traced to a redundant check in AbstractHistoryPageKeeper that enforced the history pages pattern inherited from one of the base history classes, and this has now been removed. | System Administration |
INC-140040 | 597666 | Improved handling to ensure circumstanced rules skim is complete | After performing a major rule skim, it was noticed that some of the circumstanced rules were not carried over to the higher version. The data was restored and a second skim was attempted. Once again, not all of the circumstanced rules were carried over; however, the results were different than in skim 1. This issue was traced to the circumstanced rule and base rule having the same pxCreateDateTime because they were processed with in a millisecond span. To resolve this, a 1ms explicit sleep has been added before processing each record. | System Administration |
INC-140279 | 597757 | JMX logging added to upgrade diagnostics | In order to improve diagnostic information, infoForced loggers have been added for debugging upgrade issues related to JMX calls to enable and disable rules creation. | System Administration |
INC-142236 INC-146477 |
595979 602203 |
Apache Struts updated | The Apache struts2-core.jar and its dependencies have been updated to version 2.5.25. | System Administration |
INC-144555 | 603070 | Changelog cleanup added for de-optimized properties | Unwanted optimization was automatically added to properties for the Application-Work-Casetype class created using the wizard in the App Studio. Attempts to remove the optimization did not work: the property advance tab was showing the optimized classes details even after deleting and recreating the property. When a property is optimized the system adds entries to pr_changelog for the list of classes it has optimized. When the property was deleted, the pr_changelog was not cleared. This was a missed usecase, and has been resolved by overriding the Cleanup activity at Rule-Obj-Property class to delete the pr_changelog entry associated with that if it is present. | System Administration |
INC-144864 INC-162360 |
599145 635817 |
Unneeded AUC error percentage calculation removed for better system performance | When generating snapshots of the ADM models, an inefficiency in the metric calculation for the AUC error percentage caused an excessive amount of memory to be allocated which could cause slowdown or require a system reboot. This has been resolved by removing the problematic AUC error percentage calculation as it is not used in the UI. | System Administration |
INC-144869 | 606616 | Improved ScalarPropertiesWriter logging | In order to improve diagnostics, debug loggers have been added to ScalarPropertiesWriter.java to print column name in the logs while creating map between column names and their values from clipboard page. | System Administration |
INC-146595 | 604790 | Initialized entryName for light weight inventory instance | When running deployment on a new pipeline created for the next minor version, once the deployment process got to the point of showing aged updates, the “view aged updates” came back as blank screen. Viewing the logs showed the aged update elements come back but were missing the pyName associated with them. Investigation showed that the system did not have support for setting the mEntryName for LightweightInventoryInstance objects. This has been resolved by adding a junit to ensure that getEntryName() doesn't return as null and should be equal to pzInsKey. | System Administration |
INC-148154 | 602920 | Hot Fix Manager updated to use installation order for schema import | Schema changes were not being imported during the hot fix manager DL import process. Investigation showed this was due to hotfixes in the DL being iterated over from newest to oldest, causing older hotfixes to replace the value added to a map by the newer. To resolve this, the system has been updated to use hotfix install order, which considers selected and dependent hotfixes, rather than ordering newest to oldest. This ensures that newer table representations will override older rather than the other way around. | System Administration |
INC-151418 | 610231 | Authentication updated for legacy activities | Authentication updates have been made for several legacy activities invoked via URL by custom HTML. | System Administration |
INC-153138 | 625568 | Database primary keys generated as NONCLUSTERED for imports | When a primary key was defined for a table and the table was exported and then imported, the primary key was generated as CLUSTERED. This resulted in an MS SQL Cluster Index violation because all Pega-shipped tables generated during installs/upgrades have a PK constraint index with NONCLUSTERED index type as it allows for a longer key. This was a missed use case, and has been resolved by updating the system such that when importing with MS SQL database, the primary key index is made NONCLUSTERED all the time so it will be consistent with the base platform. | System Administration |
INC-153182 | 615758 | Corrected import overriding class definition history save setting | Importing Robot Manager RAPs was failing due to a bad class mapping between class History-Data-Robotic-AutomationPackage-DeploymentLevel and its corresponding table pr_hist_datadeplvl in database PegaDATA. This was traced to a conflict where the class wasn't designed to have history saved but import was passing a flag that forced history to be saved which was overriding the class setting. This has been resolved. | System Administration |
INC-154042 | 621261 | Pega Catalog custom upload control modified | Attempting to upload a catalog.zip file caused the system to hang and thread dumps were seen in the logs. Investigation traced the issue to the custom control used to upload the catalog, which was posting the entire content in form data rather than sending a multi-part request. The control contained both legacy code which used form.submit() and encoding along with new code that used SafeURL and sent an async request. With this, encoding could not be set to multi-part in case of an AJAX request. To resolve this, the catalog upload control has been modified to use the appropriate legacy code that performs form.submit() and sets the encoding properly. | System Administration |
INC-155789 | 622547 | Third-party libraries upgraded | The following third-party jar files have been updated to the most recent versions: ant: v1.10.9 httpclient: v4.5.13 xercesImpl: v2.12.1 |
System Administration |
INC-157196 | 629297 | Deprecated service package features now require authentication | Authentication has been added to deprecated features of the standard service package to improve security. If issues are encountered during product migration, please use the Deployment Manager. | System Administration |
INC-158519 | 625079 | Filter considers all instances pages during deployment | During package deployment, attempting to use Filter to skip some of the instances only displayed the result of the current active page instead of all pages. This was an unintended consequence of previous work, and has been resolved by adding the logic to strip quotes in the value and adding the "Pagination activity manages filtering" checkbox by default. | System Administration |
INC-159834 | 632249 | StackOverFlow logging improved | Enhanced diagnostic logging information has been added to help find issues when StackOverFlow errors occur. | System Administration |
INC-160288 | 626067 | Kerberos handling updated for database remap | After upgrade from Pega v7.2 to Pega v8.4, using Kerberos authentication was failing during the remap task. Investigation showed that null username and password values were being passed to SchemaAssignmentUtility along with the flags as arguments, causing the utility to misinterpret the arguments. As arguments should be populated only when flags and values are available and not null, an update has been made which will set the username and password flags only if they are not null in the Remap database tables target. | System Administration |
INC-160382 | 630714 | Added handling for double quotes when converting tables | After importing some packages from development to production, DDL conversion failed for tables with 30 characters in the table name when the import file contained a "Create VIEW" sentence. This was due to the addition of double quotes (" "). The table rename utility was not expecting to handle quoted table names, so as a result the addition of the quotation mark characters were included in the length calculation, and when renaming was performed it yielded syntactically invalid names (with leading " in the name). To resolve this, an update has been made which will strip quotes from table names being passed into TableRenameUtil. | System Administration |
INC-163940 | 634491 | CustomerData schema added to list of databases for optimization | was no "Create?" column. This column appeared for the PegaDATA database but not for CustomerData. To resolve this, the Optimize Schema Landing Page has been updated to treat the CustomerData schema as a shipped Pega database. | System Administration |
User Experience
8.6 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-118743 INC-144924 |
609580 614768 |
System improvements related to ActiveDocumentType | Alerts were seen for unexpected properties in HTTP requests related to pyActiveDocumentType, and system slowness was seen when the request was trying to update the properties. This was traced to a condition where a page remove cleared property registration, and has been resolved. | User Experience |
INC-118907 | 565630 | Document statetracker updated for more consistent Scenario Testing | Inconsistent behavior was seen when running Scenario Tests: the same scenario test case run multiple times without any changes would sometimes pass and sometimes fail, and sometimes the fields were automatically filled in and sometimes they weren't. Scenario tests depend on the document-statetracker for moving from one step of the execution to the next, but an intermittent failure to reset the document statetracker back to the idle state caused inconsistencies in the execution. To resolve this, a new pub-sub mechanism will be used on the document statetracker. | User Experience |
INC-120299 | 583025 | Added null check to ActivityStatusExceptionHandler | Invalid Parameter Exceptions were being logged in the production environment related to an 'CPMInteractionPortalWorkArea' execution error on page 'pyTmpDisplayHarness' indicating "Invalid value for aReference passed to com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.getProperty(String, char)". This has been resolved by adding a null check before reading the DC data model in the activity ActivityStatusExceptionHandler. | User Experience |
INC-128279 | 591380 | Layout Group tab alignment correctly shown in IE | Even though the responsive breakpoint for a layout group was disabled, the tabs were getting changed to Menus in Microsoft Internet Explorer. This was traced to Tab-overflow being triggered in very small viewports when using IE11, and has been resolved by adding dom manipulations for all layout groups. | User Experience |
INC-128639 | 608654 | Updated dynamic container event listener for JAWS | Upon tabbing in, JAWS 2020 was reading the entire contents of the center panel including announcing "Center Panel", "Tab Panel", "Frame" and all UI elements in the center panel without stopping. This has been resolved by updating the 'pega.util.Event.addListener' function in PZPEGA_UI_DYNAMICCONTAINER. | User Experience |
INC-132176 | 588810 | Cache cleared before PDF generation to ensure proper fonts | The font File OCRAEXT.ttf added at location "/usr/local/tomcat/fonts" was not being picked when the PDF was generated via an agent execution. When the same activity was run manually, the font issue was sporadic. Investigation showed that when multiple apps use the same props directory but different fonts directories, the handling would sometimes cause one app to use another app's props file with the result of the improper fonts mapping. To resolve this, an update has been made to clear the cache before PDF generation starts to ensure the library reads the proper fonts. | User Experience |
INC-132500 | 602633 | Updated class name resolution for runtime with after-screen render load | Rule Resolution was not working as expected with the dropdown property “.ErrorType”, if the load behavior was configured as “After screen renders”. This was traced to the Class name resolution not happening at runtime, and has been resolved by moving the code related to class names to runtime. | User Experience |
INC-132569 | 595176 | Resolved case detail overwrite | In the interaction portal, when the same property (dropdown) was used to populate the details of sections in two cases, the first section (email case) details were replaced by the second section (outbound call case) details. Investigation showed that the refresh API was getting the reloadElement in the entire DOM based on the event target name property. To resolve this, updates have been made to use context DOM APIs to get the correct section. | User Experience |
INC-132670 | 585775 | JAWS reads optimized table rows correctly | When using JAWS2020 on Google Chrome on a PegaWAI enabled application and traversing an optimized table using Table shortcuts, the first row of the table was never read, and columns were read with the headers, but with unnecessary verbiage. For example, if column "Name" had an entry "Adam", JAWS read out "Name press enter to sort , Adam" instead of just "Name Adam". JAWS reads the data columns based on aria-rowindex: because it treated the header as the first row, it directly went to the row with aria-rowindex 2. In the second issue, the complete header group was read by JAWS because there was no aria-label. These have been resolved by modifying the aria-rowindex attribute for first data row accessibility by JAWS, and aria-label has added to the header group to restrict what is read out while navigating across the data columns. | User Experience |
INC-132771 | 584962 | MultiSelect properly handles refresh section | On hitting tab or enter on a Multiselect control with "Post value" and "Refresh Section" enabled, focus moved to the header of the page when it refreshed. This has been resolved by updating the 'disable when' expression for "run on client" to better handle the input element used for enabling the controls. | User Experience |
INC-133576 | 590326 | Expandable Grid behavior corrected | Expanding any row in master details was collapsing a previously expanded row. This has been corrected. | User Experience |
INC-133923 INC-153472 |
600299 629559 |
JAWS correctly reads headers of optimized tables | Table column headers were not being read correctly with JAWS2020 and Google Chrome when using the "Tab" key to traverse the headers of an accessibility enabled application (PegaWAI ruleset included) that had an optimized table. This has been resolved by adding enhancements to enable keyboard navigation as per the WCAG standards of grid navigation for optimized tables. | User Experience |
INC-133944 | 586017 | Future DateTime Property picks operator time zone | When selecting the DateTime in a property field configured to accept future data input, the input failed validation due to the DateTime field being compared with the System time zone (IST instead of the operator time zone. This has been resolved by adding a condition to honor the operator time zone in isFutureDate validation, and to fall back to the browser time zone if necessary. | User Experience |
INC-133978 INC-143260 INC-151378 |
587699 599302 613603 |
Overlapping columns fixed in ReportViewer | When Report Viewer was used for Report Definition, displaying it on dashboard columns resulted in columns that overlapped each other. This was traced to a resize issue related to the scrolling checkbox and has been resolved. | User Experience |
INC-134634 | 584947 | FSM Mobile app correctly starts phone call after closing Google | When two controls were configured in the FSM Mobile app, one for Get Directions and one to handle a phone call, clicking on the phone call control worked correctly when it was used first, but clicking on the Get Directions control and opening and closing Google Maps before clicking on the Phone call control caused the phone call control to not work. Investigation showed that after the Get Directions control was used, the # in the href attribute was automatically prepended with window.location. To resolve this, a check has been added that will compare the attribute with the completely formed {URL}# so that entire window.location will not be prepended. | User Experience |
INC-134891 | 589870 | Logoff set to use root context | The thread name was changing from Standard to DSCPA_DemoStudio on click of log-off, resulting in unexpected behavior if the user logged in again. To resolve this, an update has been made to trigger logoff in root context. | User Experience |
INC-134893 | 587170 | Added check for localeDb properties in dateTimeUtils | On click of the Approval/Finish assignment submit button, a blank screen appeared and no further progress could be made. This was traced to an issue with the operator locale not being properly set by the html fragments that initialize the locale for use in dateTimeUtils. This has been resolved by adding a check for properties in the localeDb object. | User Experience |
INC-135181 | 597423 | Clipboard handling updated to accommodate custom Cosmos portal | After upgrading and moving to Theme-Cosmos, a browser-level refresh on the user portal was not remaining on the same screen that issued the refresh, but rather on the default screen of the user portal. This was traced to a difference in clipboard handling of the Body parameter value for strJSON that was exposed through a customized Cosmos User Portal where Ajax Container was not used but still present in DOM. In order to support this use case, the tab_support file in sendReqToUpdateClipboard method has been updated. | User Experience |
INC-135285 | 586133 | ProcessMerge activity handling updated for auto-populate | If a flow action had auto populates and declaratives configured in it, merging back to pyWorkPage in the main page was not working correctly due to the method used for accessing the base page from the flow in a modal thread. This has been resolved by updating the handling for this process. | User Experience |
INC-135523 | 590436 | Tab panel read meaningfully by screen readers | When the tabPanel received focus with accessibility, the entire tab content was read instead of the W3 standard of only reading "Edit ". This has been resolved by ensuring the Tabpanel has the proper aria-labelledby. | User Experience |
INC-135992 | 595355 | Corrected Windows attaching file to incorrect case | When using Microsoft Internet Explorer with Windows 10, opening multiple cases in multiple browser tabs and switching between the different cases created a condition where a file might be attached to the wrong case. This has been addressed by updating pzHarnessInlineScripts. | User Experience |
INC-136057 | 587165 | Modal dialog close for date/time works as expected | When a date/time property was used in a modal screenflow in Chrome, changing the date property on the pop up calendar and then clicking the modal close caused the screen to freeze. This was caused by the plf.handleModalClose() being called a second time for a container close event that was not available in window.event. This has been resolved. | User Experience |
INC-136563 | 607419 | Tenant Switching updated | When working on new “tenant switching” implementations in a multi-tenant environment, the API itself seemed to be working as expected (case details from another tenant were shown correctly in review mode), but clicking on the assignment unexpectedly opened the case in a new window that contained the same review view of the case rather than the perform view. Clicking the assignment link again caused yet another review window to open with the same issue, over and over. This has been resolved by adding a UI-side update to send the requests on proper sub-domain URL instead of using the parent domain, and by ensuring the document threads are properly deleted for multitenant usecases. | User Experience |
INC-136659 | 593768 | Template circumstancing works for report definitions | On circumstancing the pyMyCasesReport using the Template option, it always displayed the base report definition instead of the circumstanced one when referenced the same report in the table in section. Because the grid component called two activities 'pxRetrieveReportData' and 'pxRetrieveReportMetadata' to render the table, the step page passed to these activities was from @baseclass. This caused the circumstanced template created in work- class to not get picked up. To resolve this, updates have been made to ensure the step page to the above activities will be of the report definition class. | User Experience |
INC-136793 | 585604 | Updates made to display busy indicator correctly in Google Chrome 84 | The Pega busy indicator was not displaying correctly in Google Chrome 84 due to changes in that browser. The needed updates have been made to adjust for these changes. | User Experience |
INC-137100 | 604058 | Added predictive text handler for Japanese on iOS | The autocomplete function was not working well in MobileView when using Japanese IME on iOS. This has been resolved by adding a new input handler for IOS mobile, which will be triggered when predictive text is selected in mobile. | User Experience |
INC-137168 | 588082 | Documentation updated for Ajax container refresh | The documentation for adding an Ajax container has been updated to reflect the proper configuration for adding a refresh within the container. | User Experience |
INC-137276 | 585299 | Arrow key navigation updates for layout grid tabs | When a layout grid was configured as Tab mode, the up and down arrows allowed navigation between tabs. This has been modified to meet W3 standards of using left/right arrow keys to navigate between tabs and up/down arrow keys to scroll the page. | User Experience |
INC-137324 | 584918 | Corrected tabbing focus when modal flow has 'disable when' | While tabbing through the modal dialog, focus moved to the background screen if there were custom flow action buttons that had a 'disable when' condition. This was caused by the last focusable element being a disabled element, and has been resolved by adding a disabled check in the getLastFocusableElement method that will determine whether element is disabled, and if so it will look for other elements as disabled elements can't be focused. | User Experience |
INC-137439 | 584006 | cleanRTEContent method updated | Updates have been made to the JSoupParserUtility.java file to sanitize the call to confirm and the object tags. | User Experience |
INC-137510 | 591294 | CKEditor Source edit with formatting resumes process automatically | Buttons on the harness were freezing after applying format using CKEditor when source mode was turned on in RTE. Investigation showed that on clicking the source button, after applying styles, the events were being paused and were not resumed automatically. This has been resolved by adding changes to resume the event queue. | User Experience |
INC-137691 | 585770 | Aria label added to support description of tab groups | When using layout group - tab, the screen reader would immediately read the first tab; there was no information about the tab group itself. To support giving a description of the purpose of the upcoming tabs, Layoutgroup and DLG now have a design time descriptor to configure an aria-label which will be used to announce the purpose of the Layoutgroup ahead of reading the first tab. | User Experience |
INC-137736 | 585511 | Timing issue resolved for modal animation | A modal dialog configured with Reveal Animation appeared first without the animation and then disappeared, immediately followed by the animated modal dialog. This was traced to a set timeout that caused the modal to render before the animation, and has been resolved by removing the set timeout. | User Experience |
INC-137818 INC-150074 |
594024 613070 |
Corrected sorting icon accessibility when grid size is not fixed | After configuring a table and checking the boxes for Filtering and Sorting and unchecking the fixed (pixel) size grid box, tabbing in to the grid/table using the keyboard did not bring the focus to the sorting icon /header, but instead the focus went to the filter icon. If filter was unchecked and sorting was checked, the focus went to the first row of the table. This was traced to the column headers missing the tabindex attribute when the column headers were not fixed. When the column headers were fixed, tabindex =0 was present for the column header and the sort icon was accessible. This was traced to the Freeze Header value not being updated according to Fixed Size value because it was not a fixed size grid. To resolve this, an extra condition has been added in GenerateCellContent Rule-Utility-Function to be used while checking the Freeze Header | User Experience |
INC-137875 | 608103 | Update for special characters in operator name | Handling has been added for encoding an operator full name field which contains special characters. | User Experience |
INC-137966 | 597739 | Embed-ReportFilter supports pyDateproperties | After creating a report definition with Date time filter values where the 'from' date and 'to' date are input and propagated as “pyStartDateTime” and “pyEndDateTime” in the clipboard, opening the pyDate properties from clipboard resulted in a 'rule not found' exception. No properties of other data types generated the error. This has been resolved by creating the pyStartDateTime,pyEndDateTime and pyDisplayTimeperiod properties in Embed-ReportFilter to support this use. | User Experience |
INC-138309 | 591149 | Added busy state reset to reenable buttons after custom frame cancel | When using a custom iFrame in a section that called a third-party URL, clicking on cancel for the popup "Do you want to stay on this page or leave it?" caused the screen to freeze. This was traced to the cancellation of the dirty page setting a busy state which disabled all the buttons and did not have a path to recovery. This has been resolved by updating the busy state so it will reset when the user chooses to cancel the changes and reenable all the buttons. | User Experience |
INC-138354 | 594355 | Third party cookies reminder added for Mashup in incognito browsers | When working in incognito/private browser windows, attempting to use Mashup displayed a message indicating login credentials were not recognized ("Unknown password and/or username"). This was due to recent changes originating with the browsers regarding blocking third-party cookies which are necessary for Mashup to run. For informational purposes, a new API has been added which will check for the PegaRules cookie; if the cookie is not present, the message "Third party cookies must be enabled for Mashup to function." will be displayed. This message may be customized by configuring the setting "pega.web.config.xCookiesDisabled" with the required message. | User Experience |
INC-138672 | 593280 | Corrected size of Session Timer modal window | The session timer modal dialog window did not have the correct height. This has been resolved by increasing the height of the logoff timer modal dialog from 210 to 236 in the desktop_showTimeoutLogoffDialog method of the pega_desktop_appcontrollerlite.js file. | User Experience |
INC-138701 INC-140140 |
596611 595669 |
Multi Select populates values for Page group | Multi Select populates values for Page group The Multi Select control was not populating values when Page group was chosen as a source. This has been resolved by updating control_multiselect and pzgetACdata to support page group source. |
User Experience |
INC-138709 | 591325 | Removed empty space in harness error messages | After changing the display option for the validation error message to top of the harness, the message was displayed along with empty white space. This gap was caused by a hidden error table which had display set as "block", and the display has been resolved by changing the display to "none". | User Experience |
INC-138803 | 591925 | Mouse event Cross site scripting updates | Cross site scripting protections have been added to mouse event attributes. | User Experience |
INC-138877 | 589534 | Filter range decimals persist for German locale | When using German localization, filtering values in Dashboard caused the entered decimal value range (13.00 - 50.55) to lose the separator and become a whole number (1300 - 5055). This has been corrected. | User Experience |
INC-138886 | 589301 | Animated modals correctly trigger refresh conditions | In the client application, a list of tasks can be selected by the user to act on. Clicking on any action opens a modal to work on the task. Once that task is complete, the modal is closed automatically, and the task list is updated to show the next task. The task list section has a refresh condition that triggers when D_Reload.pxUpdateDateTime changes (that timestamp is updated when a task is completed inside the modal). However, after upgrade the task list was no longer updating correctly. This was traced to the animation being performed as an asynchronous task: by the time it was executed, the dom element was not present and the refresh section was not getting triggered. This has been resolved. | User Experience |
INC-138968 | 594169 | ARIA landmarks added to put dynamic layout in tab order | As part of W3 accessibility specifications, ARIA landmarks have been added to dynamic layouts to direct tabbing focus. If the role type is "landmark" or "document", tabindex=-1 will be added, and for component widgets tabindex=0 will be added unless it is a non-focusable element like Alert, log etc. | User Experience |
INC-139023 | 591164 | Tab will exit portal side menu | It is expected that the Tab key will take users out of the portal menu and to the next focusable element, but on the side navigation menu both tab and arrow keys moved to the next menu item. This caused users to have to navigate the entire menu. The correct behavior was seen for the Navigation rule when called from an Action (for example on the button). This was traced to the system using tabindex as "0" for every element in the menu, and the tabs code has been updated to exit out of the menu bar when pressed. | User Experience |
INC-139086 | 597145 | "Show next error" correctly displayed on user portal | In the Case Worker user portal, the Show Next Error link was not shown when the layout group had a validate rule in the flow action. The same configuration worked as expected in Case Manager. This was a missed use case, and has been resolved. | User Experience |
INC-139095 | 596506 | Portal loads for Simplified Chinese locale in IE | When using Microsoft Internet Explorer, the portal would not load when using the Simplified Chinese locale. This was caused by Internet Explorer rendering the locale as 'zh-CN-#Hans' instead of the expected 'zh-cn'. This has been resolved by adding a check to remove the "#" in the locale string to avoid a malformed URL. | User Experience |
INC-139156 | 592149 | Pasting image lands in correct location | When pasting an image in a user story or issue, the image did not land where the cursor was placed in the contents of the issue or story. This was traced to the insert element handling for RTE, and has been resolved. | User Experience |
INC-139260 | 592219 | Handling added for third party form library | When using a third party library which created a form tag, the wrong form was used on submit in the Ajax container. This has been resolved by updating the pzpega_ui_doc_submit file submitInner method to handle this use case. | User Experience |
INC-139327 | 595698 | GetImmutablePropertyInfo updated to return pyType for page group properties | Dates were are not matching in the UI and Apply filter section in the date column of Table layout filters. The system calculates pyType properties on save and passes the complete reference of the property to the getImmutablePropertyInfo API, but this resulted in the API ignoring the subscript if a nested page group property was passed. To resolve this, updates have been added to invoke the API getImmutablePropertyInfo so the property name and class name are passed during runtime in order to return pyType for page group properties. | User Experience |
INC-139328 INC-147665 |
588585 605058 |
Corrected Excel table picture being included with Rich Text Editor paste | As an unintended consequence of code added to allow pasting or dragging and dropping an image for upload using Rich Text Editor and the CK Editor, any copied content from Excel also added a table picture to the last cell as part of the pasted data. This has been resolved by updating the system to recognize content copied from Excel and prevent uploading of the image. | User Experience |
INC-139531 | 594426 | AppendToPage List preserves parameter page | After upgrade, when AppendToPageList is called on Step3, Java was removing the parameter page. This was an unintended side effect of security updates, and has been resolved. | User Experience |
INC-139624 | 595987 | Validation error messages persist appropriately | Whenever there was a Validation check on a flow action Validation Tab and Post Processing Activity, the error message appeared on the screen momentarily and disappeared. Intermittently, the validation error would stay on the screen after appearing a second time. This was traced to the refresh action happening in the wrong context due to the refresh action of the Ajax container being called twice, once in postacrenderac and another time in the harness unload function.The case error DOM was present in the markup, but because of the refresh in the harness unload, the error message was removed from the DOM. This has been resolved by changing the refresh call from onHarnessUnload callback to postAcRender callback. Logic has also been added to prevent refresh when error messages are present. | User Experience |
INC-139645 | 597499 | Flowaction button responds for grid modal window | The submit and cancel buttons were not working on first click for a modal window opened from a grid. Investigation found that this happened when the grid was shown on launching a harness but not if the grid was set to show otherwise in tabs, and was not seen when launching modal windows normally either from tabs or from harness (the pzModalTemplate or pyModalTemplate). This was traced to the system passing the target as a window to getTrackerChanges from triggerEvaluateClientConditions, which caused getTrackerChanges to be called on every window action. To resolve this, the event has been changed to 'focus' so that the method gets called only on focus. | User Experience |
INC-139739 INC-153783 INC-156625 |
598901 612992 620656 |
Cross site scripting protection update | Cross site scripting protections have been updated for labels. | User Experience |
INC-139849 | 598126 | Sorting icon visible for table in Cosmos on Chrome | Tables were not showing any sort icon / indicator in the column header when using the Cosmos Theme in Chrome. This was only occurring in apps created with the Cosmos theme, and was caused by the sort icon for a non-optimized table using display flex, resulting in the position of the icon being displaced. This was a missed use case of having a non-optimized table in Cosmos, and has been resolved by removing the non-optimized-related CSS code. | User Experience |
INC-139966 | 606842 | JAWS announces popup error message | When a form is submitted without giving value to required field, a browser pop up appears. The expected behavior is that the screen reader (JAWS) should move the focus to the field that has error and read the error message However, JAWS was not announcing the error "Value cannot be blank". This was traced to a scenario where if pega.u.d.fieldErrorType === "ERRORTEXT" is true, the class on the span within the error div will be set to "inputSpans", and this resulted in the return of an empty array for document.querySelectorAll("span.iconError.dynamic-icon-error"). To resolve this, support has been added for the "inputSpans" class. | User Experience |
INC-140205 | 595661 | Safe check added for first element focus on inline table edit | When moving the scrollbar when performing an inline edit of a hierarchical table, releasing the scrollbar caused it to move to the top of the table. This would continue until a refresh was performed. To resolve this, a safe check for focus first element method has been added. | User Experience |
INC-140289 | 589004 | Check added to preserve clipboard pages for pop-up | Many properties were missing in the clipboard after launching an ImageViewer. This was traced to the clipboard pages being deleted in the pop-up mode, and has been resolved by adding a check to not delete pages in case of pop-up opened from top navigation case. | User Experience |
INC-140848 | 596460 | Button row correctly added for click on exception list | After upgrade, clicking on an exception list button in the mobile app was not adding a row to an existing Page List as expected. Investigation showed that pega.u.d.refreshSection was not executing correctly from RunScript, which was traced to a missed use case for handling an empty repeating dynamic layer in this scenario. This has been corrected. | User Experience |
INC-141099 | 598130 | Updated Cosmos confirm notification visibility conditions | After routing an assignment to different operator, the current operator was still seeing the Go button in Cosmos for processing the assignment. Clicking on the button resulted in an error. To resolve this, the confirm notification section reload has been moved to a different context, and the visibility conditions have been updated to handle more use cases. | User Experience |
INC-141302 | 614992 | UI automation script documentation update | To provide a more consistent experience, explanatory comments in the code for UI automation scripts have been removed. | User Experience |
INC-141387 | 612825 | Autocomplete/autopopulate in table works properly with keyboard | When two autocompletes in a table (two separate columns) were sourced by different properties within the same data-page, clicking to select a “reason-code” in the first autocomplete column correctly populated the corresponding “reason description” in the second column autocomplete. However, when using configured keyboard presses on the auto complete with post value and data transform actions (enter-key, tab-key, and on change), selecting from the auto-complete list and pressing enter or tab to select the item populated the second column as expected but the first column auto-complete showed the selected code for a moment and then was cleared. This as traced to the associated property set value executing after all associated properties setvalue actions were completed, and has been resolved. | User Experience |
INC-141451 | 595435 | Radio button helper text is localized | The localized value from content was not being served for helper text in a radio button group. This has been resolved by adding the necessary localization support to the button template. | User Experience |
INC-141499 | 596066 | Tooltip option for Label control visible | After upgrade, the Tooltip option for the Label control in grids/tables was missing. Labels which had a tooltip before upgrade were working, but new fields could not add a tooltip. This was traced to a check for 'Run visibility condition on client' condition, and this has been removed for tooltip layout to resolve the issue. | User Experience |
INC-142034 | 596084 | Tab moves to next field after autocomplete | After entering the value on an autocomplete field, it took two presses of the Tab key to move to the next field. Investigation showed that on autocomplete keydown of the tab key, there was an event preventing the expected default behavior. This has been resolved. | User Experience |
INC-142066 | 600044 | Dirty confirmation alert added for standalone Ajax container | In the Pega CS interaction portal, an interaction could be launched to create a service in the Ajax container. If the same service was opened from the search results or the worklist, however, it was not prompted with the dirty popup message to save or discard the changes. This was a missed use case for a standalone Ajax Container, and has been resolved by adding a check to evaluate whether the document has an Ajax Container so the proper dirty state handling will be called. | User Experience |
INC-142214 | 598765 | Null Checks added for Null Dereference | Null checks have been added to CSSAsJson and to the activeValue variable, which is used for the checked attribute generation. | User Experience |
INC-142452 INC-145225 |
595039 602947 |
Resolved error in personalized table | After creating a section and adding a table, checking the personalization option in the table properties and clicking refresh caused the UI to become unresponsive. This was traced to a missing check in the template that was needed before accessing the busy indicator, and has been resolved. | User Experience |
INC-142557 | 600527 | Accessibility added to Recents | Under all recent items, the work object was not opened when using the keyboard and the focus was on the work object. Clicking with the mouse worked. Investigation showed that on pressing the enter key, actions were not triggered because the action string was not on the same SPAN tag (but in child node). This has been resolved with an update to add tabindex on the same span where action-string is added. In addition, accessibility was not enabled on the out-of-the-box Recents table because the work object elements in the table used a formatted text control; this has been updated to use a link control which will enable the accessibility feature while using keyboard navigation. | User Experience |
INC-142564 | 598696 | Resolved issue with opening case in review mode | After upgrade, using the Open in Review button from the Dashboard to view a case that the user did not have work entitlements on opened the case as expected, but the screen then immediately refreshed and redirected to the home screen. This was traced to the button configuration having an incorrect action set, with cancel action and then OpenWorkByHandle, and h as been resolved by updating the open in review button to remove the cancel action. | User Experience |
INC-142589 | 595490 | Corrected tooltip evaluation for multiselect | After adding help text for a multiselect help icon with overlay on hover field, the value was not being sourced. Changing to a different type of help text or control type worked as expected. This was due to an error in case sensitivity, using pyToolTip when it should have been pyTooltip, and has been corrected. | User Experience |
INC-142714 | 596555 | Recent Cases from different applications available to open | An enhancement has been added which will allow opening other application assignments in the Recent Cases section of the current application when the user has access to multiple applications. | User Experience |
INC-143005 | 596955 | Fluid Overlay displays as expected in Firefox | After upgrade, using the Overlay format "Fluid" to perform the screening matches task in CLM using Firefox had an overlay that covered the entire screen but was missing the scrollbar to manage the content. This has been resolved by adding changes to support dynamic content (with scrollbar) for center overlay. | User Experience |
INC-143363 | 604364 | Added handling for maintaining on-change event descriptor | The multiselect control was not reliably posting the values to the configured page list property if the change actions were performed very quickly. Multiselect calls triggerCustomEvents, which handles the schedule for an event: when change actions are entered in a paced way they are not added to a queue, but when performing on-change very fast events are added to a queue and processed later. In this case, the queuing caused the correct event descriptor to be lost because the original event flows were not followed. This has been resolved by adding custom handling which will maintain the event descriptor. | User Experience |
INC-143599 | 598770 | Non-template RDL time value handling updated | The Time value displayed on clipboard and data designer differed from the value shown on user work form when using a categorized repeating dynamic layer rendered in non-template mode with the Datetime control configured inside the RDL. This was traced to the Time string being considered as a date when using this configuration and calling the engine API, and has been resolved by ensuring this configuration will call the correct Time API instead so that the timeofday property value will be formatted correctly. | User Experience |
INC-144301 | 604407 | Revised character escaping for Tooltip | Hover text/Tooltip on the Collapsible layout was showing the content in ASCII format if the input string contained special characters like "&" (which was getting printed as "&"). This has been resolved by unescaping the title string and letting handlebars do the work of escaping it. | User Experience |
INC-144320 | 600536 | Dirty Flag reset updated | After opening a case in Cosmos, making updates, and then navigating away without saving, the dirty flag message appeared as expected and offered the option to save, discard, or cancel. After clicking on save and opening the next case, performing the same steps did not cause the dirty flag to display when navigating away. This has been resolved by updating the reset of the isDirtyDialogOpen inside the hide API of a modal close. | User Experience |
INC-144500 | 600031 | Cosmos layout switch works with language packs | When using localization, operators were unable to switch between Details & Pulse layouts: no action was performed on click of the tabs. This was traced to the generated java code in the pzTemplateNav control which fills out the navigation data page with values for "section name" and "label" used for targeting corresponding section in DOM. Because both values were not working in all possible cases, this has been resolved by swapping section targeting from label-based to index-based. | User Experience |
INC-144515 | 608599 | Corrected multiple harness error messages being displayed | Same validation error messages are being displayed multiple times for the harness. This was traced to the way the system checks for an existing error table based on the data-harness-id attribute in the current harness context; sometimes existing errors tables are missed and new ones were created which stacked up on screen. This has been corrected by adding a condition to check for existing errors. | User Experience |
INC-144522 | 612321 | Portal primarythread copied to workprocessing thread to establish proper class | Attempting to add a new item/row in a table configured in a modal dialog in the home page of the Cosmos portal was not working, and the error "Section 'TestSection' execution error on page 'pyWorkPage' of class 'CosmosApp-Work-TestCaseType'. : For input string: "" appeared. This was a missed use case for pyPortalHarness, and was caused by the primarypage not getting copied to the workprocessing thread which led to some actions failing as classless. This has been resolved. | User Experience |
INC-144543 | 600084 | Keyboard accessibility added to Cosmos buttons | Focus states were missing on the standard and icon buttons in Cosmos. These have been added to facilitate keyboard navigation. | User Experience |
INC-144572 | 600756 | Corrected mobile tab layout highlighting | When switching between three tabs in a layout group (Other – Mobile Tabs) in a section, the highlight was appearing on the active tab and the inactive tabs. This has been resolved by updating the CSS generation to not consider hover styles for touchable devices. | User Experience |
INC-144709 | 608796 | Removed unnecessary decoding from GetDropdownOptions | When using a dropdown sourced by a data page with parameters in the section, passing multiple values as the parameters of the data page resulted in the error "pzGetDropdownOptions:Invalid JSON Stream for data page params" and the parameter values were not resolving at runtime. This was traced to unnecessary decoding in the process, and has been resolved. | User Experience |
INC-144778 | 619616 | Performance improvements for Ajax tab switching | When using a 360-view of members in a portal implemented with an Ajax container that showed information in multiple tabs, tab switching was taking a lot of time even though the data was already in the memory. Updates have been made to improve performance. | User Experience |
INC-144851 | 604480 | Date Time picker works with locale es_US | When an Operator had the locale es_US (Spanish) set on the Profile, the Date Picker on the application was throwing validation errors when a date or time was chosen from the out-of-the-box Date Time Control. Investigation showed the date-time format for locale es_US was not supported, and the getDateTimeFormat API has been updated to support this format (11:00 a.m.). | User Experience |
INC-144888 | 603617 | Custom Rich Text Editor plugin support updated | At runtime, two Rich Text Editors were used in the same harness under two different sections, one regular and one hidden till clicked. A custom plugin was implemented for Rich Text Editor at the harness level. After upgrade, the custom plugin was not getting displayed in the hidden Rich Text Editor. Investigation showed that if plugins were added to pega.ctx.customRTEPlugins, then the plugin manager discarded plugins from pega.u.d.customRTEPlugins. To resolve this, the Rich Text Editor plugin manager has been modified to merge the plugins from pega.ctx.customRTEPlugins and pega.u.d.customRTEPlugins. | User Experience |
INC-144924 | 618734 | Security alerts resolved for ActiveDocumentType | SECU0001alerts indicating "HTTP Request Corrupted" were seen in the log files. These were related to the pyActiveDocumentType properties which are included in an Ajax request, and were caused by a condition where a new thread request results in an unexpected property check that encounters a clipboard which doesn't have any pages created for that thread. To resolve this, the pyActiveDocumentType properties have been added to an allow list to handle the unexpected properties check. | User Experience |
INC-144951 | 601976 | Updated specificity for custom-format inputs | After upgrade, custom formatting for a link control was not working in the skin or during runtime. This was an issue where identical format names used for links and text components caused selectors from the text area to take precedence over link styles, and has been resolved by updating styles to increase specificity for inputs instead of links. | User Experience |
INC-145119 | 601711 | Client side validation works with Reference page property | A reference page property in a 'when' rule was not evaluating properly for checking a Date field when client side validation or Client side template UI was checked on the Harness level. This was traced to pyRequired being boolean: the boolean being compared to a string false value yielded a wrong comparison, leading to the wrong validation type required. To resolve this, the system will use the === comparator to compare boolean false in datetime to remove the required validator. | User Experience |
INC-145263 | 600035 | Query logic modified for Anypicker | A search for results in the Anypicker control for the first time showed the results, but if the results were deleted and the search run again without focusing out from that field, no results were found for the second search. This has been resolved by using slice than splice in the query to avoid mutating the original array source. | User Experience |
INC-145467 INC-150555 |
617214 620544 |
isDCSPA flag added to ensure correct harness after reload | When moving from a Process Flow to a Screenflow configured with tabbedscreenflow7, the first reload caused a switch to a Perform Harness that resulted in the error "Unable to open an instance using the given inputs", and footer buttons disappeared until multiple refreshes were done. This was an issue specific to the environment configuration at the site, but to avoid future issues a code update has been made that will add the isDCSPA flag if the value is not present in the parameter page. | User Experience |
INC-145535 | 600784 | Corrected layout group overlapping content | When an editable Table with Master Detail Edit has a section that contains a Layout group (Tab) inside the Master Detail Flow Action, if there are more layout group headings than that can be contained in the screen, a left and right arrow are displayed to toggle between headings in the layout group heading bar. However, timing issues sometimes caused the contents of the layout group to overlap on top of the content below the layout group and the screen was freezing with a loading icon. This was traced to console errors, and has been resolved by adding an 'undefined' check to prevent those errors. | User Experience |
INC-145939 | 606897 | Updated handling for ID value change during REST connection creation | When using the REST Connector Wizard to create a connector, if the ID was changed on the 4th (last) step of the Wizard and then the Create button was pressed, the screen would freeze and a display a javascript error. Investigation showed that when the ID was changed on the screen, the new value was not updated properly and subsequent function calls threw errors. This has been resolved. | User Experience |
INC-146223 | 604465 | Date column filter shows correct date/time for optimized code | Two issues were seen when filtering a table that had the "Optimize Code" checkbox checked: 1) While filtering the date values in the table, the table showed one day less than the actual date based on time zone differences. When both the operator and server time zones are the same, the issue did not occur. 2) The filter always showed the time value as 00.00 irrespective of the property timestamp value. These were traced to the pyModes being incorrect for embedded properties, which has been resolved. | User Experience |
INC-146237 | 608742 | Corrected popover scroll for AnyPicker | Using the AnyPicker control caused display problems. In the initial display of the selection list, the line of choices and the search field overlapped and they were displayed from the second line of choices which forced the user to scroll up to see the first line. After displaying the selection list, clicking outside the selection list without selecting anything to close the list and then displaying the selection again caused the options to be displayed from the 4th line, requiring a scroll up to see lines 1 to 3. This has been resolved to ensure the Scroll on Popover goes to the first element. | User Experience |
INC-146262 INC-150189 |
603690 608910 |
Handling added for new doc.write with Google Chrome 85 | Document.write was not working as expected on Google Chrome 85 due to the DOM elements not being updated. This has been resolved by updating the code to do doc.write by checking the if the document body has no child nodes in a time out. | User Experience |
INC-146429 | 602291 | Disabled control status made accessible to JAWS | When using the Security Event Configuration page (tab) within Pega Dev Studio, the link elements used for 'Select All', 'Clear', 'ON' and 'OFF' were not providing the current State of the element to JAWS. In template rendering of Link control with a 'disable when' condition (server-side evaluation), when the control is disabled it was still accessible and screen readers were not reading the link as disabled. This has been resolved by adding tabindex="-1" and aria-disabled="true" for disabled Link control. | User Experience |
INC-146572 | 603295 | iniGadgets updated to support jQuery with Mashup | Mashup gadgets were not loaded during browser refresh when the host page had a jQuery in it. This issue occurred while trying to find the gadget divs. There is an 'if' condition to check if $ is available in initGadgets method. In this scenario, this 'if' block was getting executed and mashup gadget divs were returned as empty. As a result. mashup was not getting loaded. This has been resolved by updating the iniGadgets method to check for jQuery instead of $. | User Experience |
INC-147245 INC-151952 |
612866 609338 |
Expand Pane icon responds to enter key when using JAWS | In an Operator ID rule in Dev Studio, pressing the Enter key when focused on an Access Group expand icon caused the focus on the page to move to the top of the Contact Information frame (top left corner of the Frame). The only way to use the enter key to expand the pane without the refocus was to tab to the arrow icon and then tab a second time before pressing enter. This was traced to the expand caret icon being focussed twice due to the tabIndex for both the TD and SPAN elements holding the caret icon: TD had a focus element for accessibility of the grid, and SPAN had it for the expand pane accessibility. This has been resolved by adding a check condition before adding tabIndex to the first cell in the Grid. | User Experience |
INC-147537 | 604641 | JAWS reads error messages only once | JAWS v18 was reading harness level error three times or more. This was traced to multiple error message divs being generated in the HTML, and has been corrected. | User Experience |
INC-147590 | 608130 | Handling added for new doc.write with Google Chrome 85 | Document.write was not working as expected on Google Chrome 85 due to the DOM elements not being updated. This has been resolved by updating the code to do doc.write by checking the if the document body has no child nodes in a time out. | User Experience |
INC-147683 | 605292 | Parameter added for skipping thread cleanup in RedirectAndRun | Attempting to close an interaction after completing a phone call was resulting in a blue screen with the error "PRRuntimeError Caused by: com.pega.pegarules.pub.generator.RuleNotFoundException: 'RULE-OBJ-FLOWACTION' 'AGENTAVAILABILITYFLOW'." This was traced to the page context not being found for a rule from the Pega Call ruleset, and has been resolved by adding the boolean parameter bSkipCleanUpAllThreads to the RedirectAndRun Activity that can be set to true to prevent thread cleanup. | User Experience |
INC-147757 | 620012 | RecordFieldValuesList page cleared | Investigation of web node crashes traced the issue to a condition where the RecordFieldValuesList page was not cleared. This has been resolved. | User Experience |
INC-148115 | 605422 | Autocomplete results list position scrolls inside a table | Given a row editable table with a fixed height and freeze grid header, when autocomplete was included in a row of a table and the down-arrow was pressed to get the list of options in dropdown, this drop-down popup was not moving along with the row during scrolling. This was due to scroll handler not being triggered for popover when inside a hierarchical table, and has been resolved. | User Experience |
INC-148237 | 605847 | Autocomplete markup handles control format style names with spaces | After creating the format 'Standard Gray Background' in the skin rule to change the back-ground color for an auto_complete field and using it in a presentation tab for Control-format input, the field was not updated with the background color as expected. This was due to the Autocomplete control only replacing the first space in the control format name with underscore ( _ ), causing the formatting to not be accepted. While there was a workaround of providing a name without spaces or using a name with only a single space, this has now been resolved by modifying the autocomplete markup generation so all the spaces in a control format style name are replaced instead of only the first space. | User Experience |
INC-148272 INC-149953 |
608999 613728 |
Increased specificity for collapsed DL | When using the collapsible header functionality of a container skin format, the styling was not being applied correctly to the header. This has been resolved by increasing the specificity for a collapsed dynamic layer. | User Experience |
INC-148303 | 606796 | doRDLAction activity registered for BAC validity | Users were unable to see more than the 10 most recent pulse posts because of a security alert (SECU0019) being thrown when the 'Show More' link was clicked. Investigation showed the error was coming from the PegaGadget-Feed.pyRDLPaginator section: "pzdoRDLAction" is part of non-template rendering, and pagination will use "pzdoRDLAction" activity whenever paginator is used in a non-template section. Because of this, it must be registered for BAC security to accept it and pass through, and this has now been done to resolve this issue. | User Experience |
INC-148375 | 607797 | "Today" will set date-time in the respective operator time zone | When a Date was entered using the "Today" option in Datetime control, the Date set used the system date and Time was taken from time zone specified for the operator. This created issues for a scenario such as operator being set to America/New_York/ EST while the application was accessed in another country such as India or Japan. This was a missed use case and has been resolved by adding code to get the date-time in the respective operator time zone and setting it on click of date-time controls. | User Experience |
INC-148552 | 607368 | Added ability to disable dirty form browser alerts | In order to add support for those who do not want to see a browser alert pop-up when cancelling a work item after making changes but do want the out-of-the-box Dirty popup to be displayed, an update has been made to add a configurable flag. If pega.u.d.bUseNativeDirtyConfirm is set to false, only Pega dirty dialogs will be shown. Setting it to true will show the Pega dirty dialog or else the browser dirty dialog for an event object. | User Experience |
INC-149380 | 607327 | Layout improved for DisplayYesNo control | Margin has been added to the label of radio button to address an issue of too little space available between the “Yes” and “No” radio button options when using the standard “DisplayYesNo” control. | User Experience |
INC-150072 | 621295 | Section Include error handling updated | When trying to add or include a section in the design template mode of a section rule or during run time of the application, the error "java.lang.StringIndexOutOfBoundsException: String index out of range: -1" was generated. Investigation showed this was originating from the SectionIncludeForm_Post activity of the class Rule-File-Form, and was traced to a system error related to the 'if' condition which verifies the circular reference of the section being newly added. Because this was a system error and not one generated by Pega, there was no handling for it. To resolve this, the sectionincludepost activity in rule-form class has been updated to determine the source and properly handle the error messages. | User Experience |
INC-150188 | 613654 | Dirty dialog flag reset added for custom modals | When a discard button in a custom Cosmos modal dirty dialog was clicked, pega.u.d.isDirtyDialogOpen was not reset to false. This caused the modal dialog to not be shown the next time. This has been resolved by modifying pzpega_ui_doc_dirtyhandling to support this dirty handling discard use case. | User Experience |
INC-150222 | 612575 | Custom client-side future date validation works on mobile | After developing a custom client side validation based on documented examples that used jquery to locate two input fields (date pickers) and added an on-change function, the validation worked as expected on the desktop but gave a validation error for any future date when using the mobile app or browser. This was an issue with the name attribute handling on mobile, and has been resolved. | User Experience |
INC-150325 | 616993 | Child case has correct context when created from smart shape | The Cosmos Summary Panel was not always updating as expected when a child case was created via a smart shape in the current case flow; the new case opened, but the summary panel still showed the details of the previous case. This occurred when using a create case smart shape in a flow where the case is assigned to the current user, and was due to the child case assignment being opened inside the parent context. This has been resolved by ensuring the child case is opened in the correct context. | User Experience |
INC-150407 INC-153109 INC-153555 |
605841 611353 612227 |
Validation error messages correctly cleared in nested markup | A UI Freeze issue was seen whenever mandatory input was missed and the form was submitted. Continuing was possible after browser refresh, but a new Next>> button appeared. This was an unintended side effect of work done to correctly clear validation messages when areas had captions, and has been resolved by modifying that work so it performs as expected on nested markup. | User Experience |
INC-150472 | 607393 | Sorting works after selecting a view on GRID | After configuring an optimized table with personalized view, saving a view and toggling to the new view, the sorting on the grid did not work anymore. Returning to the default view did not fix the problem, but sorting was reenabled after a browser refresh. This was traced to duplicate removeinstance calls of the grid which deleted the click event listeners for sort, and has been resolved. | User Experience |
INC-150731 | 612882 | Stages list wraps in App Studio preview | While previewing an application in App Studio, the Approval stage section which included a header containing a chevron with each of the eight stage names across the top was displayed with the center pane expanded to accommodate the header and part of the right pane content pushed off the right edge of the window. A horizontal scroll bar was also added even though the stage names were truncated and displayed with ellipses ("..."). Investigation showed that the styles targeting stages were using flex nowrap as part of custom styles generated in pyenduser, and the styles have now been updated for stages for desktop to wrap if the number of stages would otherwise extend the screen. | User Experience |
INC-150778 | 612310 | Treatment UI screen correctly refreshes on save | In the Web Treatment screen, saving was not working as expected and the edit button was not visible. Investigation showed that whenever Web Treatment was saved after an edit, the grid was not getting refreshed and the previous treatment rule was opened instead of the new one. This was caused by the declarepage params handling in DecisionDataRecords which treated the value as a separate argument not specific to any section and resulted in empty parameters. This has been resolved by adding an additional check for the declare page in addition to the declare page parameters while processing each section of a multiple section refresh. | User Experience |
INC-150872 | 613078 | JAWS reads the tab name and the close icon details seperately | By default, all currently opened Work Objects Close icons have the label "Close Tab", but when moving across tabs while using the JAWS screen reader, reaching a work object tab caused JAWS to read the entire tab header as "S-123 close tab". In order to improve accessibility, aria-labels will be added while setting label to the tab so the header and close icon will be read separately. | User Experience |
INC-151050 | 610677 | Added check for empty string to custom Timeline Date Range | When using the Timeline control and selecting Date Range as a custom value, the loading icon (busy indicator) showed continuously on the screen and no other operations were possible. Selecting any Date Range other than the custom field value worked as expected. Investigation showed that the Timeline control was not working when the Date Range value was empty, which in this case was traced to a value being entered at design time and then cleared. In timeline options, the Date Range end option was checking for the value being undefined and did not consider the empty string (""); this has been resolved by adding a condition to check if the Date Range option end is an empty string. | User Experience |
INC-151401 | 615715 | Context set for progressive scroll load of dynamic layout | When setting pagination as 'Progressively load on scroll' for a repeating dynamic layout in a section with page list as the source, scrolling resulted in a null pointer exception and no further scrolling was possible. The issue was not seen when 'Progressively scroll on user action' was used. Investigation showed the activity Reload Section was failing because of the failure in the pre-processing activity, and this has been resolved by setting the correct context before making the pagination call. | User Experience |
INC-151716 | 618442 | Resolved Screenflow overflow | Screenflow bread crumbs were overflowing out of the action area when more than 10 assignments were configured. An error in the console indicated the navigation.navigate function was not defined. This behavior was observed in general when a screenflow was called from another screenflow and 'enable navigation links' was set on all assignments in the screenflows, and the issue has been resolved by updating the implementation. | User Experience |
INC-151858 | 610350 | Updated currency decimal precision | Hungarian and Taiwanese currencies were previously hardcoded to use zero decimal precision. In order to be compliant with the current ISO-4217 standards, these currencies have been updated to be precise to two decimal places. | User Experience |
INC-152084 | 620953 | Handling added for cross-origin DOM exceptions | When an openURLWindow action was used to open any other domain, DOM exceptions were generated related to cross-origin iFrames communication and the UI became unresponsive. This has been resolved. | User Experience |
INC-152171 | 610973 | Unused query parameter cleaned up from harness | Recent testing showed a legacy 'encodedPassword=true' query parameter lingering after changes were made to convert harness actions. Although there was no security implication as no sensitive information was being sent, this unused query has been removed. | User Experience |
INC-152227 | 613670 | Corrected filter icon on hierarchical table | After creating a section with a hierarchical table, filter icons in the header of the table were displayed in the form of a box and as a normal filter icon. This has been resolved. | User Experience |
INC-152283 | 626399 | Added handling for switching table context in a section | After configuring multiple tables in a section with row-editing on master-detail, opening the detail section of one of the tables and clicking inside it and then trying to open the details of another table generated the error "Can not render section'. The section would render correctly if the browser was refreshed. Investigation showed this was due to the new section opening in the wrong context, and the system has been updated to support this use case. | User Experience |
INC-152340 | 610909 | Scrollbar consistent on switching between grids in tabs | On switching between two grid tabs configured in a layout group of tabs, the scrollbars intermittently disappeared or doubled. This was traced to the initscrollbars function being called multiple times and adding hScrolldiv and vScrolldiv each time. To resolve this, the logic has been updated to recalculate the position style. | User Experience |
INC-152547 | 619032 | Check added for SPA portal | When using the FlowAction "ToCancel" to proceed to the "Withdrawn" stage, the "Confirm" Harness was not opening in a custom Portal. This was traced to a missing NO_UI configuration for FlowAction, which for SPA portal meant its single page caused doc.submit to repaint the whole window/portal. This has been resolved by adding a check for the SPA case. | User Experience |
INC-152945 | 613932 | Skin rule applied correctly post-upgrade | After upgrading from v7 to v8.5, attempting to apply the previous skin to the new application resulted in a java exception while saving. This was caused by null or empty values for the horizontalDividerHeight and verticalDividerHeight variable which were parsed as double values and led to a null pointer exception. To resolve this, null and empty checks have been added to GenerateFlexScreenLayout.java. | User Experience |
INC-153108 | 614359 | Added check to maintain disabled textarea 'when' | The disabled text field became editable when the "Run required condition on client" checkbox was enabled. This has been resolved by adding a check for pyDisabled property to get the correct status for textarea control. | User Experience |
INC-153152 | 613686 | Privilege on table cells updated for non-template mode | When using a table sourced from a report definition where certain cells were hidden or shown based on privilege, the configuration worked as expected in regular tables but did not work correctly for optimized tables. This was traced to an issue with image control rendering in non-template mode related to privileges for the image, and has been resolved by updating the pzgenerateicon RUF. | User Experience |
INC-153163 | 615112 | Header present in timeout modal window | After upgrade, the header was missing in the session timeout modal dialog when using the pzDisplayModalDialog FlowAction with the pzDisplayModalDialog HTML Rule. This was traced to the title value fetched from HTML not being set for use in the onload function of iframe, and has been resolved by ensuring it is handled by the pzDisplayModalDialog HTML rule. | User Experience |
INC-153249 | 614899 | Check box group links and buttons made clickable | After upgrading from v8.4 to v8.5, click actions did not have the same behavior when using the standard template pyCheckboxGroupTemplate section. In v8.4, clicking anywhere in the card body triggered the checkbox, but in v8.5 only clicking on the checkbox itself triggered it. This was due to the CSS for checkbox templates (in the py-design-template-styles CSS rule) being updated, and has been resolved by making the links and buttons clickable. | User Experience |
INC-153266 | 630851 | Error message after submit persists appropriately | When a template grid was in a section of flow action that performed validation and then populated an error message on a primary page post-processing, the messages were unexpectedly cleared after a very brief period. Investigation showed the network request made by the template grid created a state page on server which was being cleared, and this has been resolved by adding an update that will pass pzKeepPageMessages as true in the network request so the error message will persist as expected. | User Experience |
INC-153281 | 612784 | Selectors updated for segmented radio buttons in Cosmos | When using a Segmented format radio button in an application built on Cosmos, clicking the control caused the screen to flicker and the focus moved to the top of the screen. This behavior did not occur when performing the same action in a classic application built on UI Kit. This was due to a difference in positioning: in UI Kit, the input for the segmented radio button is positioned using an absolute position and the parent radioTable div uses a relative position, while in Cosmos the radioTable div is given a static position. This has been resolved. | User Experience |
INC-153318 | 621365 | Check added to match time zone for Time Picker | Time picker popup was showing minus 5 hours from the actual value in the time input field, though the value was updated correctly in the clipboard. The console error "Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist." was seen. This only happened when using the non-template mode of the Datetime control and configuring it with TimeOfDay property with the combination of Allow text entry as "No" and onchange event as Refresh-Section. The issue was not seen if Allow text entry was "Yes" from the presentation tab or if the event action "Refresh-section" was removed. This was caused by the markup process using the operator time zone to format the value but the default time zone (GMT) for the data-value. This has been resolved by adding a check in non-template mode so the value markup will be generated using defaultTimeZone. | User Experience |
INC-153415 | 616710 | On click outside grid record will be saved | When a record was added by copying a previous record, the new record was not saved if there was a click outside the grid. This has been resolved. | User Experience |
INC-153602 | 613567 | Corrected visible margin in segmented button format | After a new Segmented Button Format was created from the skin, an unexpected margin was applied between the elements. This has been resolved by updating the selectors for segmented radio buttons. | User Experience |
INC-153643 | 621715 | Dynamic layout group text area correctly rendered as editable for page list type | A text area configured in one section with Edit Options set to 'Auto' had the text area field appear as Read Only at runtime. The section included an embedded sub-section where a Dynamic Layout Group (Tab) was configured with Source set to "Property", and the text area correctly appeared as editable in the wrapper section if the Dynamic Layout Group (Tab) was removed from the sub-section. This was caused by the section content for the dynamic layout group not being handled for page list type, and has been resolved. | User Experience |
INC-153721 | 613662 | Visual natural labels exposed to JAWS in REST wizard | Get/Post/Put/Patch/Delete checkboxes were not properly read by the REST Integration Wizard when when tabbing through the checkboxes with JAWS enabled. When tabbing to each, “Tab – Select this method if it is supported at the endpoint” was read for each checkbox, and no information was given regarding what method each checkbox was for. When any helper text is configured, an aria-label attribute with helpertext message is generated. This aria-label will override any other native labeling mechanism (label - id mechanism), which is this case caused the control label to not be announced. To resolve this, the system will remove the aria-label attribute when helper text is configured and will add the helpertext div ID in aria-describedby for accessibility. | User Experience |
INC-154205 | 618737 | Corrected wrap text for Cosmos radio buttons | When using Cosmos, radio buttons with large labels were displayed with the text overlapping even when wrap text was enabled and the radio button placement was incorrect. This was traced to a height of 32px being set as the default, overriding the wrap text setting, and has been resolved by adding CSS to set the height as auto when wrap text on radio label is used. | User Experience |
INC-154564 | 617347 | JAWS reads the table header and filter options separately | When table headers for a non-optimized table with filter options received focus in Google Chrome, JAWS read the header, sort and filter options all run together. This was due to a difference in the way JAWS reads headers in Google Chrome from the way it reads them in Microsoft Internet Explorer, and has been resolved. | User Experience |
INC-154680 | 619029 | Moment time zone library update | In order to reflect updates such as Brazil discontinuing DST time, the moment time zone libraries have been updated to the latest available version. | User Experience |
INC-154754 | 629907 | Check added for portal when performing local actions | When using an Interaction case with a service case, performing any local action on this service case and then creating a new service case resulted in the I-related properties like CAParentID and CurrentInteractionID taking the pyID of the previous Service case where the local action was performed. This was caused by the parentKey value not being updated correctly in redux state whenever a local action was opened in a service case in a particular portal, and has been resolved by modifying the pzpega_ui_redux_reducers file to update 'parentKey' only in case of a DC SPA portal. | User Experience |
INC-154824 | 620923 | Check added for hidden field during validation | When using custom validation for a future date, after certain steps the message "value cannot be blank" was displayed even though there was a value in the date control. This was traced to the validation also being performed on a hidden field, and has been resolved by adding a condition in pega_validators to check for hidden fields when running the validation. | User Experience |
INC-154855 | 616001 | Updated expression handling when not using client side validation | After upgrade, a declare expression used to calculate the end date when creating a schedule case was not populating the result. This was traced to a missed use case for evaluating expressions when 'Enable client side validation' is unchecked, and has been resolved. | User Experience |
INC-154860 | 626099 | Corrected extra space from harness child elements | After upgrade from v7 to v8, extra space was seen at the bottom of harness content. This was caused by the header and footer heights being included two times while calculating mashup height, and has been resolved by updating the postMashupHeight method to skip including the header and footer height while iterating child elements for harness-content-workarea-view. | User Experience |
INC-154977 | 622804 | Added hidden field validation for offline app | An enhancement has been added to handle the usecase of offline apps needing to validate hidden fields. This will be handled through the new flag "pega.u.d.validateHiddenFieldsInOffline". | User Experience |
INC-155319 | 616477 | Action Set Dialog features displayed correctly in App Studio Design with Mozilla Firefox | When using the App Studio Design mode to edit controls and elements within section at runtime (Open Case Type in App Studio -> Save and run) and selecting a control in Design mode that has any action set configured on it, upon opening the action set clicking the “Add an action” link element the dialog box which appeared cut off. This was traced to an issue where Overlay was not flipped in Mozilla Firefox v83.0 when the client.right value exceeded the main container width, and has been resolved by adding a condition for Firefox to use the correct client.right value as per the main container. | User Experience |
INC-155855 | 620577 | Safe check added to modal window pop-up cancel | On click of a link to add items to the rows by selecting the page list from pop-up window, clicking on the cancel button generated a node name undefined error after which clicking the link would not open the pop-up window at all. This was traced to the pre-processing activity in the flow action used to copy page list from one page to other, and has been resolved with the addition of a safe check. | User Experience |
INC-156051 | 622504 | Double quotes escaped when parsing placeholder string | When trying to open the ‘View Properties’ modal for a new utility shape in a flow, the system was hanging on the busy indicator. The issue occurred when the pzEnterDescriptionOrChooseExistingSpec field value had double quotes, and was due to double quotes not being escaped when trying to parse Rich Text Editor placeholder string. This has been resolved. | User Experience |
INC-156094 | 621066 | Access control updated for non-auto-generated finishAssignment | After upgrade, a flow containing a flow action that called an out of the box HTML rule was triggering a SECU0019 alert and blocking functionality. This was a missed use case for BAC where all non-auto generated rule actions should be registered, and has been resolved by registering finishAssignment. | User Experience |
INC-156802 | 620675 | Handling added for special characters for track changes | After entering inverted commas ["] inside a text box configured with post value and 'refresh this section' actions, focusing out of it caused the UI to freeze. A JSON parse issue was seen in the browser console, which was traced to the domelement API not having handling for special characters in the HTML code. This has been resolved. | User Experience |
INC-156826 | 625438 | Logic updated for adding new child/sibling to hierarchical paginated tree/grid | When using a hierarchical table with pagination enabled, navigating to the last page and attempting to add a new child or sibling produced unexpected results. Navigating to the last row, selecting child, and clicking 'add sibling' caused a new row to be added. Adding a child caused the child elements to be added on top instead of at the bottom. This was a missed use case for adding a child/sibling when using a paginated tree/tree grid, and has been resolved. | User Experience |
INC-156912 | 627487 | Updated accessibility for Rich Text Editor navigation in a modal dialog | When navigating through a Rich Text Editor while in a modal dialog, it was expected that once focus was brought to the Rich Text Editor Toolbar (Alt+F10), pressing Escape on the keyboard would bring the focus back into the Rich Text Editor text area and the cursor would appear. However, when this Rich Text Editor was within a modal dialog, pressing Escape closed the modal dialog entirely. This has been resolved by updating the code to stop the Escape key event propagation from the Rich Text Editor toolbar when in a modal dialog. | User Experience |
INC-156992 | 628623 | Corrected custom portal JUMP condition | After upgrading Pega from 8.3 to 8.4, a custom portal was not correctly rendering the stream although the activity was getting executed and the clipboard had all the necessary data. This was traced to a syntax error in work done earlier that placed the JUMP condition (.pyDesktopType=="Custom") in ShowDesktop at the pzPopulateRequestor call step, and has been corrected. | User Experience |
INC-157041 | 626310 | Performance improvements for email listener processing | Email processing was taking an excessive amount of time when a very large number of email listeners were running. Performance has been improved by updating the implementation of pzGetChannelByName to use obj-browse instead instead of looping through channels. | User Experience |
INC-157119 | 621746 | Rule-Message instances added for guardrail warnings | Log errors were seen when saving a rule in Dev Studio that generated a guardrail warning from the pzValidateFieldValueReference function. This was related to work done when the function "addwarning" was deprecated in favor of pxAddGuardrailMessage, and has been resolved by adding Rule-Message instances for pxFieldValueMaxLength, pxFieldValueConsecutiveSpaces, and pxFieldValueQuotesNotAllowed. | User Experience |
INC-157353 | 624012 | Handling added for autoclose of assignment in tabbed MDC | After configuring an Ajax container in a section using tabs and max doc defined as 8 with 'doClose' set after processing has been completed, finishing the assignment caused the work item tab to stop working. Checking the console showed a script error was being thrown. Investigation showed that when the doClose action was triggered and tried to find the activeTabs in MDC, the target element being fired was null. This has been resolved by adding a condition for the doClose to handle the combination of autoclose and tabbed MDC that will close the current Ajax container div before proceeding. | User Experience |
INC-157662 | 632000 | Accessibility updates added for images and icon controls | In order to improve accessibility, aria-hidden has been added to button and link controls for decorative images, and the alt attribute will be generated by the icon control only when the icon source is Image. The icon control has also been updated to set accessibility roles based the following: if actions are configured -> role=button if no actions are configured -> role=img if type is url/phone/email -> role=link |
User Experience |
INC-157737 | 631689 | Added ability to support multiple domains for users | Previously, the DSS setting MultiTenant/CrossTenant/DomainName supported just a single domain. In order to support multiple domains for internal and external users, an enhancement has been adde so that given two domain values provided as comma-separated values in “MultiTenant/CrossTenant/DomainName” DSS setting, pzSetCrossTenantDomain will determine the correct domain value using pxRequestor.pxReqServer. | User Experience |
INC-157795 | 624673 | DateTime dropdown control will retain entry on validation error | For a Date Time control with display mode as dropdownlist, choosing just a month or a day from the dropdown and refreshing the section resulted in an invalid date validation and the field being set to the current date. Choosing the date from the calendar icon or filling in all three drop downs worked as expected. This has been resolved by updating the datetime control so that if a dropdown mode with property as type DATE has a validation error on refresh action, the user-entered data will show in the dropdown instead of the current date/time. | User Experience |
INC-157957 | 624209 | Autocomplete correctly sets null values in clipboard | When using an autocomplete control with display configuration "In a List", if a property value was null then the value of the property in the clipboard was set as “undefined”. This was due to the pzGetACData activity returning only properties with values and excluding empty properties, causing setProperty to use "undefined" when a property value was not found in the response. To resolve this, a condition has been added to the processAdditionalProperties method to replace an undefined value with an empty string. | User Experience |
INC-158129 | 635305 | Left navigation expansion made accessible for tab/keyboard actions | The left navigation "aside" DOM element did not expand if reached with the keyboard tab actions, but did with mouse hover. This has been resolved by updating the selectors for focus within left nav and updating the script to collapse the menu pyAutoCollapseLists section. | User Experience |
INC-158605 | 628572 | Improved performance for Repeat grid display | After upgrade from Pega v7.2 to Pega v8.4, the Repeat grid was taking significantly longer to display the results. This was traced to changes made relating to BAC security that resulted in pzGridOpenAction trying to open each record to find the relevant pzInsHandle. Because this call is not actually required for Data- items, an update has been made to avoid this and improve performance. | User Experience |
INC-158974 | 631273 | Messages cleared from WorkPage so "load more" link works as expected | After being migrated, a link button script for "load more" in a repeating dynamic layer was not rendering more data on the UI if there was an error in pyworkpage. Refreshing the UI to clear the error and clicking the "load more" link then displayed the new set of Data. If no error occurred on pyworkpage, then clicking the "load more" worked the first time. This was traced to the success handler ignoring the response if there were errors on pyWorkPage, and has been resolved by updating the pzinvokerdlpreprocessing activity to add 'Page-Clear-Messages' as the first step. | User Experience |
INC-159329 | 627338 | Dirty Check Warnings added for decimal fields | Dirty Check Warnings have now been added for decimal fields by adding the required logic to the isContainerDirty API in pzpega_ui_doc_dirtyhandling js file. | User Experience |
INC-159506 | 635902 | Corrected column alignment for Report Definition exported to PDF | Aggregated columns such as count were not properly aligned in the PDF when a report definition was exported. This has been resolved by adding right justification styles in pyReport_ExportToPdfStyles.css. With this change, the PDF will look similar to the report definition displayed in the UI. | User Experience |
INC-160102 | 627686 | Updated resource file paths for mobile images | After upgrade, a resource missing error was shown on the mobile UI when accessing a section in an offline mobile app. This was traced to the CSS file having an incorrect path to the 'requiredstar' gif file and has been resolved by updating pzbase-form-level-elements to use webwb instead of an images path. | User Experience |
INC-160130 | 630961 | MultiSelect control corrected for Google Chrome on Tablets | It was not possible to expand the multiSelect control dropdown in Google Chrome on tablets. The search worked if text was typed into it. This was due to the method isMobilePhone returning true for both mobile and tablet, causing the system thought it was mobile and stopped the normal behavior. This has been rsolved by adding a regular expression check in the pzpega_control_multiselect isMobilehone() method to check if it a tablet. The isMobilePhone() method will return false if the device is tablet so the dropdown appears as expected. | User Experience |
INC-160497 | 627714 | Able to add missing headers from App Studio | A missing header in pyActionArea and pyActionAreaheader could not be added from App Studio. This was due to the sections not being built using design templates, and has been resolved by updating the section to be editable in runtime. | User Experience |
INC-160500 | 627267 | Cosmos App Studio icons have helper text | Enhancements have been made for accessibility by adding Helper text to icons in the Cosmos theme for App Studio. | User Experience |
INC-160624 | 633085 | Text data type correctly passed for personalized tables | When using a table with personalization enabled that was sourced through a data page that had paging enabled, applying filtering through the personalized options on a Country field sourced through a declarative index was not showing any results in the table. This issue was due to the data type passed for identifier as "text" instead of "Text", and has been corrected. | User Experience |
INC-160843 | 631728 | Performance improvements for multiple visibility expressions in repeating structures | After upgrade, performance degradation was seen and PEGA0069 alerts appeared frequently. Investigation traced this to performance issues with the expression evaluation on the client when there were multiple visibility expressions in the repeating structures. To resolve this, updates have been made to the pzpega_ui_ExpressionEvaluator.js to reduce the number of calls to _getCtxElement( ) in side loops. | User Experience |
INC-161126 | 631090 | Edit validation message appears on Cosmos UI | When using a flow action in Cosmos, validation messages did not appear on the UI as expected but an error would be thrown while clicking on the submit. This was traced to an unneeded visibility condition present on the section "pyCaseActionArea" when "pyCaseErrorSection" was included, and has been resolved | User Experience |
INC-161409 | 632726 | Added handling for checkbox group to use form tag when field tag is not available | After configuring the Checkbox group component from the UI gallery in one of the sections in an application built on Theme-Cosmos, the configuration worked as expected when creating a new case type, but opening this WorkObject from the Associated cases section on the child case caused behavior issues including being able to select select multiple options instead of a single radio button. Investigation showed this happened when navigating through the work flow under the Perform Harness, but worked as expected when navigating through the Review Harness. This has been resolved by modifying the selectors to target form tag if the fieldset tag is not available. | User Experience |
INC-161430 | 627720 | Accessibility Component/Widget role added to pyCaseErrorSection | Page level errors were not accessible due to the error section being wrapped inside a dynamic layout whose contents were not readable. This has been resolved by updating dynamic layouts to use the correct accessibility roles. | User Experience |
INC-161722 | 632869 | Resolved preview button issues with Microsoft Internet Explorer 11 | After opening the case from "My WorkList" when using Microsoft Internet Explorer 11, trying to go back to "My WorkList" /"Dashboard" to preview the case resulted in the preview button shrinking and the text not being completely visible. This was traced to the field -et being initially assigned to the text of the dom element in Internet Explorer, but then being removed while navigating within the pages. To resolve this, an update has been made so field-set is assigned to a variable and the same variable is assigned to the preview text. | User Experience |
INC-161757 | 630691 | CKEditor correctly formats copy and paste | Formatted text from Micrtosoft Word was not retaining its format when pasted into the rich text editor. This was caused by the inch to px and pt to px conversions not happening properly for margins, and has been resolved by adding a margin fix for nested bullets and lists. | User Experience |
INC-161996 | 636873 | Mobile back button updated for case completed scenario | In a scenario when a case was resolved and assignments were removed from user pages, the hitting the back button presented the error: "unable to open an instance using the given inputs". This was a missed use case for using the back button on the mobile app after a case is completed, and has been resolved by modifying the back button action in this scenario from "window.history.back" to Cancel action. | User Experience |
INC-161999 | 632210 | Correct operator time zone passed for offline mobile case | After selecting a date on the UI for a date only property and submitting it, the date was automatically incremented to the next day when using the mobile offline app. No increment was seen in the mobile browser. This was traced to the operator time zone being overridden for date and date range properties in an offline case, and has been resolved by ensuring the correct operator time zone is passed when working offline. | User Experience |
INC-162012 | 633727 | Leeway added for circular reference checks in nested section includes | In the pyCaseMainInnerMobile(“work-“ class) section, attempting to apply a few changes for the pyMainCasePanelMobile section which was already included inside a pyCaseMainInnerMobile Section resulted in the submit button not working from the popup. This was an edge case where a deeply nested section include was referencing sections from a Pega marketing class as a result of backporting sections from the marketing application. To resolve this, constraints on circular reference checks have been loosened. | User Experience |
INC-162122 | 633067 | Create modal is accessible when creating case from Create menu | After creating a new case in the Cosmos User Portal, the “Create” screen Modal Dialog opened but focus did not move to any element within the modal dialog but instead stayed on the “Create” button on the left side menu of the User Portal. It required approximately 50 tabs to reach any actionable element within the modal dialog. Investigation showed that the create modal launched the section in an AJAX container that looked like a modal, but the focus was not being correctly set on the first element. This has been resolved by ensuring there is a focusable element when launching an AJAX container. | User Experience |
INC-162642 | 636138 | Show Stream activities updated | Authentication requirements have been added to Show Stream activities. | User Experience |
INC-162692 | 629636 | Added primary portal navigation role | While in the User portal, Accessibility inspector displayed the warning "Primary Portal navigation may be missing a navigation role." This role has now been added to pzPortalNavigation. | User Experience |
INC-162742 | 630968 | Repaired '+' icon for edit reports in Cosmos | The + icon was not showing for edit reports due to missing styles for the icon in Cosmos. This has been resolved by adding the "background-image" styles for collapse and expand icons. | User Experience |
INC-163341 | 637298 | Discard functionality in dirty check confirm corrected | Clicking on the Discard functionality in the dirty check confirm on popup closed the item rather than launching the expected work flow. This was traced to gDirtyOverride being returned as false instead of null in the explorerFormIsDirty function. To resolve this, the logic used to for gDirtyOverride on a native alert close for dirty handling has been removed. | User Experience |
INC-163596 | 636235 | Checkboxes receive correct focus with accessibility | It was necessary to click the tab twice in order to check the checkbox in the filter popup. This has been corrected by adding a check in the firstfocuselement method so the focus is placed correctly over input type elements. | User Experience |
INC-163651 | 636900 | Cancel button in offline works as expected | When using the mobile app offline, clicking 'cancel' after creating a new case did not remove the case, but instead returned to the review screen. This was traced to the logic used to evaluate the conditions, and has been resolved so that the 'cancel' button will return to the worklist if offline, or display save/delete options when in the create stage of the online app. | User Experience |
INC-164311 | 635785 | Correct datetime target property used | When using a declare expression for a datetime property to get its value from another datetime property, attempting to change the source datetime later resulted in the error "28-mar-2021 is not a valid date/time value". This occurred when the source datetime property had display readonly formatting, and was traced to the formatted value being sent in the callGetTargets API instead of the selected date value, which caused the function to be returned as empty because there was no target property in the same page before submission. To correct this, a check has been added which will get the value from data-value instead of element.value and will skip callGettragets if the target is empty. | User Experience |
INC-169907 | 648484 | Handling added for element outside viewport in overlay | The left attribute from overlay styles was changing from "0" to a negative value (dynamically depending on screen size) while scrolling the results up and down. This caused issues such as attempting to view the duplicate case analysis screen or having the tool tip move to the extreme left when hovering the mouse on a link and scrolling. This was traced to an overlay launched from a table: if client.left was zero, the overlay left was given a negative value which causes the overlay to be shifted towards left side of the screen. To resolve this, an extra condition has been added to check if the associated element is outside the viewport when an overlay is launched from a table, and if so apply a flippedX value for left property. | User Experience |