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.7 Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-161463 | 638003 | Case Dependency corrected for different access groups | Creating a queue item as part of the case dependency was not working as expected when the access groups of the dependent cases were different. Investigation showed that in this scenario, the logic was looping differently and the DependencyList page in pxCheckFlowDependencies was getting removed. To resolve this, the DependencyList page has been moved so it is processed inside the DependencyList.pxResults loop. | Case Management |
INC-161948 | 638963 | Locking settings enabled for circumstanced case types | Optimistic locking options were not present for a circumstanced case type, and the option to select the "Lock parent case when an action is performed on this case" check box was not available. However, when the parent case type was enabled with optimistic locking, a circumstanced child case could inherit a lock from its parent. Because "Lock parent case when an action is performed on this case" was not enabled on the circumstanced child case type, trying to update the parent case from the child case and save the parent case resulted in a "Lock not held on parent" error. This was a missed use case, and has been resolved by enabling locking settings in Case Designer for circumstanced case types. | Case Management |
INC-162168 | 644731 | Refresh works for nested lists | After creating Pagelist A with another Pagelist within (B), a section was created with a repeating dynamic layout to display Pagelist A and a button was added with action set to refresh this section. In the embedded section of the repeating dynamic layout, a nested repeating dynamic layout was created for Pagelist B and a button was set to refresh this section. When using this configuration, the refresh was returning the actionID for Pagelist A regardless of which button was used. To resolve this, an update has been made which will iterate over the stack and append the individual indexes to the encoded value in the pzAPICreateJsonForField function. | Case Management |
INC-162763 INC-192979 |
646109 677696 |
Case creation and Save As performance improvements | Performance improvements have been made to the getApplicationRuleSetList() function to avoid unnecessary and repetitive database calls. | Case Management |
INC-163154 | 638100 | Code updated for bulk actions buttons | After upgrade, hovering over the "Filter case" button in pzBullkUpdate and the "Create" and "Clear" buttons in pzBulkAddActions caused them to disappear. The warning "This button generates markup that was used to support the older browsers. It is recommended that you update it to the newer markup" was shown, and an update code button appeared. Some custom rules exhibited the same behavior initially, but worked as expected after updating the code and saving them. This has been resolved by updating the buttons in pzBulkUpdate and pzAddBulkActions with the latest UI technologies used for button control codes. | Case Management |
INC-168368 | 651081 | Correct flow actions loaded in multi-thread portal refresh | The member authentication screen was displaying an incorrect flow action on doing browser refresh after creating a new interaction. Refresh is a special case where the parameter retention is different across single-threaded & multi-threaded portals alongside the execution order of activities. In this case, this inconsistency occurred in a multi-threaded portal when newAssignPage had the information to load the proper assignment but the parameter indicated an old index. This has been resolved by adding 'when' conditions to to populate and pass the correct references and labels and to honor the Param.TaskIndex set and sent by UI activities so it's retained in case of multi-thread portals. | Case Management |
INC-170041 | 655251 | Check and error message added for filename containing "%00" | At the time of file attachment or upload, if the file name contained % followed by two 0s (%00), the file upload mechanism distorted the UI and the Pega logo screen popped up. The file was saved properly in the ServiceExport directory, but while fetching the attachment info, the file was split in two because the engine considered %00 as a delimiter. This has been resolved by adding a file name check and a pyInvalidFileName field value to be used for an error message. | Case Management |
INC-170514 | 653762 | Lock conflict resolved for AssignmentCheck | The error "Unable to unlock this work object" sporadically appeared in both the runtime log and Pega RULES log when the robot was trying to create a case in Pega using an API call. Investigation showed that as the case was created, it was pulled by another robot (another requestor) which was using the GetAssignments API. This caused the perform assignment check to fail. To resolve this, a 'when' rule has been added to the performAssignmentCheck Activity. | Case Management |
INC-172584 | 654924 | Deprecated NewWorkGadget registered for BAC | Logging in through the Administrator portal and launching a new project resulted in a blank screen. Investigation traced this to the Create New Work action called in the NewWorkGadget control; because the NewWorkGadget is no longer used by Pega, it was not registered for use with BAC. To resolve this, validations have been added for Control: NewWorkGadget, and the control has been marked as deprecated. | Case Management |
INC-173068 | 654068 | HTML tags escaped in Audit History field values | The case narrative section was showing case statuses with encoded special characters such as % or ( ), resulting in entries such as "Status changed to Complete &# 40;approved& #41; !@#$ %^& amp;*&# 40;&# 41;_&# 43;.". This has been resolved by updating the PyMemo field from type Text Input to DisplayAsLiteral for case narrative, which matches the setting for case history. | Case Management |
INC-173725 | 656480 | Logic updated for DX API retrieving View/Action ID using embedded property | While calling the DX API using Assignment ID and action ID, a 500 error response was logged indicating that the server encountered an unexpected condition that prevented it from fulfilling the request. Investigation traced this to the logic used for resolving an embedded property referenced in a control/field to identify the correct page class. In a non-work object context for flow actions the new assign page doesn't exist, but the system was checking for it and clearing off errors from the named page. This has been corrected. | Case Management |
INC-173953 | 650852 | Updated Pega DX API special character handling | When the using Pega API v1 and invoking api/v1/cases/{ID}/actions/{actionID} for a few fields in section, special characters were being converted into HTML entities. For example,"You'll usually find this information in your terms and conditions." was being converted as "You& #39;ll usually find this information in your terms and conditions" in the API response. This has been resolved by updating the system to ensure the pyDXAPIEncodeValues application setting is honored. | Case Management |
INC-174045 | 650737 | DSS added to control merge strategy | The activity page merge option takes merge strategy as input and supports different merge strategy options like 'Replace', 'Update' etc. Previously, V1 DX APIs defaulted to REPLACE as the merge strategy; this has been updated to support both 'REPLACE' and 'UPDATE' merge strategies which can be controlled with the new DSS "v1MergeStrategy". The DSS to customize the merge strategy for v2 APIs is 'v2MergeStrategy', which also takes the values 'REPLACE' and 'UPDATE', which are for merge strategy '1' and '3' respectively. The default strategy from Pega 8.6 forward is 'UPDATE' and any other value other than the above two values will be considered as 'UPDATE'. | Case Management |
INC-175630 | 653863 | Application selections only announced when visible | The elements of the application switcher were being announced by the NVDA screen reader even when toggled off, i.e. not visible. The issue was occurring because the focus was remaining at the search bar even after closing the app switcher window, and has been resolved by adding the necessary logic to switch the focus. | Case Management |
INC-175762 | 669398 | BulkProcess harness deprecated in favor of BulkProcessing | The harness pzBulkProcess has been marked as deprecated. In place of this, implement the new Bulk Action functionality available using the harness pzBulkProcessing. | Case Management |
INC-175882 | 658641 | Updated bulk action audit history logic and security | After update, using the standard bulk action feature did not record an audit history entry for the SLA action on a case. This was traced to changes made around authorization for opening worklists when using pzBulkProcessItem that limited the audit history to reassign, transfer or transfer assignment, and has been resolved by updating the login the Work-pzBulkProcessItem activity. In addition, the Require authentication to run checkbox has been enabled on the Security tab of the activity, and the Allow invocation from browser checkbox has been disabled. | Case Management |
INC-177665 INC-186868 |
662020 675245 |
Security updated to allow Access group switching | When a member of two different access groups attempted to switch from one group to another, an "access denied" message occurred. This was traced to the use of BAC, and has been resolved by updating the pzProcessApplicationSwitch activity to use the pzEncryptURLActionString function to register the request. | Case Management |
INC-178489 | 659914 | Handling updated 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. Duplicate files were also being attached due to the previously attached files not being verified. Previous work updated 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. Additional work has been added to expand the use of the pxLinkedRefTo field to Show HTML called from @baseclass. | Case Management |
INC-178650 | 673548 | Cross-site scripting protections updated | Cross-site scripting protections have been updated around the DisplayAttachment function. | Case Management |
INC-179217 INC-195487 |
662329 683870 |
Re-save case type completes successfully | Checking in a case type rule with Stage Rule reference was failing. This was traced to the RuleCheckin activity being called in a nested fashion that caused an inner run to remove the "pyOriginalRecord" page which was needed in the outer run to set the .pyRuleset property (at Step 34), and has been resolved. | Case Management |
INC-182776 | 666941 | CheckFlowDependencies updated for auto-instantiated child cases | A parent case with more than one child case was producing an unexpected behavior during the child case creation process. The first child case was instantiated at the correct point of the case stage based on its dependency condition, but the following cases were instantiated at the same point where the first child case was created irrespective of the dependency conditions defined in the other child cases. Investigation showed that the pxCheckFlowDependencies activity called from the Resolve activity was removing the named pages "pyTopCaseMap" "pyTopCaseWork" which are required for starting and validating configured auto-instantiate child cases in the pzCanStart function. To resolve this, an update has been made to CheckFlowDependencies which will use the activity "pzResolveCaseHierarchyMap" for removing the "pyTopCaseMap" and "pyTopCaseWork" pages based on DependencyType. | Case Management |
INC-183751 | 665893 | Improved text contrast for Attach Content button | In order to improve accessibility, the contrast between text and background colors has been increased for the Attach Content button by updating pzMultiDragDropControlStandard to change the color from gray to black in function pzInitHTML5DD(). | Case Management |
INC-183947 | 673733 | Query split added to handle Oracle expressions limit | The PXCHECKFLOWDEPENDENCIES activity was throwing the Oracle error message "ORA-01795: maximum number of expressions in a list is 1000" when a case had a very large number of sub-cases, causing a failure in trying to submit additional child cases which sent them into the broken process. This has been resolved by updating the pxCheckFlowDependencies rule to break down the query parameter into batches of 999 so they can be handled by Oracle. | Case Management |
INC-184271 | 668413 | Portal Header persists appropriately | The Portal header was disappearing immediately after case attachments were opened from the right sidebar and did not reappear even after refresh. This was traced to the absence of pd(event), and has been resolved by adding pd(event) to the onclick attribute in the anchor tag in the attachment UIKit rules. | Case Management |
INC-184300 | 666157 | Deprecated status removed from StartCaseType | After updating from Pega v8.4 to v8.6, guardrail warnings were seen for the deprecated pxStartCaseType flow rule. This occurred for old case types created prior to v8.5. A utility has already been provided to upgrade the case type to include create stage, but this warning has been resolved by removing the deprecated status on pxStartCaseType to allow processes to proceed without a guardrail warning. | Case Management |
INC-184526 | 668848 | Updated audit history for archived cases | As part of a field level audit implementation for archival scenarios, the History messages copied information directly from the database which resulted in descriptions which were unnecessarily technical. This has now been updated to insure the technical descriptions are translated into descriptions which are more easily understood. | Case Management |
INC-184816 | 674433 | Added handling to find the workparty for FixCorrespondence | Using a Send Email smart shape and triggering email by passing the target email ID instead of the workparty role triggered the email as expected, but if a fix correspondence flow was initiated due to some error during the transaction, it was not possible to resubmit the fix flow action. Investigation showed that this was due to the fix correspondence flow check using the party role, which had not been passed. This has been resolved by updating the corrUpdate and createAndProcessCorr activities to copy the pyCorrPage from NotifyOp which contains the getgetEmailSenderInfo and use it to set pyCorrPage.pyStreamType. | Case Management |
INC-186654 | 669115 | GetStatusChanges performance improvements | Performance issues were seen when running the GetStatusChanges report. This was traced to the filtering methods used, and has been resolved by updating the report definition and enhancing the filtering conditions. | Case Management |
INC-188678 INC-198514 |
672977 688852 |
CheckFlowDependencies query performance improved | In order to improve performance on very large tables, the pxCheckFlowDependencies activity has been modified. Previously, checking whether a dependency exists retrieved all columns. The updated query will instead return a count. | Case Management |
INC-189622 | 682098 | Cleaned up references to deprecated property type | While using the Pega API to update a case from one application to another, an error was generated indicating the system was unable to find a property definition of “caseTypeClass” in pyAddableWorkList of the workpage. All properties in the clipboard pages of the work page are validated during this update: in this case, the check was for the caseTypeClass property, which is no longer used but which was on the clipboard page. To resolve this error, all remaining references to property casetypeclass have been removed. | Case Management |
INC-190819 | 681999 | Wrapper added to set correct bulk transfer context | Bulk transfer was not working as expected when transferring an assignment from a flow defined in data class. Investigation showed the bulk transfer UI was getting picked from work- class while the post processing was running under data class context: this has been resolved by creating a wrapper activity in baseclass to call the post processing activity Work- . | Case Management |
INC-191645 INC-194429 |
679536 682882 |
Updated FieldLevelAuditing logic for page comparison | Optimistic locking was resulting in orphan assignments and the error "Error: Flow Not At Task, Error: Flow Removed". In addition, Get Next Work was causing duplicate Field Level Auditing records. This was traced to a missed use case in the logic used in pxFieldLevelAuditing where previousPage and PrimaryPage are compared to see whether they are equal or not, and has been resolved by adding one more condition to mark previousPage as null when the update date time or commit date time are not updated as part of processing. | Case Management |
INC-194981 | 681369 | Validation error message corrected for delegated SLA rule | When delegating any SLA rule to a Business user like the Manager Access group, editing it from the Case Manager portal did not give an option to configure seconds in that available text field (label hh:mm) even though the validation error stated that the time needed to be in hh:mm:ss format. The pzDelegatedSLAGoal, pzDelegatedSLADeadline and pzDelegatedSLAPassedDeadline sections do not include seconds field, which is a difference from Designer Studio (hh:mm:ss). For this update, the validation error message has been corrected to indicate only hh:mm is used while delegating the SLA rule. An enhancement is planned in a future version to support the hh:mm:ss format for this use. | Case Management |
Cloud Services
There were no 8.7 Resolved Issues for Cloud Services
Conversational Channels
8.7 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-147654 | 642189 | Updates to displaying embedded images in cases | Sending an email with an embedded image to the email ID associated with the email listener successfully created the interaction case, but the embedded image was not displayed when the case was opened from the work-basket. A rule-not found exception was seen in the tracer for pyGetImageDisplay, the rule responsible for displaying the images in the ET pane. Investigation showed that when URLObfuscation was turned on, the decryption of the URL was not successful because "&" had been encoded to '& amp;'. This has been resolved by calling the activity pyGetImageForDisplay using URLMapping instead. An additional issue was seen with displaying images in the email interaction pane where the additional empty new lines moved the image outside the intended place. This was traced to a customization for the reply area which used the pyHighlightedMessage property and converted newlines to br tags even in HTML mode. To resolve this, pyHighlightedMessage has ben modified to convert newlines to br tags only if the mode is plain text. | Conversational Channels |
INC-154254 | 674945 | Correct Email Bot training text highlighted | When a piece of text was selected and tagged against an entity while training the Email Bot, the entity selection was misplaced and partially covered the actual text selected. The incorrect selection was then carried forward to the training data spreadsheet. To resolve this, rule changes have been made that will update HTML entities to HTML encoded forms. | Conversational Channels |
INC-166844 | 651407 | Email bot updated to handle negative and positive feedback on the same text | When positive and negative training was done on the same piece of text, text extraction by Email Bot failed. For example, when using the sentence. “John Smith plays cricket”, the bot detects “John” as person name. If user wants to train the bot to detect “John Smith” as the entity, the user needs to first remove “John” and build the model, and then select “John Smith” and build the model again. In this case, the email bot never again detects “John Smith” as person name due to the negative feedback given for “John”. This was traced to the entities having same the startIndex/endIndex, and has been resolved by removing entities of the same modelName which have the pyIsRemoved property as true so that multiple entity models are detected on the same word. | Conversational Channels |
INC-170135 | 652525 | Rich HTML handling added for outbound email | The HTML content was visible in the received email when replying from the email pane in the existing email interaction. This has been resolved by adding logic to handle rich HTML for outbound email. | Conversational Channels |
INC-173193 | 660936 | Resolved exception from isArchived | After update, the message "ERROR - Could not retrieve the database time" was seen. This was traced to the interactions of the isArchived API with a version of Oracle, and has been resolved by adding code to skip the isArchived() API call if pzIsPegaCloud is set to false. | Conversational Channels |
INC-175994 | 667482 | Removed redundant Microsoft Outlook email interaction chain | When opening an email interaction case, the email editor user interface area showed the complete email chain of the email for every new message that came in related to the case. This was traced to the difference in the selectors that various email clients use to construct a response to an email with email history in it, and has been resolved by updating the selectors for Microsoft Outlook in pyRichTextEmailHistorySelector so no conversation is repeated when using that client. | Conversational Channels |
INC-176881 | 669702 | Resource added to extract email threading code from message body | In some scenarios the case ID was not being sent in the subject of email replies as expected, and the secure tracking code was part of the email body instead. That caused replies back to the email thread to create a new email interaction case instead of properly threading the new message into the conversation. Investigation traced this to some email clients removing space after the tracking code. To resolve this, an update has been made which will extract the tracking code from email-content html if it is found and otherwise fallback to the email body. | Conversational Channels |
INC-179722 | 659280 | Added handling for legacy HTML formatting in Email Manager Bot | When implementing Email Manager Bot features, pyBody fields were removing the additional spaces and causing the NLP model to not extract the correct data. Investigation showed HTML formatting from older version of Microsoft Outlook created nbsp; instead of space. This has been resolved by ensuring nbsp is replaced with spaces before calling JSoup clean. | Conversational Channels |
INC-179888 | 663846 | Training data correctly added to model | Negative training data was not getting added to the entity model. This was traced to logic used to remove consecutive spaces which was incorrectly removing new lines and leading to entity detection of entities such as address line. This logic has now been removed. | Conversational Channels |
INC-181267 | 663666 | Enhancements added to support Pega-SocialDocuments with Case Archival | Attachments can be added using the Recent content widget create Pega-SocialDocuments or Link-Association-Documents, but Case Archival only supported Link-Attachments. This resulted in Pega-SocialDocuments that were not visible when viewing the archived case. This has been resolved with an enhancement to support PegaSocial-Document attachments to a case: - Internal as well as external PegaSocial-Document attachments are archived - For external PegaSocial-Document attachments, only the reference is archived - Both kinds of attachments are retrieved and displayed (either the file or reference to the file) by the ArchivalReview harness - Attachments are downloadable - The exposed properties of the attachment are visible - If the social document is attached to multiple cases, then after archival of one case, the other live cases will continue to have access to that social document. Please note that while a PegaSocial-Document can be created independently and does not need to be attached to a case, this enhancement to Case Archival does not support that use case. |
Conversational Channels |
INC-184155 | 673072 | Entity Detection prefers first detected entity | Entity detection shown in the "Training data" tab of the email channel did not match with the results of running the corresponding text analyzer rule. This occurred when a single piece of text was detected as multiple entity values, which led to the last entity detected being picked for case mapping because of the unclear scenario of duplicate entities. To resolve this, pxmapresponseentities has been updated to prefer the first detected entity. | Conversational Channels |
INC-184834 | 669458 | Channel copy text analyzer detection updated | The error message "No unlocked Ruleset versions are available. Please add or unlock a ruleset to create a new channel." was displayed when trying to save a new interface. This was traced to the system copying the channel to incorrect classes/names due to detecting an incorrect type of text analyzer and copying the wrong rules. To resolve this, the method of detecting the text analyzer type on channel copy has been updated. | Conversational Channels |
INC-184902 | 669453 | Corrected portal image display for authenticated request | Email images for the user portal were not displayed in the browser but were showing correctly in the manager portal. The URL to the image was the same in both cases, however for the user portal the URL request was requiring authentication. This has been resolved by updating the API to use currentsessionURL. | Conversational Channels |
INC-185255 | 669441 | More responsive attachment loading for interaction portal | Attempting to view a large email attachment in the interaction portal was resulting in slow loading and page responsiveness issues. Investigation showed there were numerous unnecessary height calculations happening when checking the dom elements, and this has been resolved with an update which will use the property mapping js file to make the screen more responsive when highlighting. | Conversational Channels |
INC-185455 | 671977 | Email widget auto-refreshes for incoming email | The email thread was not updated automatically for incoming email in an email interaction case with Outlook, but did refresh when the work object was closed and opened in perform mode. This was traced to a Jump statement after pyMapEmailToEmailTriage which interfered with threading, which has now been removed. | Conversational Channels |
INC-189819 | 676594 | Entity highlight corrected | In the email channel, the entity value highlighted under "Training" tab was different from the actual value detected. The location where it was detected was also different. This was traced to an inconsistency of the title shown on the UI of training data tab, and has been resolved by updating the title shown on each entity as well as using exit iteration instead of skip step in pyStructureEntity. | Conversational Channels |
INC-190185 INC-196623 |
685511 686131 |
Chatbot outbound message formatting corrected | Chatbot outbound responses were displaying appended br tags for next line in the messages. This was due to a formatting error in the menu (message type) title, and has been corrected. | Conversational Channels |
INC-190222 | 675955 | Emails load with PegaRULES:User4 access | Operators with access groups under PegaRULES:User4 were unable to access emails. This was found to be a side effect of Access Control (BAC): if Production level was set to >=4 then the email body could not be seen in the Email Manager Portal and console reported a 403 Forbidden error. To resolve this, the open work by handle action has been added to the Allow List. | Conversational Channels |
INC-190417 | 675213 | ModifiedGetEmailPosts data transform to better handle very large messages | Blank emails were seen when the message was over 4000 characters. This was traced to an issue with initializing param.index2, and has been resolved by modifying the pxGetEmailPosts data transform to take param.index2=0 out of the loop for large emails. | Conversational Channels |
INC-191159 | 682362 | Validate topics based on all topics in channel instead of default language | if a 'When Rule' was used in Email Receiver to provide some conditions, it was not possible to use topics from the dropdown which were trained with training data in prediction studio. This was a missed use case, and was traced to validation being based on the default language topics. To resolve this, the data page has been modified from getting default language topics to getting a union of topics. The datapage for default language topics has also been withdrawn. | Conversational Channels |
INC-192646 | 679065 | Correct class for properties set by Chatbot | After initiating a service case from legacy webchat and subsequently resolving the case using DX API V1, additional properties with a different applied-to class than that of the workclass were added to the service case workpage while setting answer values to the question structure from the @baseclass.pxSupplyAnswerToQuestion API. Open assignments on the case could be submitted through the portal without any issues but validation errors occurred when the same assignment was completed though DX API, e.g. from a custom React frontend. This has been resolved by moving the properties to baseclass or Work- class as appropriate. | Conversational Channels |
INC-193727 | 679111 | Entity mapping order updated for email bot | Issues were seen with the entity mapping functionality in Email bot, especially when mapping email headers like subject, from (email) etc. to case properties. This was an issue with the order in which the entities were mapped ,and has been resolved with an update that will map entities which are configured in the channel first and then mapping the rest. | Conversational Channels |
INC-195354 | 682183 | Handling updated for UpgradeBeforeOpening | After update, an email case paused for 1 minute with a wait shape and then resumed by a ServiceLevelEvents agent seemed to lose the context (class) of the case and went into the broken processes queue with the error "Unable to open an instance using the given inputs: pxObjClass = "Work-Channel-Triage"". This was traced to an incorrect class applied by the activity OpenAndLockWork which assumed that "Work-Channel-Triage" was the preferred class and passed in the case ID as a parameter. To resolve this, pzUpgradeBeforeOpening has been updated such that it will migrate a case only if it has "WORK-CHANNEL-TRIAGE" in the work object inskey. | Conversational Channels |
INC-196389 INC-201335 |
690786 690733 |
ConfigurationReconciliationTask updated for greater compatibility | After updating from Pega 8.3 to Pega 8.6, models which previously had learning and performance AUC greater than 0.7 reported an AUC of 0.5. This was traced to the update handling in ConfigurationReconciliationTask. AdmRuleBrowser does not perform ruleset resolution, so all rules were returned, for example the rule for model A in both the 08-01 and 08-03 ruleset. The system then iterated over all of the adaptive model rules returned by AdmRuleBrowser in order to assess whether a configuration update was necessary. The condition to update the model rule was met when either the config key did not exist (indicating a newly added configuration) or the model rule was "old" (version <2). For models generated in Pega 8.3 or earlier the version number for all rules must be 1, and the update to Pega 8.6 therefore caused the ConfigurationReconciliationTask to be applied to all adaptive model rules. To resolve this, the configuration update check in ConfigurationReconciliationTask has been removed. | Conversational Channels |
INC-197116 | 684955 | Handling updated for migrated cases | When performing a contact search in an interaction case that was migrated from an earlier version, clicking the Add Task button generated an exception when executing pzSendFeedbackToNLP(step 9) > pzFindTopicModel. This was traced to an unnecessarily call to pzMigrateInteractionCases each time a migrated case was opened, and has been resolved by updating the system to use JumpToLaterStep in Step1 of pzCheckAndMigrateInteractionCases to avoid calling MigrateCase again. | Conversational Channels |
Data Integration
8.7 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-155624 INC-190270 |
648057 681087 |
MSGraph email listener enhancements | Attachments with .eml /.msg extensions were treated as FileAttachments by the MS Graph API and generating a classcastexception. To resolve this, a check has been added to identify the attachment along with content type so .eml will be correctly recognized. In addition, the MSGraph email listener functionality related to converting from Graph to MIME message has been enhanced around the 'TO' and 'CC' recipients in a MIME message and for parsing nested attachments in Item attachment for addition to MsgraphMessage. | Data Integration |
INC-156674 | 661983 | Handling added for reactivating combined Passivation and AccessGroup timeout | Refreshing a passivated browser window in Dev Studio for an operator with a combined access group and passivation timeout was resulting in a blank screen after re-authenticating. InvalidParameterException and InvalidReferenceException messages were logged. Research showed this was caused by a missing pxPortal property on the pxThread page along with missing Application and Accessgroup pages. While refreshing the browser along with the top URL, there will be few requests with tab threads calling activities such as deletedocumentpg and SetProcessWindowName because there was an unload. Because these requests reached the server before re-authentication, the threads proceeded to the activation flow, causing properties such as pxPortal, Application, and Accessgroup pages to be removed from the thread page and requestor page according to the condition that the requestor was not yet authenticated. To resolve this, the logic in session.internal.authorization.context.BasicApplicationContextImmutableImpl#applyApplicationProperties has been updated to skip removing application page properties from the thread page in this combined Passivation and AccessGroup timeout scenario. | Data Integration |
INC-159244 | 627863 | Bulk actions check in preserves declare expression legacy setting | When a declare expression was saved in legacy mode with "Whenever used" selected in change tracking, performing a bulk check-in of the rule caused the expression to default to the new forward chaining method. This did not occur when using a direct check-in. Investigation showed this was caused by the check-in page holding a legacy value before the step execution, and has been resolved by adding a pre-save activity before the validation activity that will restore the .pyIsLegacy value from .pyExpressionTypeSelector, if set. | Data Integration |
INC-162262 | 654966 | Query added to find time zone for MSSQL database | The exception "com.microsoft.sqlserver.jdbc.SQLServerException: xp_regread() returned error 5, 'Access is denied.'" was generated when the AES agent PushDBSizeInfo was being run. This was traced to the GetDBInfo activity trying to retrieve the time zone of the MSSQL database by executing a query that used a Microsoft SQL routine to read the windows registry to get the current time zone. The error was not due to security within the SQL Server, but instead was caused by Microsoft Windows security related to the permissions on the registry keys for the users under which specific SQL Server processes were running. To resolve this, an update has been made to call a different query which will get the time zone for the SQL Server. | Data Integration |
INC-162987 | 640147 | Cross-site scripting protections updated for SOAP WSDL | Cross-site scripting protections have been updated for reading WSDL nodes. | Data Integration |
INC-163043 | 645390 | PEGA SOAP Service MTOM attachment handling updated | After configuring a PEGA SOAP service with the Enable MTOM checked, sending a SOAP request with attachment to the service returned an invalid request error stating "Value of content length header is greater than zero - [762], but this request has empty POST". Investigation showed that when the input request reached the getPostBytes method and inputstream tried to read it, there were no available bytes and end of file was detected. This was due to the inputstream having already been read in getMultiPartSOAPHandler() method in FileUploadHandler class. To resolve this, the system will update an 'if' condition in getPostBytes method to skip reading the request attachment when contentType is "multipart/related". | Data Integration |
INC-164021 | 638640 | Java object type removed from pyStream to resolve GetFile class error | It was not possible to perform Property-Set on pyStream(java.io.InputStream) to assign it with another object of type(returned by pxGetFile Rule-Utility-Function). This was caused by a strongly typed java.io.stream in the pyStream property creating conflict at runtime with S3WrapperInputStream from the D_GetNewFile call, and has been fixed by removing the java object type from pyStream. | Data Integration |
INC-164345 | 643046 | Solace queues debug statements added | Additional diagnostic logging has been added to assist in diagnosing issues related to Solace queues. | Data Integration |
INC-168253 | 652547 | Documentation updated for using Connect MQ with clustered queues | After update to Pega Platform v8.6, an issue was seen with Connect MQ rules that used an alias queue. The support documentation has been revised to outline the necessary steps for updating an application to perform as expected. In the Pega-IntegrationEngine ruleset, create the following dynamic system settings and their default values: "mq/pmo" = 0 "mq/gmo" = 0 "mq/oo_request" = 1040 "mq/oo_response" = 16 For more information, dynamic system setting support articles are available. |
Data Integration |
INC-169116 | 654256 | Correct time zone chosen for fr_Fr appointment functionq | When using the "fr_Fr" location and and "Europe/Paris" time zone for appointments, a null pointer exception was seen related to the function getStartOrEndDateTime. Investigation showed that the incorrect time zone was being picked from the fr_FR.xml file when parsing the date. To resolve this, 4 letter time zone codes have been moved above the 3 letter time zone codes. | Data Integration |
INC-169518 | 649158 | Email address parsing logic updated | Email listener functionality for case creation and email notifications was not working as expected after update due to a difference in the the service email rule request header properties (pyInboundEmail.pyFrom & .pyInboundEmail.pyFromDisplayName) clipboard values. This has been resolved by updating the parsing logic for the email addresses to look for an InternetAddress object and then fallback to a regex match. | Data Integration |
INC-169764 INC-176138 |
645804 663012 |
Decision table query performance improvements | Severe latency was seen after upgrade, and it was not possible to save business rule changes. This was traced to an issue with the decision rule being treated as a custom rule, and has been resolved by inserting a check. In addition, optimization has been added for queries on the pr_sys_decchg table. | Data Integration |
INC-170130 | 643776 | Null check added for debug logging pointer error | When DEBUG logging was enabled on the class 'com.pega.pegarules.session.internal.mgmt.base.AbstractPageDirectory', system restart resulted in the node failing to startup with a null pointer error in a debug block of this class. A null check has been added to resolve this. | Data Integration |
INC-170458 | 667373 | Handling updated for queue processor locks | The Final activity mentioned in the processing epilog of the Service File rule was not being consistently called from File Listener, causing some of the cases to become stuck and not continue to the next stage. Investigation showed that if the lock was held by the queue processor requestor, the system was unable to obtain the lock but still proceeded to update the LogServiceFile page and persist it. This resulted in overwriting changes made on the LogServiceFile page by the requestor, resetting the completed-batches-count set back to 0. To resolve this, RuleServiceFile -> updateLSFBatchCounts() will call the overloaded lockAndLoad() method in LogServiceFile that accepts a parameter called lockAttempts. This will attempt to obtain a lock for a given number of times before throwing an exception. | Data Integration |
INC-170551 | 656559 | Rule Assembly update for pxTextInput and pxDisplayText | After the application restart, multiple rule assembly alerts were seen for pxTextInput and pxDisplayText . During first access, Assembly is done and container is cached in VTable; investigation showed that in this case, the Load class without the package name had a class not found issue, and then subsequent access tried to use the container from cache and assembly was not done. To prevent this, an update has been made to perform the class lookup using the package name and class name. | Data Integration |
INC-170620 INC-170669 |
651806 651813 |
Handling added for RuleNotFound exception | If a declare rule was run on a redux page and the highest ruleset version was withdrawn, a RuleNotFound exception was thrown and step status was set with the message "Failed to find a 'RULE-DECLARE-EXPRESSIONS' ...". This has been resolved by updating the system to avoid throwing a RuleNotFound exception if the candidate list is empty for the declare expression. | Data Integration |
INC-170646 | 658307 | Security update for unauthorized URL requests | Updates have been made to improve security around unprivileged users and unregistered requests. | Data Integration |
INC-170950 | 652332 | Handling added for datetime set by relative reference | When initializing a datetime property contained within .pxPages() in a data transform rule, if the property being set applied to @baseclass it was initialized as decimal string while all other properties were handled as normal GMT-based Pega date time strings. Investigation showed that the decimal value was set when the target page was given by a relative reference like .pxPages(TEXT) which was also defined on Pages & Classes. This has been resolved with an update to detect relative reference as page name in Pages & Classes tab and fall back to the old assembler. | Data Integration |
INC-171753 | 649441 | Checks for Apache Tomcat 6 with MSSQL removed | After implementing a specific local Tomcat configuration that removed the Tomcat version number from displaying on Tomcat standard error screens, the error "Tomcat 6 not supported or unable to detect version for custom Tomcat: Apache Tomcat. Contact Pega Customer Support!" appeared and Tomcat failed to start. Because Tomcat 6 was not supported for use with Microsoft SQL Server Systems, Pega used the ServletContext.getServerInfo() method to determine the Tomcat version; if the system used Tomcat 6 or an undetermined version in combination with MSSQL then the system would purposefully not start. As Tomcat 6 is no longer supported in Pega 8.5.2 and above, this check is unnecessary in those versions and the Tomcat version 6 checks in ClassMapImpl have been removed to allow serverAllowsMerge to return as true. | Data Integration |
INC-172350 | 658277 | Removed duplicate Set-Cookie Secure Keyword | Checking the headers of the login page showed the Cookie Pega-AAT duplicated the Secure keyword. This was traced to the PegaAATCookieWrapper extending the CookieWrapper class and causing the secure flag to be set in both the classes. This did not have a functional impact, but the secure flag set has been removed from the PegaAATCookieWrapper class to avoid duplication. | Data Integration |
INC-172546 | 652880 | Resolved classcast exception with assembled HTML controls | A classcast exception was being generated on login. Investigation showed the Static Assembler was unexpectedly using a different Assembler to assemble the Html control rule. Standard behavior is that StreamBuilderAssembler assembles controls of type StreamBuilder and ControlAssemblerForVTable assembles controls of type ControlBuilder. In this case, static assembly for HTML controls using VTable was performed using StreamBuilderAssembler, causing a classcast exception when using VTable because the instance of the generated.html class was incorrectly inheriting from StreamBuilder (the parent class of ControlBuilder) instead of ControlBuilder which is the specified interface in the generated.html Java code. This has been resolved by updating the system to skip rules of type 'Rule-HTML-Property'(control) during Static Assembly. | Data Integration |
INC-172692 | 650615 | InsID will be derived from handle if null for upgrade | Upgrade from Pega 7 to Pega 8 failed with a null pointer exception in the “Upgrade Context” target. This was traced to a rule where the pxInsID was null. To resolve this, an update has been made to derive the InsID from handle when needed. | Data Integration |
INC-172849 | 665983 | SortPageList method updated for Obj-Sort | Sorting page lists backed by a node level datapage using Obj-Sort was causing a ConcurrentModificationException. This has been resolved by updating the SorterImpl.sortPageList method to use java7CollectionsSort instead of collectionsSortWithInferenceEngineDisabled. | Data Integration |
INC-172859 INC-175343 |
661199 655352 |
Invalid date handling added to Legacy Adapters | Running the Job Scheduler activity failed with the error "not a valid date/time value". Investigation showed this was caused by LegacyPropertyAdapter.isEmpty being returned as true in case of properties having invalid values, and has been resolved by adding handling for an InvalidValueException in LegacyPropertyAdapter and LegacyPageAdapter. | Data Integration |
INC-173092 | 648738 | Handling added for multi-node concurrent access to conclusions | A proposition update was triggered and heap memory jumped up and a thread dump was generated. A Pega0004 error was also generated at the same time. Investigation showed that many queries were getting fired on pr4_rule_sysgen table in a multi-node environment during RAP import. This caused database contention as more than 80 nodes were trying to load conclusions simultaneously. To resolve this, an update has been made to run an agent periodically to save conclusions into the database. This agent is configured to not run on multiple nodes simultaneously, which will avoid database contention issues from conclusions. | Data Integration |
INC-173434 | 672673 | Pushservlet cookie path updated to resolve error | A very large number of exceptions were being logged indicating "Unhandled error in web.request.internal.URLComponentProcessorImpl.populateCSRFToken", impacting the ability to perform log analysis. This exception has been resolved by updating the pushservlet cookie path. | Data Integration |
INC-173436 INC-192979 |
648821 678361 |
Performance improvement for Application Save: Node Level Data Pages | As part of new functionality introduced in 8.3, data types defined in the application record will be turned into data objects on Application save. As part of this process node level pages are invalidated and reloaded and there is an explicit commit that marks the Application record as dirty and sends any calls for the application record to the database for fresh records. In a multi-node environment, the number of queries to get the application record being saved became exponentially higher and performance impacts were seen. This has been resolved by updating the system to skip eager loading of the data page definition when an access rule or application definition is saved. | Data Integration |
INC-173505 | 657024 | Error message updated for data page with REDUX | A WrongModeException was generated when a runtime activity was trying to access a missing property in a data page with REDUX enabled. To clarify the issue, the error has been modified to be a MissingPropertyException. In addition, property information for a page group property was inferred on the top level page when it should have been inferred on the embedded page. This has been changed to infer the correct property information for mode-based processing to work as expected. | Data Integration |
INC-173895 | 655915 | ZMW added to currency codes | The Zambian Kwacha, "ZMW", has been added to the currencies code list in ENCurriencies.xml . | Data Integration |
INC-174243 | 655886 | Links to specifications persist appropriately | When linking Rules to Specifications, check-ins of some unrelated rules deleted the link. Investigation showed the deletion happened in the pzHandleLinksPostCheckIn activity, and was caused by an empty parameter page name that caused pcInsKey to not have a value, so all links returned by "Obj-Browse" were later deleted. To resolve this, an update has been made to insure the "Pass current parameter page" option in step 2 of the Connect REST PostCheckIn activity is enabled so that the downstream activity pzHandleLinksPostCheckIn behaves as expected. | Data Integration |
INC-174652 | 654140 | Case Archive updated to better prune email and attachment metadata | After configuring pyPegaArchiver, pyPegaIndexer and pyPegaPurger to remove old cases, there were no records present in the pr_metadata table but the records related to Data-Corr-Email, Data-WorkAttach-File and Link-Attachment remained. As there is no harm in removing these entries because the system has already copied the reference to these attachments, the entry in pr_metadata can be removed without any issue. With this update, external and shared entries now get removed from pr_metadata table when a purge is performed, however they do not get removed from the target table. | Data Integration |
INC-174716 | 656441 | Updated handling for validating/saving circumstanced rule on branch | Using 'save as' for an already circumstanced rule with a new property/template caused the Rule-.DictionaryValidation activity to register the error "StandardValidate-CircumPropAlreadyDefined". The same activity Step did not throw an error when saving into Branch. This was traced to the ruleset name not being the same for the branch ruleset due to having _BRANCH_Branch-Name appended to its name, and has been resolved by adding a condition to check for circumstanced rule in a branch. | Data Integration |
INC-175108 | 650919 | Error message will assist locating table/query involved in exception | In order to assist with troubleshooting an update related to a Class mapping issue, the previous generic exception message has been updated to provide the relevant class in the exception message and indicate that it may be incorrectly mapped. | Data Integration |
INC-175595 | 652831 | Java Bean import updated to handling differences in Java 7 and Java 8 | The behavior of the java bean Introspector class is inconsistent across different versions of the JDK when detecting indexed properties built off of java.util.List objects, causing Java Bean import to generate differently in Java 7 and Java 8. This has been resolved by updating PRIndexedPropertyDescriptor to better handle this JDK difference by resolving indexed read and write methods manually using simple reflection. | Data Integration |
INC-175672 | 652944 | ServicePackage threads properly released | After completing a system stress test, the requestor pool threads for the ServicePackage were not released. Investigation showed that the threads were waiting for Data Pages to be loaded in the background even though there was no background job corresponding to those data pages in the Async Services pool. This has been resolved by making an update to avoid removing the object handlers when the load-datapage finds that an entry exists with a NOT_STARTED state. | Data Integration |
INC-175672 INC-193442 |
655809 679178 |
ServicePackage thread handling improvements | Work recently done to improve the release of requestor pool threads for the ServicePackage has been further enhanced by adding an explicit status notification to the thread waiting for Data Pages to be loaded in background and added support for the use case of a missing object handler. | Data Integration |
INC-176274 | 666390 | Timeout check added to authorization to preserve portal context | When using SAML SSO Authentication Service with "Use access group timeout" and "Redirect to IDP login after logout" selected and "Force authentication" not selected, manually logging out correctly returned the view to the custom SSO login page but the timeout logout returned the default Pega login page as if SSO was not in use. Analysis showed there was a "Failed to open portal" error after doing some action post timeout, and this was traced to pyPortal page not having a value. Investigation showed this was blank due to the creation of new thread while the requestor state was perceived as unauthenticated because of the timeout. To resolve this, a timeout check has been added to the following: Authorization#setActiveAccessGroup(java.lang.String, boolean, boolean, java.util.Map) BasicApplicationContextImmutableImpl#applyApplicationProperties |
Data Integration |
INC-176785 | 656077 | Validation on DateTime property working for mobile | A mandatory DateTime field with "Allow text entry" set to 'No' was not restricting validation when no value was provided. This was an unintended consequence of recent work done to validate input type date along with input type hidden, and has been reverted. | Data Integration |
INC-176903 INC-192200 |
657338 678016 |
Ready to process records count correctly displayed | After update, the QP's ready to process records count was always shown as zero in the Admin studio QP landing page. This was traced to a missing sListMaxResultCount property in the SQL query for qp-partition retrieval; this has been added, and the default value has been changed from 0 to -1 for proper interpretation of results. | Data Integration |
INC-177353 | 658727 | Debug logging improved for LibraryRuntime | No error logs were generated when an access group was pointing to a base ruleset with different major version from that of the system. This has been resolved by improving the debug logging for the following classes: LibraryRuntime LibraryMetadataCache .findTripletForCurrentRulesetList |
Data Integration |
INC-177470 | 657142 | Optimization prconfig check added for TableInformationMap | A prconfig setting check has been added to the TableInformationMap use of OPTIMIZE_SMA_QUERY during its foreign key lookup. | Data Integration |
INC-177737 | 663141 | Authentication requirement updated for CallConnector | After update, invoking a REST API call during SSO login which eventually called pxCallConnector (Final Activity) in @baseclass Pega-RulesEngine failed at the CallConnector step. This was caused by a change in recent Pega versions which enabled authentication for this activity, and has been resolved by marking the activity as internal and disabling the authentication requirement. | Data Integration |
INC-177773 INC-179448 |
665338 676270 |
Tracer protections updated | Cross-site scripting protections have been updated for Tracer. | Data Integration |
INC-177993 | 657200 | Archival IndexManagerService performance improved for very large tables | Archival IndexManagerService was taking an excessive amount of time to run updateStatusForCasesWithInconsistentArchiveStatus(), a method which checks the parent case's archival status and compares it to all its children (cases & dependencies) statuses and flags parent cases with statuses that do not match. This check is done on all parent case instances that are in the indexer stage, and intermittently timed out and failed on a pr_metadata table containing over 5,000,000 records. This has been resolved by splitting the inconsistent check into smaller tasks and addressing potential parent/child/dependency relationships that can occur in the pr_metadata table. | Data Integration |
INC-178148 INC-188405 |
660924 673063 |
Handling added for SSO servlet name | After update, logging into an external site was not working correctly due to the SSO URL being appended with "/app/default". This has been resolved by updating the code to handle the servlet name properly. | Data Integration |
INC-178923 | 660885 | Resolved startup error related to business calendar object | An error recorded in the log file when the server started was traced to a cache update that removed the old business calendar object and added the new business calendar object to the business cal list. This has been resolved by updating the system to replace the business calendar object instead of removing the old one from the cache first. | Data Integration |
INC-179025 | 665546 | Null check added for getTargetNodeUUID | A null pointer error was seen from the tracer during a security scan. This has been resolved with the addition of a null check for TracerRequest.getTargetNodeUUID. | Data Integration |
INC-179106 | 662617 | Null data page check added for DataPageTelemetryImpl | Recent work was done to modify the StreamChangeTracker trackValueChanges API to return false when invoked for properties of mode page. An additional null check has been added in DataPageTelemetryImpl.recordDataPageLoaded to handle a null pointer exception caused by null data page definitions. | Data Integration |
INC-179167 INC-192419 |
659590 677293 |
Atmosphere update | The Atmosphere jar has been updated to version 2.4.5.9. In addition, a catch has been added for an illegal state exception in org.atmosphere.cpr.DefaultBroadcaster#executeAsyncWrite atmosphere level. This exception had no functional impact but could generate multiple log entries if there was a stale reference trying to access a request-scoped object which was post its lifetime. | Data Integration |
INC-179837 | 658967 | AES call to mbean disabled | Under certain conditions, the AESRemote 'push memory' agent call to the legacy memory management mbean caused unexpected behavior in declarative rules for work running in data flows and queue processors. This has been resolved at this time by overriding the push memory usage agent activity to skip mbean and connect REST. | Data Integration |
INC-180184 | 665091 | Assistance and diagnostics added for issue with opening imported 'when' | After upgrade, attempting to open rules that were developed on lower environments and then imported resulted in unknown errors. A workaround has been added to skip and log any corrupted property that might be interfering with the rule opening: enable Skip-Corrupt-Property to put this in place. To improve diagnostics, the new logger NBA-WME-DEBUG has been added. If the error continues after using Skip-Corrupt-Property, Skip-Corrupt-Property should be disabled and NBA-WME-DEBUG should be enabled and kept active until the issue occurs again. | Data Integration |
INC-180901 | 666447 | Heap dump ability added for OpenJDK | Support for OpenJDK has been added to the heap dump generation process. | Data Integration |
INC-182148 | 668009 | Handling added for missing schema for persistClusterState | The message "Error retrieving database indices java.lang.NullPointerException" was being logged repeatedly, indicating an issue with ClusterManagementAPI. Investigation showed there were missing default Schema values in the prconfig files, and this has been addressed by adding fallback scenarios for missing schema information during PersistClusterState. | Data Integration |
INC-182537 | 667592 | French added to Locale List Separator | Exporting data to Excel in CSV format resulted in text with French accent characters such as "Décision pour une nouvelle demande de règlement" to appear as random characters, and columns were not being split. This has been resolved by adding a record for the French locale in the pzGetLocaleListSeparator decision table rule. | Data Integration |
INC-182572 | 663557 | Support added for multiple host proxy architecture | When using an architecture where certain types of users were sent through multiple proxy servers to get the Pega Cloud instance, an exception was generated at the point of accessing the environment. This was traced to the use of Apache 2.4 with mod_proxy. As the request passed through each proxy, the x-forwarded-host header had values appended to it by mod_proxy which resulted in the error "com.pega.pegarules.pub.context.PRSecurityException: Multiple host names in header X-forwarded-Host". This has been resolved by updating the code to support using a multiple host proxy configuration. | Data Integration |
INC-182828 | 667099 | License Usage logging expanded | Diagnostic loggers have been added to assist in debugging license usage. | Data Integration |
INC-182959 INC-185760 |
668737 668742 |
SQL queries modified to use qualified table references | Portal launch in the development environment was taking an excessive amount of time, as were some standard reports. The PurgeAssemplyDatabaseCache agent activity also generated an error regarding "(internal.cache.RAPurge) ERROR - Purge, unexpected error in removeOldAppCentricCacheData". These issues were traced to SQL queries that contained pr_sys_app_hierarchy_flat without a schema qualifier, and have been resolved by changing to class qualified table references. | Data Integration |
INC-182986 | 668829 | Property Rule Form refreshes after discarding changes | After updating from Pega 8.2 to Pega 8.6 and migrating the properties, modifying any property rule and then discarding the change did not refresh the Property Rule Form. Investigation showed that the LOG-SYSTEM-PROPERTYOPTIMIZATION instance created during property optimization was not getting deleted when a property was deleted. As this was not getting deleted, the property was shown as optimized when adding the property back, causing confusion. This has been resolved by cleaning up the LOG-SYSTEM-PROPERTYOPTIMIZATION instance when the property is deleted and there is an optimization entry. | Data Integration |
INC-183530 | 668470 | Null check added for missing compiler path | After upgrading from Pega 7.3 to Pega 8.6, libraries were not loading correctly and a java error was seen. This was traced to the compiler default path values not getting picked from DSS / settings->compiler->Default paths, which was caused by a null value for the DASS setting in the systemSettings map. To resolve this, a null check has been added and an update has been made to use getEngineDynamic to ensure this setting is picked on node startup. | Data Integration |
INC-183728 | 665133 | Oracle handling updated for primary key in upgrade DDL | Previously, when a primary key of a table was created Oracle would automatically create a unique index with the same name as the primary key. However, with the introduction of Oracle 19, an optimization was added which will not do that if there is another unique index on the table which contains the column(s) of the primary key. This difference can cause updates to fail with the error "cannot drop index used for enforcement of unique/primary key". This has been resolved by updating the handling for primary key constraint and the corresponding index name. | Data Integration |
INC-184427 | 671861 | Cross-site scripting security updated for rules | Additional cross-site scripting protections have been added to Pega-RULES. | Data Integration |
INC-184668 | 665958 | Check added for null mColumn values while estimating size | A null pointer error indicating an issue with AbstractDataPageHandler.estimateDataSize was traced to missing handling for null values in mColumns while calculating size. This has been resolved with the addition of a null check. | Data Integration |
INC-184699 | 674683 | Agent name validation added | After creating an agent name that contained "/", the Agent API returned "Resource not found". This was due to the "/" character's incompatibility with the REST API, and has been resolved by adding agent name validation (pzvalidateagentname) to embed-rule-futurequeue to prevent the inclusion of "/" in an Agent name. | Data Integration |
INC-185266 | 676581 | Index table correctly populates after migration | After creating a product file with work instances, only some records were populating in the index-workpartyuri class through index rule. Investigation showed that if the IDs specified for the Work Range started with the same digits as were seen after the case prefix (e.g. W-1, W-1000, or W-22, W-2201) then only the indexes for cases that start with W-1 or W-22 were included in the export. This was traced to a step in AddPartyIndexWhenCondition where the EstimatedWorkPrefix local variable was calculated: the java step extracted anything that was the same from the start of the To and From range without taking into account the possibility that some digit characters after the "-" could be the same. To improve the accuracy of the prefix estimation, "-\d" will be used to make an educated guess. | Data Integration |
INC-185614 | 684847 | Resolved access errors for external database class mapping generation | After update, opening the Database Class Mappings landing page displayed all database tables linked to customer data schema as an exclamation mark with the error tooltip : "width = device-width". In addition, the error "Class: com.pega.pegarules.pub.PRRuntimeException Message: Error: You lack access required to execute Pega-Landing-DataModel-DBClassMappings.pzLPCheckDBMapRowCount" was logged. The application behaved normally despite the exceptions. This was traced to the the warning tool tip not loading correctly for the Exposed/Mapped column in Configure-Data Model->Class and properties->Database class mappings->select class category(Data)->for CustomerData, and has been resolved by updating the security settings to re-allow invocation from browser, require authentication, and set the correct privileges. | Data Integration |
INC-186094 INC-193917 |
683693 683683 |
MQ jar handling updated to resolve initialization error | After update, errors were seen indicating a NoClassDefFoundError relating to initializing com.ibm.mq.jms.MQQueue. This was traced to a difference in the handling of imported MQ jars, and has been resolved. | Data Integration |
INC-186634 | 672151 | Expanded debug logging for requestors | In order to assist with diagnosing issues, debug loggers have been added for requestor activation and validation. | Data Integration |
INC-187553 INC-188080 INC-188143 INC-189477 INC-200029 |
675429 673783 674972 674034 690167 |
Service Email handling updated for MSGraph "From" address | While creating cases via email listener, the "From" address was not shown when using MSGraph. This was an issue with extracting the display name when MSGraph is used, and has been resolved by adding double quotes to display the name unconditionally. | Data Integration |
INC-187708 | 680012 | Handling added to StreamChangeTracker for non-String mode | Incorrect StreamChangeTracker mode properties were being tracked for value changes. Investigation showed this was due to the StreamChangeTracker.trackValueChanges API tracking value changes on properties of mode page and page list, which resulted in logging a WrongModeException in the logs. This has been resolved by updating the behavior of the StreamChangeTracker.trackValueChanges API to return false when value change tracking is invoked for a property other than mode String. | Data Integration |
INC-187750 | 675635 | Error message removed for adding a new datatype to a branch | Clicking 'add data type' for an application when no unlocked rulesets were available resulted in the error message "No unlocked Rulesets/Versions found that are valid for this record. Unlock at least one Ruleset/Version that can contain records of this type.". However, it was possible to create a data type by choosing branch. Investigation showed this message was added by the activity pzLoadTypeToBeAdded and is not needed: it has been removed from the step that appended the message when validating on click of submit. | Data Integration |
INC-188544 | 674455 | More informative error message for PreGetChildKeys | Previously, any failure of the pzPreGetChildKeys activity included a generic error such as “Unable to identify default schema for the connection” and did not indicate the class/table name. In order to support more efficient troubleshooting, this has been updated to present an error that is more descriptive and includes the correct class name and table name. | Data Integration |
INC-189259 | 674820 | Big Decimal used while converting List to Page | Previous work done to handle precision numbers in the JSON response that were being rounded or truncated when parsed for the DataSource page has been updated to also handle the case of mapping a list to a page. | Data Integration |
INC-189580 | 672852 | Cleanup added for disabled/deleted operator passivation data | In some scenarios, a passivated session for a non-active operator was able to be resumed after cluster restart. This has been resolved by adding a check for disabled or deleted operators which will then delete any lingering passivated data. | Data Integration |
INC-189811 | 679935 | Updated XMLDataToPage privilege | Cases were not being created or moved due to a privilege issue on EndUser portal after update. This was traced to the XmlDataToPage activity now including the OpenDeveloperForm privilege, which end user operator profiles do not have. This was a missed use case, and has been resolved by updating XMLDataToPage so it requires authentication but not privilege to run. | Data Integration |
INC-190380 | 678643 | CreateVersion rule updated for REST Integration Wizard | When using a JSON response in the Create REST Integration wizard to generate the rules, the wizard displayed a null pointer exception during the final generation. The error pop up message "Generation process has been canceled and all created records have been removed" was displayed on the screen. This was traced to the REST Integration Wizard putting data rules in the wrong ruleset version when the context of both the Integration Layer and the Data Layer were configured to use an existing ruleset and to create a new version of that ruleset, and has been resolved by modifying the pzCreateVersion rule to support this. | Data Integration |
INC-191033 | 684370 | Security updated for viewing data tables | In order to improve security related to viewing data table instances, the privilege pxListClassRecords has been created in @baseclass and added to the "may start" activity ListEditor. Please add the privilege pxListClassRecords to access groups using ListEditor. | Data Integration |
INC-191673 | 679945 | "Keep file open" updated | When "keep file open" was checked, Connect-File was failing with a java.io.IOException: Stream Closed error if called more than once. When "keep file open" is checked, the very first Connect-File call saves the handle to the OutputFileStreamWrapper of the requestor page. Any subsequent Connect-File calls will access this saved OutputFileStream but the stream is already closed, resulting in the exception. To resolve this, the try-with-resources statement that closed the OutputStream has been removed. | Data Integration |
INC-192820 | 680453 | Classmap will not be rebuilt if there are no class changes | The get MBA service was not working as expected after update. This was traced to a Strategy FUA contention issue with ClassmapImpl: each time the System Pulse processed a CACHE type, it resulted in the ClassMap being rebuilt even if a Class was not added or deleted. To resolve the issue, a condition check has been added on the two places in ProcesChangesFromPulse.processChanges() that call DatabaseImp.noteConfigChangesInClassMap(). If the size of the list is 0, there is no need to rebuild. | Data Integration |
INC-193507 | 681748 | DSS added to control DADT purge | Thread dumps and service restarts were seen when Decision Engine data nodes were working with a very large number of tables. This has been resolved by adding a DSS as part of the CDH layer which will skip CDH DADT that contains pattern DATA_BATCHOUT, for instance "DATA-ADMIN-DB-TABLE DATA-BATCHOUTPR469001" to prevent the deletion causing full cache invalidation of the table information map. With this DSS set to true, when the purge agent runs and deletes the DADT, class cache should no longer be invalidated. With the DSS missing or set to a value other than true, the class cache invalidation will still occur. | Data Integration |
INC-193767 | 683299 | Handling updated for validating properties with a FieldValue | Running a report which included a property calculated by a Declare Expression generated an excessive number of log messages indicating "Error occurred while executing forward chaining on page 'pyReportContentPage.pxResults". Degraded system performance, stack overflow, and other similar issues were seen. This was traced to an infinite loop that resulted from a missed use case for a Report Definition with a Target property of a Declare Expression with FieldValue, and has been resolved by disabling autochain while validating properties with a FieldValue. | Data Integration |
INC-194224 INC-196604 |
682648 686005 |
New or updated operators properly updated on other nodes | Newly imported or updated operators were not getting properly pulsed to other nodes. This was traced to operator pages being cached while the system pulse for 'Data-Admin-Operator-ID' was not permitted on the allow list, and has been resolved. | Data Integration |
INC-194269 | 681046 | Added handling for Create Source and Target properties of Date | A report definition was not displaying results after update, and a stack overflow was reported. This was a missed use case for Create Source and Target properties of Date, and has been resolved by adding a boolean flag to avoid autochain during validations when data type is Date. | Data Integration |
INC-194490 | 685239 | Parameter handling updated for GetRepositoryFolderName | An UnresolvedAssemblyError was generated with an Unauthenticated Thread exception after opening the declare expression Embed-Application-StorageProvider pyFolder and performing a private edit. This error was traced to the Rule-Utility-Function call "pxGetRepositoryFolderName()", which was expecting a parameter "tools" which was not being passed from the declare expression rule. To resolve this, the pyFolder and pyFoldeIf declare expressions and pzsetContentStorage have been modified to pass 'tools' as a parameter to pxGetRepositoryFolderName. | Data Integration |
INC-194594 | 684714 | Parameter handling updated for cloned environment | The Editable data page parameters were not getting set in a cloned environment. This has been resolved by adding code to detect the use case ('append and map to action' with 'a new page' relation) and let it fallback to legacy code generation. | Data Integration |
INC-194806 | 680968 | Performance improvement for message processing | Severe performance degradation was seen for message processing in pdc-central after update. Investigation showed there was an issue with a write lock not not being acquired while reloading the datapage definition, causing concurrent dirty reads and multiple definition reloads. To resolve this, DeclarativePageDefinitionCacheImpl has been updated to acquire a write lock to prevent dirty reads of the same stale data page definition while reloading. | Data Integration |
INC-196313 | 688605 | Added pause after Library Extraction to ensure Rule-Utility-Functions are present | After upgrade from Pega 7 to Pega 8, nodes were not starting and the error "pub.context.InitializationFailedError: PRNodeImpl init failed" appeared. This was traced to an issue with the pzSharedTenant rule: when pzSharedTenant (Rule Access When) is assembled by the system, it uses the compareTwoValues Rule-Utility-Function. If the system is not able to find the correct version of compareTwoValues, it adds an UnresolvedAssemblyError in the assembly of the pzSharedTenant, causing the startup failure. This has been resolved by adding an await call after the LibraryExtraction task to wait for it to complete. This wait will ensure that the library extraction task completes before starting the search task which uses Rule-Utility-Functions | Data Integration |
INC-197112 | 689260 | Corrected unnecessary Severe Warnings for MSGraph account | After configuring an email account with MSGraph settings and saving the the email account instance, three unneeded severe guardrail warnings were generated related to using D_pxGetApplicationSettingValue instead of a constant value. This has been resolved. | Data Integration |
INC-198632 | 687582 | Handling added to correct class setting during DX-API | When a DX-API call was made (assignments/{ID}/actions/{actionID}/refresh) the ApplyPageInstructions activity was updating the case with an incorrect class, causing the rules from the wrong class to be picked and blocking the case progression. This has been resolved by setting the proper parameter Param.workPage while calling pzApplyPageInstructions from pzUpdateCaseWithRequestBody to calculate the proper class for the content. | Data Integration |
Decision Management
8.7 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-159836 | 638267 | Upgraded Apache UIMA Ruta libraries to resolve memory leak | A memory leak issue that resulted in a reboot being needed every few days was traced to the class org.apache.uima.ruta.rule.RuleMatch. This has been resolved by upgrading the Apache UIMA Ruta libraries to v2.8.1. | Decision Management |
INC-164243 | 658270 | DateTime validation works correctly after importing invalid data | After creating DecisionData (Dev studio) and adding a DateTime property to the form, importing records with invalid DateTime values failed with a validation error on the screen and the message "Error while converting format for data type DateTime property name Test_date_format with value scvf" was logged. Attempting to proceed by correcting the DateTime property and uploading worked, but any subsequent imports in the same session silently allowed invalid inputs to be passed without any validation errors and then showed blank date fields. This has been corrected. | Decision Management |
INC-165704 | 639506 | VBD data flow timeout increased and made configurable | Intermittent VBD timeouts were seen when writing records to MSK even though no errors were reported on the MSK side. Analysis showed that while batch data flows retry when a timeout occurs, real time data flows do not retry and the configuration to wait up to 10 seconds for an acknowledgement may not be sufficient depending on the system conditions. This has been resolved by increasing the default timeout to 20 seconds and adding a configurable timeout "vbd/streamPublishTimeoutMillis" to allow a customized setting. | Decision Management |
INC-166561 | 645648 | ADM Models correctly updated | The ADM models were not being updated when responses were processed either via the CaptureResponse API or when the time elapsed that should result in an update reflecting a non-response. This was traced to incomplete handling for a response coming for some other model which was converted to EMPTY, and has been resolved by modifying the logic so that the default responses and other responses are processed properly. | Decision Management |
INC-166845 | 640299 | Hazelcast remote execution not called from synchronized context | After navigating to the Admin Studio portal to view the nodes, the portal was temporarily freezing. Investigation of the thread dump revealed this was caused by a DDS pulse sending a remote execution call to all nodes to update logger settings even though the site was not using DDS. This has been resolved by updating the system to avoid calling Hazelcast remote execution from a synchronized context. | Decision Management |
INC-167606 | 665870 | Updated ConfirmHarness handling for case type creation | If a new case type was created with the initialization stage and there were no assignments in the case type, the /cases API did not return a NextPageID in response. This has been resolved by setting the pyConfirmHarness parameter before calling addworkobject. | Decision Management |
INC-168271 | 640347 | ADM performance improvements and duplicate inputs corrected for delayed learning records | Additional work has been done to improve the performance for Adaptive Models used in multi-level decisioning, and an issue with duplicate pxCommonInputs has been resolved. | Decision Management |
INC-169125 | 642402 | Nodes resume correctly after DDS restart | A corner case issue in VBD's code for handling a DDS session was preventing the nodes from recovering correctly after a system shutdown. As part of the process for an event which fires if all DDS nodes are taken down or as part of a switch from embedded to external Cassandra, VBD's cache is invalidated and then re-initialized once new VBD API calls are received or on the VBD service pulse. In this case, the invalidation of the cache did not complete due to logic in the VBD code that can lead to executing a Cassandra query that will not work in the case of all DDS nodes being down. This has been resolved by modifying the handling of a session change event to eliminate inadvertent Cassandra queries so the invalidation can complete correctly and continue the re-initialization process. | Decision Management |
INC-169544 | 649541 | Enhancement for MaxEnt modeling data | An enhancement has been added to create output for the model coefficients, the term frequency, and the inverse term frequency for use in maximum entropy modeling. For MRM processes, every Maximum Entropy (Maxent) based topic model will contain two additional stats resources. These resources can be used to validate and replicate running of topic model outside of Pega. The resources are: 1) Term Frequency file – A CSV file with all words used for training and their cumulative frequency across training set. File name format – TRAINING_DATA_TERM_FREQUENCY_< RandomNumber >.csv olumns – Word, Count 2) Coefficient file – A CSV file with all features (words, taxonomy matches and category matches) and model learnt weights for each topic across training set. File name format – MAXENT_COEFFICIENT_VALUE.csv Columns – Feature, < TopicName1 >, < TopicName2 > ,…, < TopicNameK > |
Decision Management |
INC-170721 | 658960 | Stricter criteria set for reusing an SSAExecutionContext | After a Strategy was configured with an existing Proposition Filter and the Explain Results box was unchecked, executing the strategy resulted in the error "Stack is empty, cannot pop any more frames". Investigation showed that the SSAExecutionContext object was reused across the two criteria evaluation in Proposition Filter rule: this works well as long as the input is the same across the two evaluations. However, the SSAExecutionContext object also stashed a reference to a PublicAPI object which became stale in the second evaluation and caused the empty stack issue for the given scenario. This has been resolved by providing stricter criteria in deciding when an SSAExecutionContext can be reused or not in the case of Proposition Filter rule. | Decision Management |
INC-171594 | 656183 | Spell check correctly applied to email body | Spell check was not being applied to email body for text analysis in Email Channel. This has been resolved to work irrespective of case. | Decision Management |
INC-172785 INC-177031 INC-193326 |
662334 664858 683806 |
Adaptive model retry mechanism enabled | Adaptive models were missing from the Model Management page as well as in the Prediction studio while similar models for the same proposition, only differing by the Channel name, were visible. This was traced to data not being synchronized between the database and Cassandra. The pegadata.pr_data_adm_factory database table did not contain the record of the missing channel, but Cassandra did. Since the current Cassandra adm_scoringmodel contained model information, the system still believed the model was present. In order to ensure Cassandra and the database table are in sync, an update has been made to enable the retry mechanism "SyncFactoryKeysTask" to create the ADM model in factory table by periodically looking for scoring models without factories or an entry in adm_meta. | Decision Management |
INC-173596 | 660219 | Google OAuth and Spring versions updated | The Google-oauth-client jar has been upgraded to version 1.31.1, and SpringFramework libraries have been updated to version 5.3.9 . | Decision Management |
INC-174550 | 658393 | Alternative pyLabel source for Auto-generated Proposition Filter added as fall back | After using save-as to move an offer/action rule containing eligibility criteria into a new ruleset /branch, the criteria disappeared. Proposition Filter has an explicit dependency on relevant records, and in this scenario investigation revealed all of the relevant records had been previously deliberately deleted. Using save-as on auto-generated CDH rules like actions is also not a best practice. To better handle unexpected actions like these and avoid the hard dependency on Relevant Records, when creating the Proposition Filter via the programatic API the system will fall back to reading the label from the sourcePage if is not possible to get the label from Relevant Record. | Decision Management |
INC-174661 | 678822 | Handling added for clearing node killed between assignment and processing | An Offer flow was not resuming after it expired according to the wait shape. Investigation traced this to partitions which were assigned to a dead node in NEW state where they were not picked up by the dataflow. The problem was only encountered in the unusual situation when a dataflow node was killed in the brief period of time between the assignment and the processing, and has been resolved by adding an update which will clear unknown new assigned partitions for the batch run health task. | Decision Management |
INC-174781 | 655121 | Kerberos authentication added for external Cassandra | Support has been added for Kerberos authentication with Cassandra. | Decision Management |
INC-174933 | 651829 | Special characters escaped for use in "is in List" lookups | After creating a specific criterion on any proposition using a string property, the "Is In List" operator, and a customer list with one value containing a "$", clicking save or check in resulted in the exception error "Problem invoking function: pega_decisionengine_propositionfilterfua.pzPropositionFilterMethodBody--(PublicAPI,ClipboardPage) java.lang.IllegalArgumentException: Illegal group reference at java.util.regex.Matcher.appendReplacement(Matcher.java:857) ". This has been resolved by escaping regular expression control characters in string replacement, which will allow the use of characters such as the $ sign for "is in List" lookups. | Decision Management |
INC-175207 | 655554 | Added handling for DSM Services stuck in leaving status after database outage | During a database outage, the heartbeat would fail and DSM services would eventually try to enter safe mode and stop. As the first step they would try to change the state to LEAVING, but because the database was down saving the LEAVING state failed and the exception was not handled correctly. This resulted in the rest of the stop operation logic not being executed and the service being stuck in LEAVING. To resolve this, an update has been made to ensure the service goes to LEAVING_FAILED if anything fails during the stop operation including when setting state to LEAVING_FAILED. The state LEAVING_FAILED will get flushed to the database eventually when it comes back up. This will allow the aggregation service to start from the LEAVING_FAILED state and recover by itself after a database outage. | Decision Management |
INC-175707 | 655347 | Multi-level strategy gives correct rules during Batch run | When using a nested page structure with multi-level strategies that loop through each page and process the customer, a customer with two linked customers A and B had the results of A overridden by B during Batch Processing while single case canvas testing showed the correct results. This was caused by the DSM clipboard page method of carrying the parent page info not supporting the re-use of pages, and has been resolved by adding an enhancement that will sanitize the strategy stage processor to ensure the correct page reference is used. | Decision Management |
INC-176757 | 657785 | Interaction History properly saved when running strategy on a different data flow | Customized Interaction History properties that had been added to pyInteractionHistoryConfiguration and pyDefaultWorkingSet and saved into the PR_DATA_IH_FACT table were not being saved properly after upgrading from 7.3 to 8.3. This was a missed use case and has been resolved. | Decision Management |
INC-177877 INC-194946 |
661176 680523 |
Write lock check added to avoid thread contention | After updating the Pega platform and NBA Designer, a significant drop in performance for multilevel strategies was observed. Investigation showed that invoking a sub strategy containing external input intermittently caused a thread contention issue related to write lock. This was traced to overzealous write locking of a component where only a read lock for the thread was required, and has been resolved by adding a verification check to determine whether a write lock is necessary for a given operation before acquiring it. | Decision Management |
INC-178214 | 664890 | D_ProjectList updated to resolve defined databases error | After update, an API error for D_ProjectList indicating "No databases defined" was seen when trying to load decision and templates for the first time. The error did not reoccur after the initial save. This was has been resolved by updating the handling for loading the properties file during class loading. The error has also been changed to an exception. | Decision Management |
INC-178938 | 661495 | Exception handling added for ClipboardPropertyCollection | After upgrading from Pega v7.3 to 8.5, validating the existing strategy logic generated the error "ClipboardPropertyCollection is not a supported ILType". This was traced to the special Pega expression type PropertyCollection not being supported by IL, and has been resolved by adding logic that will throw a more appropriate exception (instead of the generic PRRuntimeException) so the event can be caught by the existing fallback logic. | Decision Management |
INC-181401 | 665936 | Added handling for MS SQL datestamp format | When using an Microsoft SQL Server, the browse operation was failing with an SQL error for the pyIHSummary dataset. Investigation showed there were some datasets that generated SQL statements with a date timestamp format that SQL was not able to handle implicitly, affecting browsing but not functionality. This has been resolved. | Decision Management |
INC-182137 INC-188124 |
662488 672587 |
Multistage Prediction Logic improved | When Predictions with Response wait time configured were executed as part of make decision, each decision that came out of the strategy caused a pxDR call to fetch the relevant model execution results and process them to stage the default outcome results for models. This has been improved by modifying the system to process the existing records rather than reading data again from pxDR. | Decision Management |
INC-183211 | 667012 | Compare-To-Empty-String support added to Analyzer | An enhancement has been added to support a NotEquals decision function in the Analyzer. | Decision Management |
INC-183431 INC-187070 |
665162 672106 |
Strategy execution queries tuned | During NBA strategy execution, interaction history summaries were queried multiple times for a single strategy execution. To improve this function, the isChanged query will now be executed once after system startup if there are no changes instead of being executed every time the Aggregates DataSet BBK is executed. If the same Aggregates query is made multiple times as part of a Strategy in a REST request (i.e. likely multiple ADM models in a MakeDecision call), only one Aggregates BBK call will be made. | Decision Management |
INC-183855 | 667692 | Feedback data visible after update | In order to improve backwards compatibility, handling has been added for blank values of ruleset and classname in feedback data from NLP models. | Decision Management |
INC-184352 | 671897 | Predictive model snapshot generation updated for Java 11 | While the Simulation data export case type was executed as expected, the predictive stages showed zero records processed. This was traced to instances running on Java 11 which caused an issue with the snapshot process. This did not affect learning, but visualization and reporting were not working in Prediction studio. To resolve this, an update has been made to the snapshotID for Java 11 compatibility which will generate a random UUID instead of using a seed. | Decision Management |
INC-185045 INC-192960 INC-200152 |
672416 677562 689865 |
Performance improvements for action check-in | The process of 'Saving As' an action to a higher ruleset, Saving, and then running Check-in was taking an excessive amount of time. This was traced to redundant page copy activities and performance has been improved by updating the implementation. | Decision Management |
INC-186437 | 685015 | Updated entity attachment extraction tokenizers | After creating an entity extraction model, it was seen that one of the entities worked when there was a space after the semicolon but the detection was not working if there was no space. This has been resolved by updating the Tokenizers with extra examples to address tokenization when ":" is present between two words without any spaces. | Decision Management |
INC-186889 | 674014 | Unused DSS compiledExpressions now defaults to false | After updating from Pega 8.2 to Pega 8.5, executing a test campaign failed with an error in logs. This occurred when running Distribution tests with "Include funnel analysis reports" checked, and was traced to the DSS setting "decision/strategy/ssaVM/compiledExpressions". As this was previously used to toggle a feature which is no longer in use, the default setting for this DSS has now been changed to false to resolve this issue. | Decision Management |
INC-187520 | 677873 | Actuals sync clears data from cache and persistence | When sync attempted to clear the existing data from Actuals before copying data from the interaction history, the partition was cleared from the cache but not from persistence. IH data that was then copied to the same partition time ranges had new field descriptors created that did not match the format of the old data in persistence. As a result, when a query triggered the loading of such a partition, the mix of data with the old and new formats caused the load to fail. This has been resolved by updating the system to ensure the data is deleted properly from both the cache and persistence. | Decision Management |
INC-188124 | 673106 | Strategy updates | Three issues with Strategies were addressed: * During NBAD-generated strategy execution, each interaction history summary is queried twice to check data relevancy. This update adds configuration options to disable topup in aggregate datasets. Topup can be disabled with the following configuration items: Set prconfig "ih/aggregates/last_customer_update_method" to NONE Set DSS "cep/aggregates_dataset/partition_proc_cache_time" to -1 * During NBA strategy execution, interaction history summaries were queried multiple times for a single strategy execution. To improve this function, the isChanged query will now be executed once after system startup if there are no changes instead of being executed every time the Aggregates DataSet BBK is executed. If the same Aggregates query is made multiple times as part of a Strategy in a REST request (i.e. likely multiple ADM models in a MakeDecision call), only one Aggregates BBK call will be made. * Summaries created with a list of filters for aggregation were intermittently truncating the generated Summary Dataset. This has been resolved by updating the Digest calculation strategy to not take into account Filter IDs which may change if a Dataset is generated from CPD. |
Decision Management |
INC-188309 | 684702 | Proposition filter populated for test business Issue | When running the proposition filter rule, no drop down list appeared for a business issue. This was caused by the Issue list not being populated for the Action-Run test page, and has ben resolved. | Decision Management |
INC-188389 | 674671 | ComponentName fallback added for toggling page context | Whenever the External Strategy configuration was changed from "Another Page" to "Current Page", pyComponentName property was not being created. This was a missed use case for toggling page context for external substrategies in the user interface of the strategy designer, and has been resolved by setting pyComponentName to its default if reset when switching context. | Decision Management |
INC-188419 | 671501 | DSS added to configure usage of Topup | During NBAD-generated strategy execution, each interaction history summary is queried twice to check data relevancy. This update adds configuration options to disable topup in aggregate datasets. Topup can be disabled with the following configuration items: * Set prconfig "ih/aggregates/last_customer_update_method" to NONE * Set DSS "cep/aggregates_dataset/partition_proc_cache_time" to -1 |
Decision Management |
INC-188882 | 679144 | DSS added for configurable asynchronous writes into DDS | An enhancement has been added which will allow DDS writes happening within pxDelayedLearningFlow to happen asynchronously and be configurable per node in order to improve performance. name: dnode/save_dds_async_processing_enabled description: Enable asynchronous processing of records in DDS Dataset save operation. Failures to store individual records will not interrupt operation execution. |
Decision Management |
INC-191356 | 679163 | External Input setting available on Strategy Batch Performance Test | It was not possible to specify the External Input as part of a strategy when using a Batch Performance test. This has been resolved by updating the pzDisplayTestStrategyContext When condition to "true" the so external input selector is properly displayed. | Decision Management |
INC-191554 | 681351 | Mapping updated for Primary filter rule with globally optimized strategies | A discrepancy was seen in the results when compared between running globally optimized strategies (GOS) and a normal strategy in the Customer Decision Hub. Investigation showed this was caused by a proposition filter rule containing When rules configured with the keyword "Primary", which caused page mappings to fail in GOS. This has been resolved by explicitly populating the primary context for callWhen. | Decision Management |
INC-191789 | 679606 | Updated SimpleDateFormat to remove lenient parsing mode | When using File Dataset to ingest CSV files with the required Date format set as yyyyMMdd, an error was thrown if the date value provided in a file was in the format '14/04/1971', but a date format such as 14-04-1971 did not produce an error but instead was mapped to a Date value of 00131204. . This has been resolved by disabling the lenient mode of parsing in SimpleDateFormat. | Decision Management |
INC-192025 | 680706 | Scenario Planner performance improvements | Scenario planner runs were causing out of memory errors on the dataflow nodes. To resolve this, updates have been made to improve performance. Only relevant information will be kept for decision funnel simulations out of SR pages, the memory footprint of data structures used to aggregate and rollup counts has been reduced, and temporary objects will be released as soon as they are not needed anymore. | Decision Management |
INC-192102 INC-201366 |
678532 691508 |
Performance improvements for stale thread warnings | Stale thread warnings were causing performance issues during dataflow run execution. Stale thread/slow component warnings are added as part of the dataflow execution when a processing thread takes more than 5 minutes to process a single dataflow record. The stacktrace of the dataflow thread is added as part of the warning for debugging purposes, but in some scenarios the stacktrace can become very large. This has been resolved by removing the stacktraces from the warning, improving the query logic, and adding the run ID to the exception method to assist if there is an error. | Decision Management |
INC-193986 | 680032 | Parameter logic updated for metrics activity counter | An error was causing the PushCDHMetrics agent to fail. This was traced to an undefined parameter in the activity which was used as a counter, and has been resolved by replacing it with a local variable of type integer. | Decision Management |
INC-194305 | 681681 | File Dataset wildcards updated for ADM storage | Attempting to access the filepath was failing and an error was seen indicating "Could not obtain lock 'Create repository file pegacloudfilestorage:ADM/Rule-Decision-AdaptiveModel/Data-Decision-Request-Customer". While creating a file name, a lock is generated while checking the file names of existing files. If the file data set has a large number of files, a condition may occur where some threads are unable to save data and an exception is thrown. To resolve this, the wildcard previously used in the file name has been replaced with the Pega node id + thread id + current timestamp. This will ensure all wildcards are unique and there is no need to lock and list existing files. | Decision Management |
INC-194433 | 679630 | Key Value Store handling revised for greater backwards compatibility | Previous optimization work done to reduce the size of the "nm" field when the hierarchy string is empty resulted in some Key Value Store records not being read from older systems during update. This has been corrected. | Decision Management |
INC-194657 INC-201334 |
682005 690735 |
ADMinputsource field population updated to handle transactional decisions | The CaptureResponse flow was failing while writing to AdaptiveAnalytics with the error "IllegalArgumentException - argument does not represent JSON object". This occurred while running an outbound campaign where a few decisions were treated as transactional and did not have Model executions. Attempting to set a response for these decisions resulted in a JSON parse exception being thrown due to pxADMInputs not being populated (no models executed). This occurred only when using transactional actions in CDH, and was caused by the system only including predictive models during the make decision flow due to common inputs not being stored. While there was a workaround of overriding the property pzADMInputSource to use modelReferences instead of admInputContainer, this has been resolved by correcting how the pzADMinputsource field is populated. When there is no modelInput, the system will not populate that field so the page is ignored. | Decision Management |
INC-195387 | 681673 | HandleResponses updated for use with optimized campaign | After updating from Pega 8.4, responses were not processed in the pxHandleResponses Data flow if the "pyCampaignOptimization" flag was set to true. This was traced to a missed use case for an optimized campaign, and has been resolved by modifying the condition in HandleResponses. | Decision Management |
INC-196452 | 687462 | Handling added for special characters in dataflow and mbean name | Exception errors from deleted email listeners were seen after server start-up. Investigation showed that when a dataflow stage name had a special character and that name was then used in the mbean name, it was failing to register. This has been resolved by escaping JMX key values if they contain special characters. | Decision Management |
INC-197530 | 686027 | Value Finder updated for use with external Cassandra nodes | Attempting to use the Value Finder feature resulted in the error "Running Simulation is not possible because the required services are not available. Contact your System Administrator to enable the data flow and decisioning data store services." Analysis traced this to a check which identifies whether there is more than one internal node available for CDH/ DSS node. Since there were only external nodes available in this scenario and no internal nodes, the method returned false and returned the error when the CDH / VF page was launched. To resolve this, the check has been modified to allow for external Cassandra. | Decision Management |
INC-197730 INC-201364 |
686234 690806 |
Prediction outcome response timing updated | Predictions using a response timeout were not emitting a negative response ('NoResponse') when the specified waiting time expired. This was traced to the the outcome and response timeout values being overridden while triggering responses for multi stage predictions along with chained predictions. This has been resolved by modifying the flow to emit each outcome as it is received and by adding the dataflow trigger in the function so that it does not override the values in case of chained predictions. | Decision Management |
INC-198232 | 685700 | Tombstone cleanup modified to handle very large volume environments | Cassandra nodes were periodically suffering from an out of memory condition. This was traced to tumbling windows creating too many tombstones for Cassandra to clean up effectively when running in a very high volume environment with a short tumbling time. This has been resolved by modifying the procedure away from using individual tombstones to instead use range tombstones which will continuously supersede the previous tombstone so there is never an opportunity for them to build up. | Decision Management |
Low-Code Application Development
8.7 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-164002 | 639914 | Decision table null input handling updated for backward compatibility | After upgrade, any null values as inputs in the decision tables were skipped if "Allow Missing properties" was not checked. This behavior was different from previous versions. In order to improve backward compatibility, the new function pxEvaluateDecisionTable has been added which has an additional parameter to set AllowMissingProperties, and the older function logic has been modified to take the parameter value from the parameter page. | Low-code app development |
INC-164171 | 644707 | Support added for connect-SOAP run in parallel mode | When connect-SOAP was configured to use the “run in parallel” mode, application settings derived through a datapage had incorrect values. While running the connect-SOAP through an activity, all the values were derived incorrectly. This has been resolved by adding a synchronization enhancement to support parallel run connect.SOAP. | Low-code app development |
INC-164439 | 657995 | Setting added to customize using blank Map values | After upgrade to from Pega 6 to Pega 8 some of the Map Value rules were not working. This was due to the handling for blank default values which was changed in Pega 7. In order to support backwards compatibility, a new 'when' rule has been added which allows customizing whether or not blank values are allowed for the Map value default columns. pyAllowBlankValues will default to "false". | Low-code app development |
INC-165256 | 657037 | Improvements for Offer Eligibility rules loading time | After opening the Proposition filter/Action rule and clicking on Add Criteria, the pxAnyPicker drop down load was taking an excessive amount of time. Performance improvements have been made by adding a precondition at step 2 to avoid data page refresh for specific scenarios when it is not required. | Low-code app development |
INC-167037 | 650991 | SmartpromptType classes shown in Rule-Admin-Skill | Some class instances were not showing in SmartpromptType list. This was traced to the activity LookUpList, which is called from Rule- class in Rule-Admin-Skill, using pyClassName as one of the filter criteria in Java Step1. Therefore Rule-Admin-Skills did not show in SmartpromptType list. This has been resolved by overriding LookUpList for Rule-Admin-Skill class so it will not consider pyClassName as a filter criteria. | Low-Code app development |
INC-168692 | 642009 | Regex corrected for USZipCodeExtended validation | Edit Validate - USZipCodeExtended was not working as expected. Instead of validating 5 numbers followed by 4 numbers, it was validating for 5 numbers followed by 5 numbers. This has been corrected. | Low-code app development |
INC-168885 | 663668 | Corrected restoring lockable data class | After opening an instance of a lockable data class and deleting it and then restoring it, the system reported an error that a lock can't be held on the instance. This only happened for lockable data instances that were deleted and restored immediately, and as a work around the item could be restored successfully from from the History- instance. To resolve this, the pzRMActionRecoverDeleted activity has been updated to copy to a temporary page and take action instead of acting on the primary page. | Low-Code app development |
INC-168914 | 659659 | Updates added against Cross-site Scripting | Cross-site Scripting (XSS) protections have been updated for the UI. | Low-Code app development |
INC-169063 | 649986 | Referencing tool sorts rules by ruleset and version | After opening the View Reference tool with all rule set versions, the sort resulted in rules in multiple versions saved out of order. This has been resolved by adding two obj-sorts to ensure that the sort order appears as expected. | Low-Code app development |
INC-171257 | 651734 | Expanded results for Proposition Filter Relevant Record Properties | Previously, a maximum of 500 records were returned from pr_data_tag_relevantrecord when using Edit Parameters for the report definition proposition filter rule. In order to accommodate more complex needs, an update has been made to use the D_pxGetClassDataModel data page to fetch all the records and make them available in the dropdown. | Low-code app development |
INC-174200 | 650293 | Corrected typo in App Menu | In the Data-Portal.pzAppMenu rule, the entry for the disabled version of New Application was misspelled. This has been corrected. | Low-Code app development |
INC-174435 | 659478 | Survey Complex Question Definition properly displayed | Selecting any Complex Question to look at the definition displayed a blank screen. This was traced to an issue with the ruleformtabs properties for the layout group used by complex questions, and has been resolved by changing the Layout Group display type from "Default" to "Tab". | Low-code app development |
INC-174468 | 650946 | Delegated rules search considers localized text | The search / filter box used to look for particular delegated rules on the configuration tab did not consider localization via field values, where the on screen name and description of the delegated rule was localized. This resulted in the search text being compared against the original text (.pyAdviceText and .pyDescription) used for the name and description at the time the rule was delegated, but not with the localized text that actually appeared on the screen. This has been resolved by updating the pzPopulateDelegations activity to filter by localized values of pyAdviceText and pyDescription. | Low-Code app development |
INC-175533 INC-182576 |
678909 677527 |
Improved Page compare for page groups | Field level auditing on embedded properties sporadically did not report the "old" value when a property was modified even though the page was listed as "Modified". This has been resolved by adding logic to the pxComparePages algorithm to treat Lists and Groups differently. Now Page and Value Groups will use pxSubscript as the primary way to detect add and deletes. | Low-Code app development |
INC-176542 | 668478 | Removed unused function to improve Class rule save performance | Clicking save on the Policy Class rule was not working correctly or was taking an excessive amount of time to respond. Adding property mapping in the External Mapping tab of the Class rule exhibited the same behavior. Investigation showed there was an infinite loop being invoked in the class ruleform, which was traced to the disableKeyEntries() function. As this function is no longer used, this has been resolved by updating the RF_RuleObjClassScript.js to remove disableKeyEntries and any function calls to it. | Low-Code app development |
INC-178070 | 658678 | Browser invocation allowed for UnlockOperator | Attempting to unlock an operator who was locked out due to security policies was failing. This was an unintended side effect of security work performed earlier, and has been resolved by reenabling 'Allow invocation from browser ' for pzUnlockOperator. This activity requires an authentication check with privilege protection. | Low-Code app development |
INC-178872 | 668306 | Added handling for silent save fail with invalid cache | When Commit threw an exception, the Save button from rule form did not catch it and returned no errors even though the save failed. Investigation found this could occur on systems with invalid caches, and a try-catch has been added to handle an exception occurring in a Java step that should not stop future processing. | Low-Code app development |
INC-179769 | 671024 | Document generation new line formatting made consistent | The GenerateWordDocument API and Generate Document shape were not adding new line to a Word document even when Text Area format was used. This was traced to a difference in document generation which varied between adding \n and adding \r\n for new line, causing inconsistent behavior, and has been resolved. | Low-code app development |
INC-180468 | 659922 | JAWS correctly reads work group header | While creating the groups within the organizational unit, JAWS was reading the name of the frame as "Process Work Area" instead of "Create Work Group" and "enter data" instead of the name of the edit field with edit instructions. This has been resolved by adding a property to the short description label so it contains the instance type that is being created. | Low-Code app development |
INC-180603 | 661740 | Added protections for GetSiblings | Cross-site scripting protections have been updated for the GetSibling activity. | Low-Code app development |
INC-181091 | 662778 | Strategy rules open from proposition filter after update | After update, strategy rules could not be opened from the proposition filter. This was caused by the pxInsName property being populated only when a strategy rule gets selected/configured from the CB gadget. For upgrade scenarios where the condition is already configured with a strategy rule, the pxInsName property will be missing. To handle this upgrade use case, the "Rule-open-by-keys" action will be used instead of "Rule-open-by-name", as rule keys are always present while pxInsName gets populated for only new configurations. | Low-code app development |
INC-182150 | 669853 | DSS added to control Pega Version Banner | Nuisance errors were being logged related to the application trying to connect to Pega to confirm available versions. This has been resolved by adding the 'when' rule pyShowVersionBanner to pzStudioHomeWrapper which allows disabling/enabling the Version Banner based on the setting used in the DSS ShowVersionBanner. pyShowVersionBanner defaults to true when DSS ShowVersionBanner does not exist. | Low-Code app development |
INC-182152 | 667396 | Special character handling updated for export MapValue to Excel | The Excel download was failing when the Row/Column definition or column configuration of a map value contained an equals sign (=) or < > brackets inside quotation marks. This has been resolved by adding an update that will evaluate the comparator value at the start of the row condition value, and row condition value and row condition operator will be set separately. | Low-code app development |
INC-182248 | 665781 | Added logic to handle manual validate rule creation | Manually creating a Validate rule with conditions and then opening the configure view with conditions caused the validation rule to be removed from the flow action rule along with the validation conditions in the validation rule referred in flowAction rule. This has been resolved by updating the logic in the Condition Builder to handle this use case. | Low-code app development |
INC-184800 | 685685 | Handling updated for switching between concrete and abstract class types | After configuring a non-templatized table with source as page list, with the page list property sourced to abstract class, a runtime exception was seen when loading the table that indicated "database.BadInputException: Cannot open or save instances of class Data-Orders-OrderDetails--the class might be abstract, or it might have no defined keys, or it might descend from Code-". When a class is created and saved as concrete, there is a checkbox "Automatically generate a unique ID for records of this type" which when checked will set pyAutogeneratedKey to false on the clipboard. If the Class is then later changed to abstract without unchecking the checkbox first, then the BadInputException error will manifest on the table at runtime. Investigation of the Edit Class ruleform found some scenarios where clipboard properties which have previously been set while Class type dropdown is set to Concrete can persist and cause the BadInputException seen when the class is switched to Abstract. This has been resolved. | Low-Code app development |
INC-185587 | 679622 | Updated password hash security | Security around password hashes has been updated. | Low-Code app development |
INC-185670 | 680951 | All functions listed in decision trees | While configuring a decision tree, using the 'Function Allowed' dropdown resulted in the activity Rules-Alias-Function ListAliases throwing the error "Attempting to access a rule with a bad defined-on class: Trying to open rule "COMPARETWOVALUES" of class Rule-Alias-Function, but no defined-on class (pyClassName) was specified" while trying to remove the duplicates. After this error, both the original and the duplicate were removed instead of just the duplicates and an incomplete list was created. This was traced to an issue with the propagation of the pyClassName property to the OpenRuleAdvanced control in the pzAllowedFunctions section as part of passing "OtherKeyValuePairs", and has been resolved by passing the parameter values in the same control using a custom query. | Low-code app development |
INC-187103 INC-199303 |
671737 690629 |
Guided Tour working from Actions menu | After updating from Pega 8.4 to Pega 8.5, "Manage a Guided Tour" was no longer working under a local action when called from the Actions menu on a work object. An unspecified error message appeared in the tracer. Investigation showed there was a null pointer error caused by the menu being invoked on an invalid page, and this was traced to updated authentication requirements: registration at the portal is not reliable as it is thread-scoped and run only once. The thread name is not guaranteed to stay the same so subsequent invocations of the tour activities failed. This has been resolved by modifying the call registration function to handle the security issues related to the generation of the menu path. | Low-code app development |
INC-187610 | 672841 | Logic made consistent for design time group condition | An inconsistency was seen between the logic string that appears when switching from "Group ORs" mode to "Use advanced logic" mode at design time, though whichever mode was used at Action check-in was always properly reflected on the generated proposition filter so there was no runtime impact. This design time issue was traced to the property "pyGroupConditionsByOld " being empty: this property is transient so its value will not be saved into database. This property should be updated whenever user changes the Logic operator from the drop-down, and this has been resolved by adding an intermediate property to hold the old group condition value when it changes. | Low-code app development |
INC-189511 | 679184 | Column width adjusted for Survey simple question text area | When a number of columns were entered in a simple question (Answer tab) for a text area, the width was not reduced or increased for the text area. This has been resolved by setting pySpecifyWidth to custom for textarea. | Low-code app development |
INC-189933 | 677798 | Corrected deleting a ruleset with the refactor wizard | In the case of Access Whens applied for the modification and deletion of any rule and data instance, the haveAccess() function was executed on a null page and resulted in a PRRuntimeError that caused Ruleset refactor to fail. This has been resolved. | Low-Code app development |
INC-190165 | 676818 | MSOFileTransferButtons control withdrawn | After updating from Pega 8.2 to 8.6, attempting to modify migrated delegated rules resulted in a 403 error. This was traced to the Download/Upload activities configured to use the MSOFileTransferButtons control: BAC restrictions were introduced in Pega 8.5, and the MSOFileTransferButtons control is not compliant with these. The MSOFileTransferButtons control has now been withdrawn. The FilePath Control should be used in conjunction with pxParseExcelFile to upload and parse the Excel along with using the pxGenerateExcelFile activity for download. | Low-Code app development |
INC-190400 | 679443 | docx4j updated | After generating a Word document using the pxGenerateWordDocument activity, opening the document resulted in a popup message indicating "Word found unreadable content". This was traced to an issue with docx4j version 8.2.6, and has been resolved by updating docx4j to version 8.3.1 . | Low-code app development |
INC-191226 | 679379 | Corrected data page value loading | Values were not loading from a data page in Property. This was traced to a leading "." character in the property name, i.e. ".PropertyName" which prevented the rule being opened from the database due to incorrect property rule keys . This has been resolved by removing the leading dot. | Low-code app development |
INC-191902 | 677412 | Updated security for importing Excel to a decision table via a delegated rule | An error was seen when attempting to import an Excel file into a delegated decision table when using the case manager portal. This has been resolved by correcting a BAC issue for decision table import in the pzRuleDeclareDecisionTableStandard.js file. | Low-code app development |
INC-192092 | 677438 | Info messages added to merge and errors on merge failure | Logging used in the Merge Wizard process has been updated to provide feedback as the branches merge. In addition, the merge logic has been modified to use StepStatusFail as opposed to StepStatusGood. | Low-Code app development |
INC-192464 | 681751 | PackageComponent updated for use with repositories | Exporting a zip file created by the Component wizard to a repository resulted in an error, however the same process worked as expected when the zip file was created by the Product wizard. Investigation showed that pxPackageComponent was not kept up to date with new metadata requirements for Artifactory export. This has been resolved by modifying pxPackageComponent step 7 to set Param.ArtifactType to "component" and Param.ArtifactName to [component name]_[component version]. A privilege check has also been added to zipMoveExport. | Low-Code app development |
INC-192833 | 678115 | New Application Wizard will default to existing work groups if none are created | When using the new application wizard to create a new application, the new app API replaces the old work pools with the newly generated ones. If the new application configuration was done in such a way that classes are not generated due to reusing existing classes, access groups were being generated with empty work pools. To resolve this, the system has been updated to use the existing work pools if the new app didn't generate new work pools. | Low-code app development |
INC-193289 | 679210 | Security updated for @baseclass | After update, searching for a baseclass 'when' rule returned no results. Listing the rules under baseclass in App Explorer resulted in the error "Applies To: The Class with key value(s) %40baseclass does not exist". This was an unintended side effect of security updates, and has been resolved by creating an exception path for "@baseclass". | Low-Code app development |
INC-194227 | 679897 | New Application wizard disabled or enabled correctly | The New Application wizard was disabled with the error message: "Application creation is disabled as the current operator is in invalid state". This was traced to edits made to the Operator page which caused the new app wizard to not be shown due to failed validation. To resolve this, an update has been added which will refresh the operator page on click of the menu so the New Application wizard is disabled or enabled correctly. | Low-code app development |
Mobile
8.7 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-152542 | 610947 | Support extended for document tags | An enhancement has been added to extend the support for document tags, including showing tags added to a case in a workpool other than the application workpool; showing tags from other operators such as partner sales rep, sales reps, etc; and displaying tags in the "recently added by me" section. | Mobile |
INC-160485 | 655297 | Trailing "/" added to public links for SSO use | Links generated using pyWorkLinkWithLabel were not working with SSO due to not having a trailing "/" on the URL. This has been corrected by adding code to append the "/" if the public link url doesn't end with it. | Mobile |
INC-161214 | 640893 | Push notification of shape-created child case opens correct case | In a scenario with two cases, CaseA and its child case, CaseB, when CaseB was created from CaseA with a standard shape and a push notification was sent right after creation, the "Custom message" notification received on a mobile device opened CaseA instead of CaseB. If CaseB was created as a standalone case, the push notification opened it properly. This was traced to an edge case where the Primary.pzInsKey was empty because the child case was not available in database when the push notification payload was created by push shape, leading to the CaseID retrieved by getInstanceHandleFromPage to fetch the parent Case ID instead. This has been resolved by modifying the process to get the pzInsKey from the step page. | Mobile |
INC-161398 | 639855 | DataSync SynchronizationResponseStreamer logging enhancements | The PegaRULES log contained "Response page does not match request, will generate failure response" errors even though no functional impact was observed. In order to enhance troubleshooting, additional DEBUG logs have been to DataSyncHandler, SynchronizationResponseStreamer is now logged on INFO level and contains more detail, and the error message has been modified to "Cannot prepare continuation response because offline package was stale. Will generate reset schedule response." to be more informative. | Mobile |
INC-164429 | 633222 | Map address control works in read only view | The pyTrackingMap control was not showing position when used in read-only mode. This was traced to a missed use case, and was caused by the property handle being considered in order to get the value of the current address, but in the case of read-only the property handle was empty and the address field was considered. To resolve this, in case of a read-only track map, the addressproperty value will be considered instead of the property handle. | Mobile |
INC-164947 | 639862 | Handling added for missing div when opening work object | In mobile offline app, opening a work object in a specific scenario for the second time resulted in an endless busy indicator. It was not possible to navigate away, and the app had to be closed and reopened to continue. Investigation showed that some app sections had an action that tried to load a harness section where one specific div was missing, and this has been resolved by updating reloadSectionOSCOHandler to handle the missing div in the failure callback. Additionally a console.error() will appear for the missing section. | Mobile |
INC-165779 | 641975 | SQL query handling updated for mobile | When the check box in mobile channel "Disclose application size when users log in for the first time" was enabled it produced the error "There was a problem getting a list: SQLState: Message: ERROR: relation "pr_data_full_sync_stats" does not exist". Investigation showed that all SQL queries passed to getDb().executeRDB(...) method were using the SQL table directly, ignoring any customizations to table mapping or database prefixes. This has been resolved by replacing the table name with a class reference ("Class: Pega-OfflineFullSyncSizeStatistics") so that table mapping can replace the reference with a proper table name and proper database prefix. | Mobile |
INC-166048 | 659534 | Navigation icons added for use in offline mobile | When using an offline mobile app, clicking on an image / link on the home page for navigation resulted in the error “Resource missing. See client logs.” This was traced to a missed use case that resulted in some icons not being available in the package, and has been corrected by including the following: webwb/py-menu-toggle.png webwb/pzgrid_downarrow.png webwb/pymenuleftarrow.png webwb/pymenurightarrow.png webwb/pymodal_mask_img.png webwb/py-grid-sort-down.svg |
Mobile |
INC-167388 | 651309 | Values treated as strings for offline data transform concatenate | When using a Data Transform to construct a URL using multiple properties that contain values with a leading or trailing "0", the "0" was trimmed when the corresponding mobile JS code was generated using pega.process.expression.getValue("pyWorkPage.PlanData.SegmentID", "pyWorkPage.PlanData") . This was traced to the offline property type assuming that any numbers-only string should be treated as a number, so the data transform concatenate was converting “0001” to 1. To resolve this, the value will be treated as a string when being evaluated in an offline data transform. | Mobile |
INC-167794 | 645035 | Offline ExpressionEvaluator documentation updated | When working offline, issues may been seen due to the == operator in JavaScript returning true if any 'false' value, e.g. "0", empty string, or "false" is used for comparison, leading to the expression false == "" to return as true. While a solution is in process, the documentation for the Offline ExpressionEvaluator has been updated to reflect this use case may create unexpected behavior in an offline data transform, and outlines the workaround of not using words like "Yes", "No", "false", "true" or 1 0 values. | Mobile |
INC-168290 INC-171951 INC-181126 |
663428 667124 663307 |
Signature Accept callback fires correctly in offline app | Clicking on the Accept button in the Pega mobile signature control was not properly calling the necessary pega.ui.signature.acceptSignatureCallback method. This has been resolved by adding code for the Post Success and Failure callback on Signature accept in the offline app. | Mobile |
INC-168935 | 645394 | CalendarGadget updated to display events in Saudi locale | When using the pxCalendar section with the locale setting ar_SA, the calendar was correctly converted to a Saudi calendar but the events which were showing in the English version of the calendar were not showing up in in the Saudi Calendar. This was caused by the CalendarGadget page not populating properly due to the localized Hijri calendar failing a datetime check that was looking for a Gregorian calendar with time in GMT format, and has been resolved by updating the when rule "pzShouldDisplayEvent " to use the proper function for the localized calendar. | Mobile |
INC-172124 | 651293 | Improved Operator ID selection in Mobile Logs Retrieval section | Data-Admin-Operator-ID.pzOperatorsByApplication returns only the first 500 operators, which is insufficient for large-scale use. There was a workaround of turning off paging for this report definition and setting maximum records to a bigger value, but this caused potential performance issues when opening very large users list. To resolve this, an autocomplete control will now be used to select Operator ID in the Retrieve Device Logs section of Mobile Channel. When part of an operator ID is typed into this control, the first 100 best results are shown and may be selected. | Mobile |
INC-173633 | 650278 | Google Key security updated | Cross-site scripting protections have been added for Google Key. | Mobile |
INC-175000 | 657006 | Handling added for Address Map control in Microsoft Internet Explorer 11 | Microsoft Internet Explorer 11 does not support Class, async, await and arrowed functions due to not implementing the necessary EC6 features. This caused Address Map Control to not work in this browser because pypega_map_googlegis js creates a js class. To resolve this issue, alternate methods have been added for use with Microsoft Internet Explorer 11. | Mobile |
INC-175684 | 658697 | Parameterized data pages updated on record change | Changing source data page records without changing the parameter value was not updating parametrized data pages. This has been resolved by updating the system so the parametrized data page populator function is now called every time the page is accessed. | Mobile |
INC-179175 | 664047 | Mobile barcode scan sets value with correct context | After implementing a list of items where each has a unique barcode, scanning the barcodes using the mobile app worked correctly the first time but subsequent scans were setting the value on the first element of the list and missing the context of the current scan position. This has been resolved with an update to ensure the scan barcode action sets the value on the correct property when using repeating dynamic layers. | Mobile |
INC-180233 | 660578 | Offline.Rulecache UI module capacity increased | Clicking the save button on a modal window caused the application to freeze and all the buttons were disabled. This was traced to the pega.offline.rulecache UI module having a default hard limit of 500 rules. Once the hard limit was reached, the system intermittently silently refused caching additional rules depending on the amount of rules packaged or the order in which the rules are loaded to the cache. To resolve this, the system has been updated to only log a console warning once the maximum threshold is reached, allowing the application to operate normally and at the time inform about the potential impact of having too many rules in memory. | Mobile |
INC-183485 | 681360 | Updated background refresh for off-screen worklist | After update, performance impacts were seen on the field service mobile app. This was traced to Worklist refresh, and has been resolved by adding an update which will postpone the refresh when the worklist webview is in the background (not visible on the screen). | Mobile |
INC-183559 INC-188573 |
664814 671570 |
Handling added to process Actions chunks on multiple nodes | If the synching of chunks to a node was interrupted, attempting to resume the remaining chunks resulted in a processing issue if the Load Balancer passed the connection to a different node than was used for the first connection. As an example, if chunks were synched to node "A" and the restarted sync saved the remaining chunks to node "B", when all chunks were synced node "B" incorrectly determined node "A" was actually doing the work and skipped the processing of the chunks on node "B". This resulted in queued chunks being left untouched. To resolve this, the logic has been updated to allow multiple nodes to process the chunks. | Mobile |
INC-183822 | 667502 | Filename with non-ASCII characters normalized for Apple Safari upload | When using the Apple Safari browser, attaching a file name that contained Japanese characters resulted in an "attachment doesn't exist" error message when trying to open it again. This was caused by the special characters in the FileName for the Data/Query string not being encoded during the file upload, and has been resolved by updating the UploadFileToADocument activity to normalize the FileName if the Safari Browser is being used. | Mobile |
INC-183864 INC-192979 |
666187 678269 |
Updated RequestorInitialize to improve performance | After updating, initial user logins were taking an excessive amount of time. This was traced to the standard rule "RequestorInitialize", and has been resolved by updating the implementation. | Mobile |
INC-184729 | 669741 | Pinning document to space correctly generates thumbnail | When pinning a document to a space using the standard document repository tile, the resulting pin did not have an image corresponding to it. The process worked properly when pinning a document directly from the space itself. This was a missed use case and has been resolved by adding an update to set the pyImage of the document while pinning the space. | Mobile |
INC-185434 | 674053 | Page group property passed correctly for complex questions | When the Pega Survey Smart shape was used to configure a list of complex set of questions using Question rules and invoked using the Survey shape, the reload system was not passing the subscript value for the Page group property pyQuestionnaire. This caused an Invalid Reference exception and displayed an error pop up for the end user. Investigation traced this to a call to RefreshList to load a section holding pyQuestionnaire(Subscript) page content which was in place as part of a legacy fix but which has since been made unnecessary due to infrastructure changes in the DOM utilities. To resolve this, the ComplexQuestionCheckboxTemplate and pzComplexQuestionCheckBoxTemplateRowDetails section rules have been updated to remove the RefreshList action on checkbox. | Mobile |
INC-185950 | 669195 | Withdraw task notification uses correct email sender | When withdrawing a Task, the withdraw email was sent from the default email box instead of the expected Application default email box. This was traced to the 'pyTaskDeleted' (notification name for withdraw task) value not being present, which meant the system fell back to the task 'pyTaskAssigned' notification name. To resolve this, an update has been made to have pyIsPulseNotificationDefinition return true for a pyTaskDeleted notification. | Mobile |
INC-186489 | 668373 | Offline mobile app create work with parameters correctly saves work object | The CreateNewWork processor was not saving the work object after merging client and server page. This has been resolved. | Mobile |
INC-187230 | 672471 | Resolved exception during LDP processing | A ConcurrentModificationException was appearing during the processing of Large Data Pages. This has been resolved with the addition of a lock on clear method in ConcurrentReplicatedPage. | Mobile |
INC-191970 | 680396 | Updates made for reviewing online case in an offline app | After developing a Field Service Mobile app on Pega 8.3, updating and assessing the Mobile App on Pega 8.6 resulted in a flicker in the back arrow for returning to the work list. This was traced to WebViewManager not being available for online cases in offline apps, and has been resolved by adding an update that will use attachOnload/detachOnload if WebViewManager is not available. In addition, an issue with creating a space or document on mobile has been corrected by using the onViewRendered method instead of attachOnload for the offline app case. | Mobile |
INC-192159 | 691022 | Handling added for designtime page used in runtime | After creating a survey with branch Create survey cases routed to different actors, some cases missed the assignments and were left idle with no access to progress. Survey cases (with branches) having the 'when' conditions in flow connectors experienced this intermittently in production. This was traced to the use of D_pzSurveyPage data page called from the ProcessUpdate data transform while creating the survey: this data page is for design time and should not be used at runtime as it requires design time pages like CaseTypePage which will not be available at runtime. To resolve this issue for runtime, in Step 3 of pzGetAllConnectors, pyClassName will be copied from the step page and set for pzGetConnectorsForDecision. | Mobile |
Project Delivery
8.7 Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-127667 | 581851 | Documentation updated to clarify displaying property values for Declare Expressions | The documentation regarding Declare Expressions rules has been updated to clarify that declare expressions do not support displaying values of target properties in the user interface if the target property is an embedded property and if the calculation engages forward chaining. Declare expressions always display property values if the calculation uses backward chaining. During forward chaining, the system might render the UI before populating the clipboard, and the properties are not visible in the UI. To show updated values, define refresh conditions in the UI to get new values from the server when the values change. | Project Delivery |
INC-134737 | 589968 | Storage repository documentation updated | The documentation detailing different content storage options has been updated to clarify the restrictions around modifying repositories. | Project Delivery |
INC-159677 | 625174 | Upgrade reversal limitations clarified | The reversal script section on the 8.x upgrade guides has been updated to clarify the limitations in reversing upgrades. | Project Delivery |
INC-168254 | 659297 | Documentation updated for accents and special characters used in search | The "Pega search API" article has been updated to reflect that the search functionality in Pega Platform does not match accented words with unaccented. For example, searching for santé and sante will retrieve different results. In addition, Domain Specific Language (DSL) includes special characters for use when searching, for example '-', '_', '!', '@'. However, the system retrieves various results depending on the way the special characters are used in the search query. If the query contains special characters that are not escaped, the system may retrieve incorrect results. For example, not escaping the slash mark in the 25/02 query may cause the system to ignore the special character. | Project Delivery |
INC-177323 | 672420 | Search string wildcard use documentation updated | The support article for the search API has been updated to clarify the ability to use the wildcard character "*" by manually adding it to the prefix of each term in the search string. | Project Delivery |
INC-179842 | 659091 | Incorrect space removed from schema example in deployment guide | The platform upgrade guide has been updated to remove a leading space from the simple name example value in the section "Redhat JBoss EAP: Defining default schemas". The correct example is: simple name="java:/prconfig/database/databases/PegaDATA/defaultSchema" value="pegadata" |
Project Delivery |
INC-190130 | 678541 | Help information updated for using Elastic Search with Report Definition | The support article "Configuring a report definition to run against an Elasticsearch index" has been updated to clarify that the search can pass multiple values with a space in pySearchString as it does OR operation on all the fields, and that filters in the report definition will be used when executing the report directly or when calling the report in the pxRetrieveSearchData activity. https://community.pega.com/knowledgebase/articles/system-administration… |
Project Delivery |
SR-D23864 | 494586 | Support article updated for bulk flow actions | The article concerning running flow actions in bulk in the Case Management outline documentation has been updated to reflect that after the flow actions complete, the check boxes next to the selected cases will not be cleared. This allows quickly running another flow action for the same cases. | Project Delivery |
Reporting
8.7 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-145293 | 674901 | Additional diagnostic logging added for ElasticSearch startup issues | The PyIndexerState was stuck in Starting status during node initialization. This issue could occur if the filesystem became hung due to network level issue while scanning entries from /etc/mtab, resulting in a lock which was not released correctly. In order to better determine which node entry in a cluster may be responsible for the hang, an update has been made which will use a temporary virtual environment to repeat the part of the initialization phase responsible and generate additional logs for debugging. To activate this, the PegaSearch.Diagnostics logger must be set in DEBUG mode. This duplicated virtual initialization will not interrupt the normal initialization. | Reporting |
INC-153849 INC-185727 |
641925 668211 |
Updated replica management for search clusters | When using a cluster with two Universal nodes in the cluster, a daily restart process where the second node was not started until the first was fully up resulted in Search initialization failing for the first node while becoming active on the second node. This was traced to the methods used in increasing and decreasing replicas. This has been resolved by revising the handling of ElasticSearch node lifecycle and replicas through a new option "Dindex.searchNodeCount " which includes a specification for the number of expected search nodes. If this option is not present, the old method will be used. | Reporting |
INC-160190 | 658125 | Logic updated to allow page property and declare index with the same name | A Property which was in a Pagelist which in turn was embedded in a Page was not visible in the Report Browser. This was traced to the two properties sharing the same name, and was caused by a check which ensured only entries with unique names were added. In order to support this configuration, logic has been added to pzAddPropListForClass_TreeGrid such that if a page property and declare index share the same name, they are both added to the tree grid. | Reporting |
INC-162649 | 639400 | DSS added for handling missing attachments | When an S3 repository was configured as storage, some cases were not coming up in search and exception errors were seen in logs for a deleted attachment after every system restart/re-indexing of the search. Investigation showed these case objects were in the broken queue for pyFTSIncrementalIndexer due to a null pointer error encountered when indexing the attachment, and that the attachments were available in the repository but could not be read from the attachment repository during indexing. To resolve this, a new DSS setting has been added which allows selecting one of two behaviors: * Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = true : broken item is generated, but with a meaningful error message. This is the default behavior * Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = false: case is indexed, but without the problematic attachment. Error message is printed out to the logs. |
Reporting |
INC-166120 | 657055 | Parameter added to prevent name localization in Dev Studio Reports | Running the DataTableEditorReport against a customer table translated names that matched localized values, such as "Mr. Block" became "Mr. Sperren" when the locale was set to de_DE even though the property was marked as "Do not localize" in UI Controls in the report definition filter. To resolve this, the parameter 'pyskiplocalization' has been added for use in the RRFilters_logic and while displaying the select Values popup. | Reporting |
INC-168003 | 655375 | BIX Total Instance count matches manifest | The BIX Manifest file was showing a count mismatch when the BIX Manifest and Extract files were shared with downstream teams, causing data to not be accepted by the downstream application. Investigation showed this occurred for an embedded page list property in the sequence that was missed and not considered. To resolve this, a DSS has been added: when BIX/generateAllEmptySubscriptForPageList is set to true, an empty subscript will be generated for the missed properties. | Reporting |
INC-168203 | 641339 | Improved performance for data flow runs | Nodes were intermittently going into safe mode after a service registry heartbeat failure. Investigation found that some of the activities were performing an Obj-Browse that invoked report definition logic to call the database classmap. This has been resolved by modifying the implementation for the initialization and caching of list of classes in a table. | Reporting |
INC-169055 | 646671 | Performance improvements for database queries and archiving | In order to improve the performance of database queries, repetitive unnecessary database calls have been removed, archival queries have been simplified, and diagnostic metrics were added. Optional batch requestors have been added to all archival services with their own DSS settings to allow processing more cases in parallel. It is recommended to create 2 additional indexes to help with the archival process. The indexes will be on: pegadata.pr_metadata (pyisparent, pyobjclass, pyarchivestatus) INCLUDE (pyinskey); pegadata.pr_metadata (pyisparent, pyarchivestatus) INCLUDE (pyinskey); |
Reporting |
INC-170389 | 645003 | Updated authentication for report filter screen | If the report filter screen was shown first after clicking on the report link in the report browser, an error is generated for users but not for administrators. This has been resolved by registering the activity and adding a BAC registration section to the prompt filter section. | Reporting |
INC-173452 | 666441 | Quorum capability check added for external Elastic Search | The error "java.lang.UnsupportedOperationException: Not supported for client/server mode at search.indexmanager.internal.ESIndexAdminHTTP.isQuorumAvailable" was appearing when attempting to use external Elastic Search to index a dedicated index, and the queue processor was running but showed multiple broken items. This has been resolved by adding a capability check with ES_INITIALIZE_EMBEDDED_CLUSTER to prevent a quorum check with external elastic search. | Reporting |
INC-174116 | 662041 | Added reporting on descendant classes for framework | Reporting on descendant classes was not working as expected. In a report definition with "Reporting on descendant classes enabled," the framework class and implementation class each refers to two different tables that use the same names but belong to two different schemas. Investigation showed the generated SQL query was not adding the necessary UNION clause, and the records from the descendant classes were missing when running the report on framework class. This was a missed use case and has been corrected. | Reporting |
INC-174686 | 670542 | Handling updated for INativeSQLBuilder with ABAC enabled | When trying to import into a data type, the error "Exception occurred during data import pxW-886: java.lang.IllegalArgumentException: INativeSQLBuilder not initialized properly" was generated. Investigation showed that when Add or Update was chosen with ABAC enabled during import, a null pointer exception occurred while getting the class definition. This has been handled by adding an extra null condition check. | Reporting |
INC-175622 | 652280 | Screen reader announces report names | An update has been made to pyReportBrowserItem to ensure names of the reports on the report browser are read correctly. | Reporting |
INC-175797 | 662048 | Date/time filter works in source column | The date/time filter was not working in the Source column for a report definition. This was traced to "pxCreateDateTime" resolving and storing the pyDataType in the report as "DATE TIME". While "DATE TIME" is an acceptable data type it was not supported by pzGridSortPaginate and thus the filter did not work. This was a missed use case, and has been resolved by updating pzGridSortPaginate to check the dataType as both "datetime" and "date time". | Reporting |
INC-176158 | 664348 | Max number of rows setting properly honored | The setting for the maximum number of rows to retrieve was still used in a report definition even when it was disabled. This was traced to the report definition being sourced from a data page and having pagination enabled, and has been resolved by updating the handling for this use case. | Reporting |
INC-176173 INC-186782 |
654726 674952 |
Re-indexing correctly triggers old index deletion | There was no request to delete the old index when a new reindexing process was started, resulting in the new data being put into the already existing index. This was traced to a logic flaw which evaluated a condition as false under certain conditions. This 'If' condition has been fixed and simplified so the process responsible for recreating the ElasticSearch index is accessible for the scenario of reindexing an entire index without specifying include or exclude classes. | Reporting |
INC-176205 | 655938 | Secure shared link generation added to scheduled reports | When a scheduled report with a link was sent in email, clicking the link displayed an access denied message. To support this use, logic has been added to pytaskoutputprocessor in the pega-scheduledtask-reporting and pega-scheduledtask classes that will create a secure encrypted URL using the PublicLinkURL function. | Reporting |
INC-176385 | 657670 | Corrected blank lines for hidden report filter criteria | When the report browser had five filter criteria for a report and only the last two were made visible due to conditions, three blank lines were shown above the visible filters. This was traced to the Report Definition column filter showing the grid row as empty space when "Filter Not Visible in Viewer" was selected, and has been resolved by adding an inline style to PzPromptGrid. | Reporting |
INC-178663 | 659805 | Updated handling for batch indexing cancellation | Entries were seen in the pyBatchindex QP even when indexing was not in progress. Investigation showed that if an exception occurred during the cancel process, the pyStatusWork property in Log-Cluster-FTSIndex instance was not correctly updated and the value remained as CancelInProgress. As a result, SLP silently remained in the state of waiting for the completion of cancel operation. This has been resolved by updating the handling of the cancellation process to ensure the queue is correctly cleared and email notifications are sent as expected. | Reporting |
INC-178999 | 658730 | Batch indexing double submission corrected | It was possible to double-click and initiate two batch indexing requests against the same dedicated index, one immediately after the other, creating a double-sized index. This was a missed use case for refreshing the page to disable the re-index button after the first click, and has been corrected. | Reporting |
INC-181394 | 662098 | Handling added to avoid incorrect manifest count | Extracted Record counts in the manifest file were incorrect if any updates were made during the extraction process. This has been resolved by modifying the code to prevent the issue. | Reporting |
INC-181684 | 665484 | Privileges adjusted for RetrieveReportData | In recent versions of Pega, pxRetrieveReportData was secured with @baseclass AllFlows and OpenDeveloperForm privileges. However, this can interfere with setting up roles after update. To resolve this, the privilege restrictions have been removed from pxRetrieveReportData as it is already protected by ABAC/RBAC. | Reporting |
INC-182193 | 674801 | Drilldown report takes original report prompt parameters | When a report had prompt filters configured and the summary report definition was executed by giving prompt filters, drilling down to one of the records in the summary report display and then looking at the reports displayed and summarized on a column showed a mismatched count. This was found to be a very specific edge case that involved calling the "Summarize" action from a report column within a drilldown report when using a custom filter section and "prompt for filter changes" on the main report. Filters from the custom filter section were being propagated to the drilldown report when summarizing, but the drilled-down-and-summarized report itself had not been refreshed on the client side to reflect this. To resolve this, the actions have been copied from pyDefaultCustomFilterApplyCancel and applied to the Summarize selection in pzGridMenuNavRule. | Reporting |
INC-182375 | 664344 | Report filter description correctly displayed | When a function alias was used in the filter of a report definition without the caption and with some value assigned, the FilterName was not getting displayed when the report was run. This has been resolved by updating RRFilters_Logic. | Reporting |
INC-182534 | 677142 | Resolved Sub Report Filter Criteria error | After upgrade from Pega 7 to Pega 8, Sub Report filter criteria were throwing a runtime error when pyPartyFullName from Index-WorkPartyUri was used as a filter condition. Under certain conditions, Sub Report and Main report use class joins with the Index-WorkPartyUri table to get the count of cases. In this case, the error was caused by the ValidateFilterValue edit rule passing the wrong class name for the sub report class join property. This has been resolved. | Reporting |
INC-183553 | 666396 | Report Scheduler Email Notification column consistently populated | The Email Notification column in the Report Scheduler was not being populated. Analysis showed that some standard rules were being skipped for some list view reports; this has been resolved by including the pzReportBrowserScripts js file under the scripts of the pyReportBrowser harness so that it will reload the pzReportBrowserInner while unloading the model popup. | Reporting |
INC-183960 | 674381 | Cases Created through email bots remains searchable | When a case was created through Email Bot, the delete attachment link in pzCreateTriageWork activity was triggering a delete event in incremental indexing that removed the main work object. This has been resolved by adding a condition check in the SearchIncrementalIndexNotifier class for the link page, and the work object will be updated instead of deleted. | Reporting |
INC-184303 | 670404 | Runshortcut updated to allow direct invocation for reporting | After update, reports were not running as expected. This was traced to the checkbox for 'Allow direct invocation from the client or a service' not being checked in the final rule, preventing reports from working if they were called using the activity pxRunshortcut. This has been resolved by resetting the checkbox to checked. | Reporting |
INC-185565 | 667509 | Helper text added to improve close icon accessibility | After opening a report, the "X" close icon was not read by JAWS and was not functional when JAWS was running. Investigation showed that the ReportEditorHeader section did not have Helper Text for the Close icon; this has been added to improve accessibility. | Reporting |
INC-186138 | 668811 | Charts sourced from Report Definition show correct color post-update | After update, the color coding was not working on charts sourced from a report definition. This was due to the correct seriesType not being determined when function aliases were used in charts, and has been resolved by adding a condition in configuration.java to determine correct the SeriesType. | Reporting |
INC-189136 INC-197610 |
679516 688003 |
Dataflow with report definition source repaired | After update, data flows using a report definition dataset as source were throwing a null pointer exception. This was traced to previous work done around retry handling for Oracle queries where there were issues identifying the correct column types; that previous work has been reverted to resolve this null pointer exception, and further work will be done to refine the solution to the Oracle CLOB DatabaseException. | Reporting |
INC-190876 | 680191 | Handling added for corrupted direct index | A corrupted dedicated index was causing a null pointer error. Handling for this has been added by way of an additional condition check for an improper direct index with no fields in the metainfoindex document, along with a filter to check if the category is null. | Reporting |
INC-192582 | 682390 | Drilldown report opening made consistent | After launching the user portal for a hybrid app on the system and going to Reports --> Case Volume report, drilling down in the report and clicking on an entry opened it in a new tab, but going to Actions --> Refresh and performing the same action opened it in the same tab. This has been resolved by refreshing the entire pzReportDisplay section to retrigger the JS found in pzRDWinTitle which replaces the drilldown functions. | Reporting |
INC-192769 | 683001 | Removed incorrect role from accessible filter logic | When using JAWS, tabbing out from Close(X) and setting focus on the "filter by" section resulted in JAWS reading out "use arrows to move". This was not an available action, and has been resolved by removing role="listitem" from the RRFilters_logic. | Reporting |
INC-195827 | 687211 | Accessibility improved for filter pop-up buttons | JAWS was not reading the buttons on the filters pop-up for a report in report browser. This has been resolved by adding helper text for the cancel button of pzReportConfigApplyCancel and for the Search icon of the pzAvailableValues. | Reporting |
INC-197953 | 686254 | Execution class parameter handling updated for scheduled reports | The schedule was picking the wrong class to execute a report, choosing the report top class/current application class instead of the expected shortcut class mentioned in the report class of the schedule. This has been resolved by updating the parameter handling in the pzRunScheduleShortcut activity. | Reporting |
Security
8.7 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-157095 | 638808 | Enhancement added for tenant-level authentication | In a multi-tenant PDC with a few tenants that utilize their own custom SSO, a pre-authentication activity inside a tenant that should block community access was also affecting tenants that did not have that pre-auth activity set. This was a missed use case and has been resolved by adding a tenantId hash in SchemePRAuth.makeUniqueSchemeName() to create the authServiceName. | Security |
INC-162434 INC-175897 INC-200299 |
640051 655466 689561 |
LookUpList correctly executes during SSO login with model operator | After configuring SSO to create operators on fly using a model operator, a new user logging in for the very first time had their operator ID created using the model operator, but after upgrade new users logging in to the system received the error "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY @BASECLASS LOOKUPLIST". This was due to the methods used for additional security on the activity @baseclass LookUpList which allows it to only be run by authenticated users, and has been resolved. | Security |
INC-163201 | 646910 | BrowserFingerprint updated | Security improvements have been added to the browser fingerprint process. | Security |
INC-163914 | 668846 | Improved Agile Studio passivation recovery | When an Agile Studio session was passivated, the error "SECU0008 : CSRF Detected and Blocked" was seen. Reactivating the session resulted in a blank page. This was traced to the clearing of requestor level registrations added for that particular thread, and has been resolved by adding a new flag to identify if a thread is passivated along with the necessary structure for the conditionalized clearing of requestor level registrations based on this flag. | Security |
INC-164336 INC-190384 |
634151 676573 |
URL validation updated to handle custom token endpoints | While saving an authentication profile with OAuth details, validation was failing for a valid URL given in the access token endpoint and revoke token endpoint fields. This was traced to the use of the Apache URL validator, which considered some domains to be invalid. To resolve this, the urlvalidator constructor has been updated to include a custom RegexValidator for access token and refresh token URLs. | Security |
INC-166995 | 642440 | DeleteDocumentPg added to allow list | During performance testing with CSRF settings enabled, a '403 Forbidden' error was seen in the network trace when FinishAssignment called pyActivity=pyDeleteDocument on close action. This has been resolved by adding pyDeleteDocumentPg to the list of allowed activities. | Security |
INC-168837 | 646972 | CSRF token updated for use with OKTA login | An issue seen while connecting via OKTA has been resolved by updating the CSRF token validation for use with IDP initiated SSO login. | Security |
INC-169186 | 655537 | Disconnect button availability extended | A case was not refreshing when the disconnect button was selected while using the standard section for authorization grant type authentication. This was traced to a query executed to find a div with attribute pzInsHandle, but that attribute was not applicable in the user portal. To support this use, the query has been extended to be applicable for user portal (attribute data-ui-meta) and Dev Studio landing page. | Security |
INC-169310 | 649714 | Cache check added for SQL queries | When performing load testing, a high number of gets were seen for some SQL Queries. In order to improve performance, a check has been added in GlobalTrustStoreCacheImpl.java to assess whether the cache has been initialized or not. | Security |
INC-170423 | 648985 | Added catch for SAML WebSSO duplicate key exception | After logging in from SSO, closing the Pega window and opening it again resulted in the error "Unable to process the SAML WebSSO request : Violation of PRIMARY KEY constraint. Cannot insert duplicate key in object." This has been resolved by updating the session index handling and adding a catch for the duplicate key exception. | Security |
INC-170671 | 645236 | Encryption key handling updated for update activities | The platform update activity generated the message "FATAL ERROR: Found exception running import: Unable to import file because the security token included in the request is invalid." Investigation traced this to the generation of the CDK occurring within a commit, which completed the transaction early. This has been resolved by updating the handling for the CDK key during BLOB encryption call. | Security |
INC-171875 | 653892 | Skip restored for browser request CSRF token | Many SECU0008 alerts were seen in the production logs. This was the result of a CSRF token check on requests without pyActivity or pyStream, and has been resolved by restoring a conditional skip of the check as those other browser requests do not contain a CSRF token. | Security |
INC-172874 | 654366 | AccessGroup timeout restores session on relogin | When using Platform Authentication AuthService with "Use AccessGroup Timeout", a timed-out user who logged back in saw all open rule tabs were lost and any changes to checked out rule were not saved. Investigation showed that the URL for the redirected login screen did not have a slash at the end of the path of the app alias, causing it to not maintain a cookie path and instead start a new session on login. This has been resolved by adding the missing slash after the app alias in both the Ajax response and SecurityUtils to avoid creating a new session with a new requestor when logging in again after timeout. | Security |
INC-173294 | 650237 | Mobile "Forgot Password" supports circumstanced rule | An enhancement has been added to support a circumstanced rule for the "Forgot Password" flow on mobile. | Security |
INC-173886 INC-174321 INC-175058 INC-175706 INC-179188 INC-181812 INC-194287 |
664142 664239 660933 659526 661954 667197 681065 |
SSLContext created using protocol from REST connector rule form | After upgrading to IBM websphere v9.0.5.6 or higher, API calls Like REST, Connect-HTTP etc were failing to connect to endpoints using TLSv1.2. Investigation showed that although the connector was configured to send TLSv1.2, the ClientHello handshake was triggered for TLSv1.3. Because the SSLContext was created with highest version supported by protocol in the WAS container, this has been resolved by modifying the code to create SSLContext based on the the protocol selected in the REST connector rule form. Additionally, please note that the Connect-HTTP connector has been deprecated and the Connect-REST capabilities in the platform should be used instead. | Security |
INC-177812 INC-179761 |
656861 653099 |
Basic Access Control (BAC) now available in production level 2+ | An enhancement has been added to enable the Basic Access Control (BAC) feature for production levels 2 or greater. This is a change from being available previously only in levels 4 and 5, and will facilitate diagnosing access control issues earlier in the development process. | Security |
INC-178834 | 660425 | RDA support added for Citrix XenApp | Robot Runtime was not working in a Citrix XenApp environment when using the JWT token generated by the D_pxRoboticJWTToken data page to identify the user. This has been resolved by updating the scope of the datapage D_pxRoboticJWTToken from node level to requestor, which will allow the user information in the JWT token to be passed to the routing service and support the use of RDA in Citrix environments. | Security |
INC-179360 | 662179 | Check added for allowed editing with CSRF | After enabling CSRF, it was not possible to edit a data table used to define ACL rules due to security preventing the adding/editing of rows and user group entitlements. This has been resolved by using browser FingerPrint validation to check whether an activity is in a secured list and skipping validation for allowed activities. | Security |
INC-180594 | 670957 | Filtering added for DisableDormantOperators | When running the Disable Dormant Operators agent, many operators were seen which were dormant but not disabled. Investigation showed the activity was fetching all of the operators without filtering the deactivation state. This has been resolved by adding a filter condition in pzDisableDormantOperators to fetch only deactivate state users. | Security |
INC-183485 | 685269 | Performance improvement for offline mobile app | Performance issues on an offline mobile app were traced to an empty browser fingerprint caused by a declared variable which was not assigned a value. This has been resolved by adding a !pega.offline check for fireDeferredAsyncRequests. | Security |
INC-184804 INC-186512 |
667544 669328 |
Password security enhanced | Security and authentication have been enhanced for password handling. | Security |
INC-185251 | 674906 | Locking APIs updated to handle CDK key rotation | it was not possible to save cases for several hours following the CDK key rotation. This was traced to an exception that caused the system to attempt to acquire a lock on the CDK key instance, and normal save behavior would resume after the default sys lock time out period expired. This has been resolved by updating the system to use LockManager APIs to perform a database save with locks. | Security |
INC-185362 | 668826 | Keystore update properly revises the cache | A keystore updated with the latest certificate was not getting reflected in the runtime and the old certificate was getting picked. In a multi-node environment when the new JKS is uploaded in one node, the changes are expected to be communicated to other nodes so that the cache can be cleaned up. In this case, investigation showed that the keystore label was in uppercase and the cache entry was not correctly removed. This has been resolved by adding an update that will convert the cache key to lowercase and maintain uniformity to ensure proper cleanup. | Security |
INC-185482 INC-185514 |
670107 668029 |
Certificate expiration notice toggle correctly updates | Clicking the Configure notifications for expiring certificates toggle to switch it off was still showing the toggle as on after refresh. This has been corrected | Security |
INC-186395 | 677205 | Updating handling for for Pega-supplied operators with MFA | When a site is blocking prweb and using prweb/PRAuth for login with MFA enabled, admin user id logins failed and MFA showed the error screen for Pega-supplied users. This was due to MFA verification not being configured for Pega-supplied operators, and has been resolved by adding an Adminstrator condition to skip MFA for for Pega-supplied operators. | Security |
INC-188128 INC-189989 INC-196431 |
671829 675572 684886 |
Refresh assignment checks updated | Additional privilege checks have been added to refresh assignment. | Security |
INC-188162 | 673507 | RSA-PSS signature support added for for SAML SSO | The XML security jars have been updated to incorporate RSA-PSS signature algorithm support. | Security |
INC-188889 INC-191567 |
675580 676156 |
New application wizard security updated | Security around displaying and running the new application wizard has been enhanced. | Security |
INC-193561 | 680427 | Client secret made optional for JWT Bearer Grant type | After update, trying to connect a REST API using OpenAM as the provider for OAuth and using JWT Bearer as Grant type was resulting in an error indicating the request was not reaching the destination. This was traced to the client secret being designated a mandatory field when it should be optional in this case as the required key store was already configured with a JWT token profile. To resolve this, an update has been made which will make the client secret optional when the authentication scheme is JWT Bearer. In addition, the blank value caused a null pointer error when the client secret was not passed. This has been handled with a check. | Security |
INC-196414 | 684238 | OAuth token refreshed when revoked on source | When an OAuth token was used to authorize the APIs in the system, revoking the token at the source, i.e. from the Service side, did not automatically refresh the token and a logoff/logon was required before a fresh token was generated. This has been resolved by adding an update to explicitly purge revoked tokens. | Security |
INC-204897 | 695409 | Log4j file security vulnerability issue addressed | A zero-day vulnerability was identified in the Apache Log4j logging software which could potentially allow malicious actors to take control of organizational networks. Pega has immediately and thoroughly addressed this issue. More information can be found at https://docs.pega.com/security-advisory/security-advisory-apache-log4j-… . |
Security |
System Administration
8.7 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-161984 | 638858 | Web Tier busy threads released on timeout | Tomcat Web Tier Busy Threads were not being correctly released, causing stability and performance problems that included health check pings not receiving a thread to service the request so the node was marked as bad, users were quiesced, and the node replaced. Investigation showed the 'put' on the blocking queue did not time out when the queue was full and waited indefinitely, keeping the thread blocked. To resolve this, the system will use 'offer' on the blocking queue instead of 'put' to force thread release on timeout. In addition, debug logs have been added to understand when the offer (or Put) does not succeed and the state of the queue that is causing this issue; the debug logs for class com.pega.pegarules.session.internal.serverpush.RoboticAutomationImpl should be enabled only if the thread busy issue is observed and for limited time window while actively debugging. | System Administration |
INC-164794 | 637993 | Apache Commons libraries updated | Apache commons-codec has been updated to version 1.15 , and Apache commons-io has been updated to version 2.7. | System Administration |
INC-168696 | 645531 | Improved logging for column population exceptions | Improvements have been added to logging to assist in capturing issues with OptimizationMetadata that could lead to a ColumnPopulationException. | System Administration |
INC-170599 INC-180479 INC-192078 |
645222 659639 680064 |
DSS partition count setting made backward compatible | After upgrade, the DSS 'dsm/services/stream/pyTopicPartitionsCount' used to limit the number of partitions was no longer working and instead used the default value of 20. This has been corrected and made backwards compatible. | System Administration |
INC-171314 INC-174694 INC-187628 |
656864 650781 670754 |
Check added to ensure read locks are released | Read locks were not being properly released if a thread was holding a read lock and the system encountered an issue such as an out of memory condition. To resolve this, an update has been made to DeclarativePageDefinitionCacheImpl which will check whether a thread holds any read lock before trying to acquire a write lock, and if so release all the read locks held by that thread. | System Administration |
INC-172675 INC-185322 INC-186898 |
649455 668321 670313 |
Configuration added for extending queue processor timeout | Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds. | System Administration |
INC-173162 | 650795 | Certificate match will use Subject Distinguished Name | Signature verification was failing due to the system not finding the matching root certificate for the chain. The root certificate was in the trust store, but the system found a different certificate first and that other certificate (an intermediate certificate) was not considered a valid certificate for validating the whole certificate chain. This was traced to filtering on the Issuer Distinguished Name (DN) instead of the Subject DN and was due to intermediate certificates potentially having the same Issuer as a root certificate (e.g. if that root certificate was used to create the intermediate certificate). To resolve this, an update has been made to check the Subject DN instead of Issuer DN. | System Administration |
INC-173663 | 651302 | Resolved Push Node Daily Information exception | The "Push Nodes Info Daily" agent was generating an exception on each of the nodes. This has been resolved by enhancing the PegaAESRemote code to handle the exception and get the node info locally, then push it to the console when it is not able to get it via the cluster management API. | System Administration |
INC-174296 | 650756 | Delayed JS/DF initialization failures will trigger alert | In order to ensure better cluster monitoring, a PEGA0102 alert has been added for job registration failure that will be triggered if there are startup issues. The logging will include the JOB_NAME for improved troubleshooting. | System Administration |
INC-174298 | 650259 | Instance count logic updated | A performance issue was seen during upgrade that resembled an upgrade hang. This was caused by a combination of incorrect logic in DDLGenerator.getInstanceCountForClass() around counting instances of 'core' classes and all of the site history-data- tables being mapped to the same table that had 1.4+ billion rows. This behavior has been addressed with more correct query logic while performing instance counts. In addition, instance count will be supressed during command line invocations (prpcUtils, platform upgrade). | System Administration |
INC-174567 INC-175197 |
651121 651114 |
Permissions added to handle Openshift installer image | When running the install process on an Openshift test cluster, the process failed with a permissions error while attempting to download the postgresql-42.2.12.jar. This has been resolved by ensuring the root group can write to the distribution files. | System Administration |
INC-174612 | 659248 | Queue Processor threads explicitly cleared before new interaction | Queue Processor was not clearing already evaluated freshness caches before running an activity, potentially causing a stale data page to be processed. This has been resolved by explicitly clearing the thread on a new interaction by invoking ((IPRThread) thread).clearOnNewInteraction. | System Administration |
INC-174625 | 655242 | Admin Studio will consider cluster protocol when returning listener status | When using a few nodes in standalone mode for BIX extract combined with server nodes using Hazelcast, opening the admin studio pages with service discovery caused an error to be thrown. This was traced to the system writing an entry to pr_sys_statusnodes table as an embedded node whenever a BIX extract was triggered, causing those standalone nodes to be incorrectly considered by the listener landing page. This has been resolved by configuring the system to either return the local member when the cluster protocol is standalone or to return all Hazelcast members if the cluster protocol is Hazelcast. | System Administration |
INC-175205 | 652531 | Agent restart made more resilient | During a timeout outage, agents intermittently encountered a NoClassDefFound error and were disabled. After the database connection was restored, the agents were not automatically restarting. This has been resolved by making the code more resilient to errors; agent will be restarted when a temporary issue is detected, and the restart will be immune to most exceptions. | System Administration |
INC-177512 | 657015 | Hazelcast packages expanded for Java9+ with kubernetes | Hazelcast warnings were seen in cluster logs when Hazelcast was run in embedded mode or c/s mode on a java modular environment i.e. java 9+ which noted that performance and functional impact issues may result if certain internal modules of java are not given reflection access. This update provides the necessary access to some additional java internal modules/packages per the Hazelcast recommendation. | System Administration |
INC-177993 | 658726 | Schema packaging updated for better backwards compatibility | After installing a hotfix, attempting to install another download which contained the same hotfix as a dependent resulted in the notification that schema changes were required and the message "ALTER TABLE pegadata.pr_archival_class_dependency ADD CONSTRAINT pr_archival_class_de_1812_PK PRIMARY KEY ("pzinskey")" was generated. Because the dependency already existed, attempting to install the hotfix failed until the constraint was manually removed from the database. Investigation showed this was caused by a difference in how schema was being generated for newer hotfixes vs older versions of Pega, and has been resolved by updating the schema packager and fixing the single col primary keys for Pega version 8.3 and lower. | System Administration |
INC-178002 | 663770 | Restore point handling updated for absent pzpvstream column | While executing the “get restore point” action for rollback, a PZPVSTREAMerror error occurred with the message "(util.HistoryCollectorDataModel) WARN|Rest|SystemManagement|v2|restorepoint - History collection for the table will be slow because it does not have all of the required columns". This was a missed use case for Robotics Automation not having a pzpvstream column for one of the tables; this has been corrected with a check to validate for pzpvstream column so the system will not seek history records if the pzpvstream column is not present. | System Administration |
INC-181921 | 666932 | Date normalization enforced for reference time | A job which was scheduled to run weekly once on Monday at 8AM CET was running a second time at 9AM CET. Investigation showed the original recurrence pattern implementation was normalizing the reference time only at construction; this has been resolved by forcing the date normalization on each reference time update. | System Administration |
INC-181941 | 664808 | Handling added for using virtual network interface for Stream Services startup | After update, the restart of any node failed with the error "Unable to create DSM service DATA-DECISION-SERVICE-STREAMSERVER DEFAULT". This has been resolved by adding support for allowing stream service to start on the virtual network interface in cases where it was explicitly configured via the "cluster/hazelcast/interface". | System Administration |
INC-188065 | 671403 | Catch added for corrupted alert configuration | On creation of a queue processor rule, the alert ID was not present in the logs due to a missing alert configuration page. After this action, the server was not accessible and could not be started. This has been resolved by catching the exception if the alert configuration is malformed or missing. | System Administration |
INC-189781 | 677816 | Database Transaction Log update overflow resolved | When automatic.resume=false was encountered during an update, cleaning up the existing codeset from previous updates ended up filling up the database transaction logs and caused the update to fail. This has been resolved by updating the process of clearing the codeset so it doesn't overflow the transaction log. | System Administration |
INC-190070 INC-193153 INC-201338 |
676643 686293 690896 |
Restored local blocking queue cache | After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message. | System Administration |
INC-192979 | 679041 | Cache support added for Runtime Context | System performance has been improved by adding cache support for System-Runtime-Context management. | System Administration |
INC-196415 | 686313 | Performance improvements for revalidate and save | In order to improve performance when working with very large numbers of class definitions, an update has been made to optimize the revalidate and save process by avoiding looking up all classes on the system instead using ClassDefinition for existence and checking ancestor data to ensure class is a Rule- or Data- descendant. | System Administration |
INC-196447 | 684644 | Enhancements added for external Kafka Stream Service | To ensure data privacy when using multi-tenant Stream Service hosted on a single Kafka cluster, access will be authorized based on ACLs when a tenant sends direct requests to Kafka. In addition, all Kafka resources (topics and consumer groups) are now able to contain a prefix naming convention which can be used for tenants. This is handled through using a <env name="services/stream/name/pattern" value="{tenant.name}-{environment}-{stream.name}"/> prconfig setting to set the stream name pattern. For example, if the tenant.name is resolved into "companyname", environment into "prod1", and the stream dataset name is pyFTSIncrementalIndexer, then the Topic name created on the external Kafka will be companyname-prod1-pyFTSIncrementalIndexer. | System Administration |
INC-196842 | 683766 | APIs updated for sending large attachments with MSGraph | Sending mail using MSGraph was failing with the exception "Error during http request" when attachments were greater than 3MB. This was traced to changes made by Microsoft in the Graph API implementation which caused it to throw a runtime exception instead of the expected 413 status code and relevant message for the attachment size. To resolve this, an update has been made to ensure that any attachment larger than 3MB is sent via the Microsoft Outlook API. | System Administration |
User Experience
8.7 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-155406 | 638706 | Clipboard security updated | Security has been enhanced for clipboard properties by restricting registration for readonly properties. | User Experience |
INC-157367 INC-160805 INC-165277 INC-167747 INC-187082 INC-191933 INC-193861 INC-199156 |
637948 640854 645168 649658 668973 684576 683114 689742 |
PDF generation corrected | Issues with PDF generation have been resolved by upgrading the PD4ML libraries to version 4.0.9fx5. | User Experience |
INC-157448 | 638925 | Latitude and longitude populated for CreateWork history | After enabling geo location in the casetype rule, when the case was created using the Create menu option from either Dev studio or Manager portal the Latitude and longitude values were set on the pxRequestor page and were available in the Case Audit history in the Map control. When the same case was created using CreateWork action configured on a button, it did not log the latitude and longitude values in the case Audit history. Investigation showed this was caused by a 'when' condition in the AddWorkHistory activity which checks the requestor page for latitude value and which had a null value when a createWork action was used to create the case. To correct this, the template metadata of the form will be populated with latitude and longitude values from pxRequestor page to be used in the latitude and longitude hidden fields. | User Experience |
INC-160839 | 643470 | Session timer corrected | Configuring pxsessiontimer in the Portal header to log users off after 30 minutes was not working as expected: users were still logged in the next day or after keeping the session idle for more than 30 minutes. After waking up the system, it was possible to search clicking on the search results resulted in being logged out. This was traced to the ShowLogoffTimer activity not being correctly registered, and has been resolved. | User Experience |
INC-161480 | 629627 | Confirmation button works on dirty alert | The "Ok" button on the discard changes alert was not working. This has been corrected. | User Experience |
INC-161937 INC-169012 INC-178658 |
640264 651257 657388 |
VMWare workspace One Mobile support added | Support has been added for the VMWare workspace One Mobile app by updating the BrowserUtilsRuntime file to add the necessary user agent. | User Experience |
INC-162426 | 638771 | Regex handling updated for Rich Text Editor spellcheck | When using the Rich Text Editor and performing a spell check, the spell checker was adding additional CSS to the property. This was traced to the presence of a unicode newline character causing the existing regex to fail to strip the style tags. To resolve this, regex handling for the unicode newline character in the style tag has been added. | User Experience |
INC-163198 | 637798 | Performance improvements for research path interaction | Research path interaction driver composite loading was taking an excessive amount of time due to RULE-HTML-SECTION @BASECLASS ERRORLIST being called multiple times. This has been resolved by changing the ErrorList Section to guard the getMessagesMapByEntryHandle API call with a condition "if (ClipboardPage.getMessageCountAll > 0)". | User Experience |
INC-163544 | 639301 | Accessibility corrected for Cosmos user portal left navigation panel | It was not possible to see the focused control label in the left pane of the Cosmos user portal because it was not expanding when its control received focus from tabbing. Investigation showed the class acting as a polyfill for :focus-within was applied only on the observed element when using Microsoft Explorer 11, and this has been resolved by updating the CSS selectors and ensuring the class is applied to every parent element down the DOM tree. | User Experience |
INC-163644 | 652968 | Error message handling added for nested page lists | When a multiselect referring pagelist(x).pagelist2() had an error message, the error was repeated for all pagelist(y).pagelist2() in the UI. This has been resolved by adding error handling for nested page lists by using registerErrorMessages for multiselect errors. | User Experience |
INC-164012 | 640039 | Source edit with formatting resumes process automatically | When opening a paragraph rule and clicking on Actions > checkout out to branch, the rule refreshed and the modal never appeared to allow the selection of a branch on the current application. This was an inadvertent side effect of work done to resume the event queue if it was paused when applying styles, and has been resolved by modifying the work so it resumes the action sequence only when source mode is initialized in the Rich Text Editor. | User Experience |
INC-164641 | 649391 | Table header aria label updated | In a PegaWAI enabled application with the NVDA screen reader, a table header column which had filtering enabled was read as "Column Name Enter to Filter" on the first focus, but the filter operation did not work on hitting enter. When focus was moved to the second tab, the filter worked as expected. This was traced to an incorrect aria-label in the table header description, and has been resolved. | User Experience |
INC-164775 | 681239 | Web page generation security updated | Cross-site scripting protections have been enhanced around web page generation. | User Experience |
INC-164924 | 639022 | Serbia added to country codes list | The CountryCode for Serbia (SRB) has been added to the existing country codes. | User Experience |
INC-164979 | 650155 | Column values displayed in modify filter of grid | Column values were not displaying in the modify filter after cancelling the ‘due date apply filter’ condition in grid -Go to My Work -> Work Queue -Apply filter condition for Program and Country/region columns. This was traced to the pysymbolic date value being posted after selecting and before applying the filter, and has been resolved. | User Experience |
INC-165964 | 656814 | Harness context set for modal dialog on interaction portal | An AddDelete refresh condition on a page list property was not triggering a ReloadSection as expected. This was a special use case in the interaction portal where a modal dialog was opened but the harness context was not set properly, and has been resolved by ensuring the harness context is correct. | User Experience |
INC-165992 INC-173760 |
657691 658069 |
Table Filter save uses correct harness | After creating a new view for table and then relaunching the portal or switching between tabs, the created views were not visible. Investigation showed that the views were saved under the incorrect pycaseworker harness on initial load, causing them to not be visible when returning from the switch and using the correct pyCWPortalContent harness. This has been resolved with the addition of the new parameter innerHarnessName to get the harness name when creating a personalization instance. | User Experience |
INC-166322 | 640272 | Previously collapsed item in hierarchy list retains status | The last collapsed item in the hierarchy list was expanding while trying to expand and select a new item. This was traced to the submit request for the previous request being sent while clicking on the next item, and has been resolved by adding a flag so that if the ModalAction is "JUMP" the system will not expand the collapsed nodes. | User Experience |
INC-166444 | 642114 | FlexModalTemplate Modal window size consistent | The FlexModalTemplate modal window size was changing on second click. This was a missed use case for dirty dialog CSS implementation, and has been resolved by moving the CSS necessary into the isDirtyDialogOpen if condition. | User Experience |
INC-166706 | 647474 | Handling added for Rich Text Editor base tag in email | Clicking on an email interaction case from the worklist was not opening the case. This was traced to a base tag present in Rich Text Editor content which impacted security protections, and handling has been added to remove this tag. | User Experience |
INC-167611 | 652468 | Business users can move dashboard widgets on production portal pages | Business users were not able to use "Edit dashboard" to move dashboard widgets in production portal pages. This was a missed use case of using an operator with different security level, and has been resolved by using the control pzUserDashboardIncludeScript instead of including pzpega_dashboard script directly in the UserPortal harness. | User Experience |
INC-167704 | 671630 | Email timing updated to ensure content captured | Outbound email replies constructed using a pyReply section were intermittently blank if the 'Send' button was clicked immediately after adding text. This was traced to the blur not happening immediately on click of the submit button, and has been resolved by introducing window.blurDelay to ensure the data is captured. The delay time is configurable, and by default is set to 200ms. | User Experience |
INC-167871 INC-180108 |
666297 667352 |
Desktop browser java render error corrected | Attempting to open Clipboard, schedule a report, or perform any activity which generated in a pop-up resulted in a blank screen and browser errors indicating "Uncaught TypeError: (…) is not a function 2. Uncaught TypeError: cannot set property '...' of undefined". This has been resolved by adding a semicolon to the last line of pzpega_desktop_automation_support_js. | User Experience |
INC-168414 INC-176971 INC-179752 |
641036 658300 659880 |
Web Mashup works from nested iframe | Web Mashup was failing with the error "Browser cookies must be enabled for PRPC Internet Application Composer to function" when it was configured within a nested iframe setup. This has been resolved by adding a cookie check and the appropriate handling for this usecase. | User Experience |
INC-168695 | 643017 | String conversion logic updated for toFixed function | The toFixed function of pzpega_ui_formatNumber.js was incorrectly converting a string while formatting the value. This potentially caused the UI to hang until manually refreshed. To resolve this, the logic has been updated to convert the string to a number before calling toFixed(). | User Experience |
INC-169203 | 646097 | Robotics Desktop Automation correctly runs on subsequent tabs | When using Customer Service (CRM) to call Robotics Desktop Automation (RDA) from a data page, closing the first interaction tab after the RDA automation was completed resulted in the automation not being triggered for the second tab. If the first tab was not closed, the automation on the second worked as expected. Investigation showed the attachOnUnload was unregistering the client actions for all the open tabs and the attachOnLoad was not being called on reload. This has been resolved by updating attachOnLoad so it is now called with InvokeOnReload as 'true' to register client action for the tab in focus. | User Experience |
INC-169545 | 649519 | Localization updated for decimal slider | When using the Indonesian locale, selecting the range on a slider which allowed selection of a decimal / double value that was then displayed in another textbox caused the value to increase incrementally and the slider always showed the end max. Investigation showed that this was caused by the handling of the comma decimal separator used in Indonesia, and has been resolved by updating the handling to ensure the slider value is converted to the respective locale. | User Experience |
INC-169796 | 649263 | Null check added for pyModes setting | The column filtering function was not working after update from Pega 8.1 to Pega 8.5. This was traced to pyModes being set as null for page group properties, and has been resolved by adding a null check before adding the type to avoid getting an improper result from the Formatter Rule-Utility-Function. | User Experience |
INC-169866 | 653548 | View content type updated to FIELD | After update table grids were not visible in the UI for some operators while other operators with the same access group were able to see the same table with the result rows. Investigation showed that the personalized view stored in 8.1.x did not have a content type set, causing all of the columns to be hidden after upgrade to 8.4+ due to the personal view not matching with the design time view. To resolve this, the content type has been updated to FIELD for views. | User Experience |
INC-170258 | 645043 | Removed unneeded query parameter in UI | When using an Ajax container without a dynamic container, a refresh harness / section event call related to pyBlockUnregisteredRequests was not being properly registered, resulting in a 403 error and the message "Unregistered request encountered ..". This was traced to a "pyDataTransform=" query parameter that was present in the PZPEGA_UI_MICRODC file, and the parameter has been removed to resolve this issue. | User Experience |
INC-170918 | 653216 | DateTime property handling revised for future date with daylight savings time | A DateTime property was changing each time the local action refreshed. Investigation showed this was a missed use case related to recent work to correct an issue with a 1 day discrepancy for non-template DateTime. The previous update to use the default time zone when generating markup in non-template for the date property while the datetime property uses the server time zone has been further refined to handle formatting the date time when the year is greater than 2037 and combined with daylight savings time. This will be resolved by setting the correct date before returning the moment object if the year is greater than 2037 for the date time control using display mode as date. | User Experience |
INC-171121 | 648130 | Filter popup persists correctly | When the Apply filter option was selected for a table configured with a page list property as source, the filter popup appeared on the screen but disappeared after 3 to 4 seconds. This has been resolved by enabling the stretch for tabs option in the layout group. | User Experience |
INC-171352 INC-175322 |
653691 658650 |
Focus set correctly on the modal window in theme-Cosmos | In theme-Cosmos with touch enabled, clicking on a button to open a modal window set the focus on the background instead of in the modal window, forcing tabbing through the full page to reach the modal window. This was traced to the templates not using the pzModalCancel control which has the necessary container_close for the modal dialog close icon, and has been resolved by adding a check to set the focus correctly. | User Experience |
INC-171663 | 655245 | MashUp dynamic parameters article updated | The documentation for MashUp best practices has been updated to clarify that dynamic parameters sent from the client side using "pega.web.api.setAuthenticationParameters" API will be sent as part of the query parameters and won't be part of the encrypted hash as this hash is generated on the server end while generating the mashup code in the mashup channel. | User Experience |
INC-172178 | 655021 | TransID updated to trim spaces | While preparing newTransID from a response, special characters slipped into "newTransID" param value and generated an error. This has been resolved by updating the system to trim spaces from newTransID. | User Experience |
INC-172314 | 650493 | File selection dynamic layout added for Cosmos | The Cosmos Files & Documents widget for managing content displayed the application's configured content sourcing repository, but the screen did not allow actually selecting a file from the repository. No browse option was available, and the submit button generated an error to select a file for upload. This was traced to a missing dynamic layout with file selection for Cosmos, and has been resolved. | User Experience |
INC-172483 | 651710 | Filtering updated for UI markup | Filtering has been added to the UI code to preserve the browser display appearance but remove inappropriate or potentially insecure markup. | User Experience |
INC-172521 | 651553 | Email template content visible in user application | An issue was seen with email templates functionality where the body content given during the email template creation was not visible when the template was used in the application by an end user. This was a missed use case for recent security updates, and has been resolved. | User Experience |
INC-173238 | 656504 | Restored missing API call for icon navigation | After logging in and searching for a bond, navigating to the home page without clearing the search string from the bond screen resulted in a pop-up warning to remove unsaved changes. Clicking on OK and then attempting to click on the list index number available below the table resulted in an error. Investigation showed pzCTkn was missing for the API calls triggered by clicking on the icon; this has been resolved by updating the pega_yui_connection.js file. | User Experience |
INC-173345 | 655038 | Check added for empty geolocation values | Latency issues were traced to Geolocation-related errors in the log files. To improve performance, changes have been added to check for empty pyLatitude and pyLongitude before adding in the postdata of an async request. | User Experience |
INC-173382 | 653442 | Security update for previews | Security updates have been made around the sanitizing of preview streams. | User Experience |
INC-173944 | 660180 | Cancel button on embedded GridRow cancels single action | When a modal Flow Action contained a Table with the Row operations configured as Master-detail and the Detail flow action was specified, if a validation error defined in a Validation rule (i.e. other than required field error) occurred while entering details for one of the rows and the Cancel button for that row was clicked, the entire action was cancelled and the modal window was closed without saving anything. This has been resolved by updating the system to prevent the modal closure if a row is added and then cancelled. | User Experience |
INC-174020 | 650891 | Performance improved for Directed Web Access (DWA) | Slowness when using a Directed Web Access (DWA) link has been resolved by refining the code of the PZPEGA_UI_DOC_EVENTSCONDITIONSCHAINING script to improve performance. | User Experience |
INC-174144 | 651772 | Scenario testing records upload attachment click in Cosmos | Scenario testing was not recording the click to upload the attachment in the Cosmos UI. Investigation showed this was caused by the attach icon in the CaseRelatedContent section in Work- class not having the test ID generated as expected. This has been corrected. | User Experience |
INC-174921 | 652322 | Client Side required validation applied to dropdown Date field | The mandatory validation on submit of the screenflow screen was not being triggered even though 'Required' was configured on the Date field. This was traced to the validation being applied to a hidden field when the date time control is configured in dropdown mode, and has been resolved by adding a condition for validating this configuration. | User Experience |
INC-175394 | 661455 | Date Time format corrected for Chinese locale | The DateTime input field displayed the error message "not a valid date/time value" for the Chinese locale when the time zone source configuration was set as "CET". This has been resolved by setting the moment object's locale to the operator locale while converting the date time values to the operator time zone. | User Experience |
INC-175892 | 651962 | Updated logic for Spinner API used in DateTime control | When selecting 11, 22, 33, 44 in minutes in the DateTime picker, 11 was rounded off to 10, 22 was rounded off to 20, 33 was rounded off to 30, etc. This was due to the match and increment behavior in the UI Spinner Js API used by the DateTime control, and has been resolved by modifying the logic used to calculate the nextIndex in the keydownHandler API under ui_spinner.js . | User Experience |
INC-175990 | 652089 | Browser check added to ensure on-click event trigger | Clicking Submit from the screen after opening the case from the worklist did not trigger the click event action when using Microsoft Internet Explorer 11. This was due to a change in that browser, and has been resolved by adding a check. | User Experience |
INC-176113 | 661468 | Duplicate messages removed from hover over smart info | If a particular mandatory field was not selected and saved, scrolling over any help text bubble in that screen caused the error messages to pop up multiple times. This was an issue with the recreation of error tables on hover over smart info and has been corrected. | User Experience |
INC-176403 | 653575 | Security updated for buttons | Cross-site scripting protections have been updated for Button controls. | User Experience |
INC-176734 | 655177 | Invalid manual time value stops progress and displays error | When an invalid time was manually entered, eg. 11, the system previously remained in an error state until the time was corrected. Post-update, the current time of the user's session / browser was populated into the time field when an invalid time was entered. Although the error still displayed, the current time was saved and the user could continue. This has been resolved by adding a condition to show the entered time value and not continue if the entered time value is invalid. | User Experience |
INC-176742 | 657070 | DX API JSON response maintains special characters | When processing a Pega workflow with external UI through the DX API, entering some value with special characters like "(" and saving the case resulted in "(" being replaced with junk characters that were displayed on the UI when the case details were sent back from Pega. This was traced to special chars not being supported in the validation error message when displayed on c11n system, and has been resolved by consuming the 'message' value in the error object instead of localizedValue. | User Experience |
INC-177104 | 666334 | Resolved-by field reflects queue processor close | When a case was resolved by the queue processor, for example when the SLA ended and a case was automatically Resolved-Withdrawn by the system, the "Resolved by" field was blank. This was caused by the pyOperatorInfo control looking for the system account user data in the application users pool, and has been resolved by updating the control to display the localizable "System" name in this scenario. | User Experience |
INC-177263 | 655829 | isFutureDate edit validation fires correctly | The date value entered was not getting converted to the user-specific time zone and resulted in an incorrect value for validation when using isFutureDate. This has been resolved by adding an update which will convert the date value to the specific time zone before comparing it with the current date. | User Experience |
INC-177852 | 658653 | Added UI handling for error message on Delegated data table | It was not possible to navigate in the UI if there were error messages shown on properties in a delegated data table until that column was filled with a value. To resolve this, an update has been made to prevent reload or save on scroll. | User Experience |
INC-178116 | 660565 | Article on configuring display options for a harness updated | The documentation around the load behavior of a harness has been updated to reflect that the initialization settings only apply when using the harness as a landing page from the channel config. Applications that use Cosmos React do not use harnesses for landing pages. You can modify Cosmos React landing pages only in App Studio. | User Experience |
INC-178417 | 670114 | Flag reset added for grid with 'Expand When' | A grid using an 'Expand When' condition worked as expected when the condition was true, but once expanded the grid did not collapse if the expand condition was changed to false even if a section/harness refresh was performed. This has been resolved by adding an update which will reset the flag when the result of 'Expand When' is false. | User Experience |
INC-178639 | 658054 | Improved accessibility for Autocomplete Role | Accessibility issues with Autocomplete Role have been resolved by adding role = "combobox" for autocomplete in template mode. | User Experience |
INC-179378 | 661173 | Repeating Layout renders correctly after update | Repeating dynamic layout was not working properly after update. This was caused by a missing active class, and was traced to changes made in the pzpega_ui_layoutgroup function where reload happens on close of a modal dialog. To resolve this, a safe check has been added to setInActiveLayout in layoutgroup.js. | User Experience |
INC-179478 | 662927 | Handling updated for progressive load on scroll in repeating dynamic layers | When using progressive load on scroll on a repeating dynamic layout with a bar graph control, the bar which was loaded earlier was being removed during scrolling and only the current page's bar graph was displayed. This was traced to the page load and refresh handling in repeating dynamic layers, and has been resolved by modifying the logic to use a partial-refresh when appropriate. | User Experience |
INC-179664 | 661109 | Child Case comments pop-up opens as expected | Comments on the header level were opening correctly, but the comments pop-up for the child case tab was not. This has been resolved by adding a safe check for the eventTarget.closest method. | User Experience |
INC-179683 INC-187039 |
664452 678865 |
Handling added for decoding file names containing umlauts | Two issues were seen with file names that contained an umlaut: When sending file with an umlaut in the name via PegaCHAT, the error "Failed to load resource: the server responded with a status of 404 (404)" appeared on the Client side and a preview was generated. On the Agent side, the message was sent but attempting to open it resulted in an error that the file did not exist. This was traced to the unescape javascript API returning the wrong decoded values if the encoded value of an umlaut character was sent, and has been resolved by adding a safe check to avoid a malformed URI. Second, an image was not displayed in the Rich Text Editor if the image name contained the ä or Ä character in it. Investigation showed the activity parameters were being changed when it was invoked from the script. If the file name sent was "aysnÄ1626292145235.png" it was encoded to "aysn%C3%841626292145235.png" as expected, but when the parameter was passed to the Activity the value further changed to "aysn%C3%83%C2%841626292145235.png", causing the file open failure because the names did not match. To resolve this, code has been added which will correctly decode the encoded values of umlaut characters. |
User Experience |
INC-179883 | 661616 | Pega reference tags persist | Cross-site scripting protections have been updated to allow Pega reference tags. | User Experience |
INC-180275 | 666456 | Collaboration control hidden if data type is delegated | When collaborating using a customized CaseManager portal with some delegated data types, the admin user refreshing the Data Type view changed the collaborator's view from the portal to show the Data Type tabs, allowing the second person to open rules (properties, Data Pages, etc) and see the configuration even though they could not make any changes. This has been resolved by updating pzDataTypeDelegated to display the collaboration control only if pzDelegation is false. | User Experience |
INC-180322 | 670118 | Cosmos collapsible summary panel works with hidden tabs | The collapsible summary panel in Cosmos was not working correctly in combination with hidden tabs. This was due to the active tab index being created from the "data-lg-child-id" value which has a constant value for each tab and did not account for some tabs being hidden. To resolve this, the process for finding the "active" tab index is now based on the actual index instead of on the "data-lg-child-id" attribute. | User Experience |
INC-180482 | 661513 | Browser compatibility update for setActivityAction | After update, the Parameter Configuration popup was blank when using Microsoft Internet Explorer. This was traced to security updates that utilized the SafeURL.prototype.setActivityAction containing the startsWith API which is not supported by Internet Explorer. To resolve this, startsWith has been replaced with indexOf for cross-browser compatibility. | User Experience |
INC-180712 | 664784 | Improved accessibility for utility pane | Accessibility issues with Autocomplete Role have been resolved by adding role = "combobox" for autocomplete in template mode. | User Experience |
INC-181089 INC-181089 |
667655 673460 |
Corrected modal focus on assignment open | After opening an assignment and using keyboard navigation, the focus was not set on the first focusable element as expected. Hitting "TAB" set focus to the second focusable element. This was traced to previous work done on focusing elements under the modal, and this has been resolved by removing the "document.activeElement.blur()" as it is no longer needed. | User Experience |
INC-181158 | 663161 | Currency control method signature updated | Saving a section with a hierarchal table that used a Currency Control resulted in the message "ERROR String locale = controlRuntimeUtilities.getCurrency(".Currency", tools);" This was traced to the handling of decimal and text type fields in the Currency Control, and has been resolved by updating the method signature. | User Experience |
INC-181253 | 668723 | Context check added for Review Harness | Clicking a worklink from email opened the work object in a new window, but after approving the assignment and clicking on refresh a harness fail error was seen. The process worked as expected when launched from Designer Studio. This was traced to an 'undefined' error which occurred when the process of getting the strkey from the DCSPA context failed, and has been resolved by adding a null check for getDCSPAContext in the pz-cosmos-ui-portal.js file. | User Experience |
INC-181389 | 668678 | Unused class reference removed from CaseActionArea | The rule Work-.pyCaseActionArea in Theme-Cosmos was logging error messages related to "clipboard.InvalidParameterException: Class not defined in dictionary: PegaMKT-Work" when opened in Dev Studio. This was traced to a reference to the section "pyCaseActionArea" which was not present by default in PegaMKT-Work, and has been resolved by recreating the section "pyCaseActionArea" to remove the unused class reference. | User Experience |
INC-181453 | 669285 | Text errors corrected for Pega Knowledge portal editing tools | The Pega Knowledge portal had two errors in the content creation menu: the word "Title" was not translated in the "add a link" pop-up, and there was a typo in the word "paragraph" in the text editor item format drop down menu. These have been corrected. | User Experience |
INC-181534 | 663520 | Information added for ckeditor plugin availability | Documentation for adding external plugins to the rich text editor has been updated with additional information regarding available plugins for ckeditor. | User Experience |
INC-182724 | 677844 | Added empty space handling for tab labels | After upgrade from Pega 6 to Pega 8, tab names were not displaying when rules were opened in Designer Studio. This was traced to empty space in the label which caused the Tab name to show as empty, and has been resolved by updating pzpega_ui_dynamiccontainer to use the trim method to check whether the label is empty or not . | User Experience |
INC-182726 | 677530 | CORS DSS settings corrected for Constellation | After moving to the new HIPPA edition, the developer work area in Constellation appeared as blank under Channel-Portal-Landing Pages. This was traced to a DSS setting issue when using cross-origin resource sharing (CORS), and has been resolved. | User Experience |
INC-183163 | 676252 | Optimized table search updated | Search functionality that can be enabled from tables after selecting the "Optimize" checkbox was not working correctly. This was traced to a potential issue getting the search parameter passed into the activity the section uses, and has been resolved by updating the system to get the element from pega.ctx.dom when pyFlowActionHTML div does not exist. | User Experience |
INC-183712 | 674132 | IndexOf updated to remove extra bracket | When trying to open a section rule, content was not loading if values were derived using a report with column containing a function. This occurred when the section rule included a table referencing the report where one of the section table cells had its Property value set to the function. To resolve this, indexof has been updated to not include closing > as the HTML returned from the server now includes an attribute on that tag. | User Experience |
INC-183995 | 673789 | Corrected accessibility for action menu button | When using JAWS with Google Chrome or NVDA with Microsoft Edge, the action menu button label was announced twice, as 'Case Action Menu button' and 'Action Menu button', and it required two tab key presses to set focus on the Action menu button from the Follow button. This has been resolved by removing the role type as component/widget and keeping the label as "case wide actions" so that after the focus from the icons, the focus is correctly set on the action buttons. | User Experience |
INC-184104 | 682356 | Cosmos Report Browser list updates during current session | The Cosmos Report Browser list section was using a cached list of reports that did not update to reflect created or deleted reports until after logout and new login. This has been resolved by adding the pzInvalidateRBDataPages activity for harness initialization to update the reports list during the current session. | User Experience |
INC-184109 | 671195 | Handling updated for customDateTime formatting | When a feature date was entered, for example as 2021/07/29 12:00:00 AM, changing any other property caused the time to be off by 4 hours and display as 2021/07/28 08:00:00 PM. Investigation showed this was caused by the parameters being passed in an incorrect order while calling pega.ui.Formatter.formatDateTime() in combination with customTimeZone, and has been resolved. | User Experience |
INC-184311 INC-184443 |
667270 668437 |
Time value handling updated for IW locale | The error -"0undefined/0undefinedundefinedundefinedundefinedundefined is not valid time of day value" appeared when using the 'IW' operator locale and the time field was changed. This was traced to a missed condition check for the IW locale while preparing the selected time value from the dateTimeFormatString, and has been resolved. | User Experience |
INC-184419 | 669619 | Checks added to prevent EditingMode null value | When trying to open a section rule in developer portal in Pega Cloud, "Error" was displayed instead of the section details. Investigation showed the pyEditingMode property was present but did not have a value, and this has been resolved by adding checks to the UpgradeSequoiaGrid activity to ensure the pyEditingMode of "" does not invoke a data transform of that name. | User Experience |
INC-185122 | 670401 | Able to create View in Cosmos React | After creating a Cosmos react application and adding casetype, it was not possible to configure the view from the step in App Studio or Dev Studio or to create a section from Dev Studio. This was traced to the componentslist not finding some necessary components, and has been corrected. | User Experience |
INC-185563 | 670848 | "Manage content" dialog box tab index is consistent | The tab ordering for the "Manage content" (document upload) dialog box was not consistent. This has been resolved by updating pzModalTemplate to list the submit, cancel, etc, buttons in a consistent order. | User Experience |
INC-185782 | 674523 | Tab Names correctly displayed in Ajax Container | After configuring Action Set with an Ajax container to open a harness and then configuring the same harness name for multiple action items, the first open happened as expected but the following action items were not opening properly and were still pointing to the old tab instead of showing the new tab names. This was traced to actionMetadata.Name not having the correct value, and has been resolved by explicitly updating the tabName value in the "Display" action with the needed actionMetadata.Name. | User Experience |
INC-185847 | 669526 | Handling added for disabling weekends when no weekends are available | A browser exception was generated while selecting the option “Disable weekends”. This was traced to a malformed array of weekends in a scenario where the Data-Admin-Calendar instance had all business days checked (i.e., no weekends). To resolve this, DatePickerAssembly and pzGenerateDatePicker have been updated to handle the case when there are no weekends available in the Data-Admin-Calendar instance. | User Experience |
INC-186466 | 670292 | Style selector workaround added for Internet Explorer 11 | When using UI-Kit 15.0.1 with Microsoft Internet Explorer 11, the responsive behavior of the left navigator was not working as expected, it was not possible to Customize/Style the File Path control completely, and the AutoComplete control and Date Time Controls had a blue border on hover/focus. This was traced to the styles not being correctly selected because they contained the selector "focus-within" which is not supported in this browser. This has been resolved by adding focus-within separately so Internet Explorer will ignore the selector. | User Experience |
INC-187378 | 670550 | Scrolling fixed for moving rows in tables | After update from Pega 8.4 to Pega 8.6, attempting to move a row on the top to bottom was not working correctly due to the scroll being limited. Moving an item higher worked as expected. Investigation showed if the container format of the grid was None a condition was setting the scroll to top even if it was being scrolled down, and this has been resolved by getting the gridOffsetTop value from the closest table tag and increasing the setInterval time to achieve smooth scroll behavior. | User Experience |
INC-188001 | 672775 | Security enhanced for SmartTips | Cross-site scripting protections have been updated for SmartTips. | User Experience |
INC-188299 INC-193947 |
677731 684137 |
Focus corrected for dynamic layout in mobile | When any new item was added to a repeating dynamic layout in mobile or if the grid one of the items was expanded, the entire UI refreshed and the focus moved to the top. This has been resolved by adding a check for isMobileFullScreen. | User Experience |
INC-188605 | 673597 | Missing property added for permission check on CanPerformAssignment Go button | With the introduction of the pzCanPerformAssignment When Rule to control the visibility of the Go button in the Assignment lists, the context for checks is now within the D_CaseAssigments Data Page. One of the checks executed by this When Rule is performed by the function @pzCanPerformAssignment() which calls an API to examine the RARO configuration for the Assignment Class in question. When the Read permission is controlled by the canPerform Access When Rule, a function is called which relies on the presence of the .pxRefObjectClass to check the privileges; In the new D_CaseAssignments Data Page the .pxRefObjectClass was not mapped during construction and as such the value for workClass passed to the API method was "" meaning the relevant checks were not executed. This has been resolved by adding the missing property pxRefObjectClass that is needed for execution permission checking. | User Experience |
INC-189047 | 674759 | Session timeout adjusted for use with Apple Safari | A configured browser session logout timer was not working with the Apple Safari browser. This was traced to browser-specific handling for self.location.href and has been resolved by adjusting the logic and moving it inside a setTimeout to improve cross-browser compatibility. | User Experience |
INC-189214 | 675959 | Improved backwards compatibility for sendmail notifications | After upgrading from Pega 7 to Pega 8, sendmail notifications were not working for email addresses that included the to-form "Lastname, Firstname'. This was caused by a difference in handling within the activity "@baseclass.SendEmailNotification", and has been resolved by shifting the reliance to InternetAddress.parse for validating and splitting email addresses in order to handle special characters, commas, and semi colons in display name. | User Experience |
INC-189935 | 684504 | Drag and Drop works as expected on mobile | After opening a case assignment on a mobile device and selecting an option on the correct fields to make the drag and drop section visible, dragging the object vertically the caused the entire page to scroll up and down. Horizontal dragging worked as expected. This has been corrected. | User Experience |
INC-190847 | 676677 | Preview link aligned under item | The preview option was not showing below the link control configured to open the case, but instead was displayed elsewhere on the page. This was traced to changes made in Google Chrome v.93+, and has been corrected by changing the perspective to none instead of 0 so the link is displayed in the expected location. | User Experience |
INC-190901 | 683841 | Corrected datetime placeholder handling | On desktop, date fields values selected were displayed in placeholder color instead of the black color. Date fields placeholders were not displayed in the offline mobile app. Before the refresh section call happened, the date selected color for the datetime input was black since the placeholder class was being removed from the span tag after selecting the date. After the refresh section calls, the Span tag which was generated for date time control was being appended with the placeholder class, which was an incorrect behavior. To resolve this, a check has been added which will only add the placeholder class if the datetime inputvalue is empty. | User Experience |
INC-191533 | 676103 | Lifecycle widget added to Cosmos | On opening the Cosmos portal and trying to modify the dashboard widgets, the UI-Kit widgets were visible and and those section's CSS styles were not getting added. This has been resolved by adding a lifecycle widget on Cosmos. | User Experience |
INC-191674 | 681576 | Cosmos Stakeholders menu updated to prevent loss of work party change | The Stakeholders menu for adding work parties to cases available in Cosmos Utility panel was not saving work party changes as expected when the case was also open for performing assignments. When the assignment was completed, the work parties were reset to the values present when the case was opened. The list of stakeholders is saved as a property in work page. When an assignment is opened there are two threads, and any stakeholder added is then added only in the first thread. Because it was not added in the second thread (acprimary Ajax container - processing assignment) the stakeholder addition was lost due to the second thread overriding the first thread. To resolve this, if an assignment is being processed while trying to open the stakeholders model, an additional modal will be displayed with the following options: - resign from opening stakeholders modal and continue process assignment or, - resign from processing assignment (all unsaved changes will be discarded) and open stakeholders modal |
User Experience |
INC-191725 | 678862 | "Close" icon shown in App Studio preview | The 'Close" button was missing from the Marketing portal/CDH studio Content -> Actions details page. This was due to previous work that added a visibility condition to the close icon, and has been resolved by updating the condition to show the close icon in preview in App Studio. | User Experience |
INC-191985 | 686764 | Description field handling updated for delegated table | A delegated table could not be accessed for work if the description was added in multiple lines. Investigation showed that during execution, the multiple lines of description caused the data transform pzManageDataModel to not be able to find the pyRuleName. This has been resolved by escaping the newline character so the description is treated as a single line during execution. | User Experience |
INC-193650 | 687904 | Corrected focus for changing optimized table density | After selecting an option on the density filter button inside of an optimized table, the focus was set to the top of the browser rather than remaining inside the table layout. This has been resolved. | User Experience |
INC-193775 | 686645 | Action Sets in Sections working as expected | When adding actions to a table, the action sets were not always saved correctly. Sometimes actions from one actions set were moved to a new action set without any event, which seemed to occur when there were multiple actions defined for each action set. This was traced to the open of the table property panel in the activity Embed-Harness-SectionBody-Grid.pzGridActionSets activity. This activity sets data for the action set display, including setting a “pyKeyCode” property. The “pyKeyCode” property is not set correctly in certain scenarios, causing the selected action/behavior to not be saved correctly. This has been resolved by changing the local param-pzGridActionSets: TempKeyCode to string. | User Experience |
INC-195363 | 690043 | Accessibility improvements for Cosmos | After update, some UI changes were seen in Cosmos that could impact accessibility. These included the left panel for the portal can be folded, but the arrow/Icon to fold this pane shows only when you hover over with it with the mouse; on the same portal, Submit and Cancel buttons are displayed at the bottom of the screen as a sticky menu over the long form instead of the previous behavior of being at the bottom of the form; and that the sticky menu partially covered the bottom of the form's functionality. These have been resolved by updating the selectors to make the collapsible icon accessible using keyboard and by removing the sticky behavior for the case action area buttons in the perform harness. | User Experience |
INC-195583 | 684840 | Flow action modal pop-up closes after submit | On clicking Submit button on the modal window, the post action was successfully completed but the buttons froze and the modal window did not close. This was traced to a missing condition in the if loop to handle the needed flow action logic, and has been corrected. | User Experience |
INC-197243 | 687412 | Locking up+E975dated for EmailLink | After clicking a work link from email and opening the work object in a new window, opening the work object in the perform harness and performing a browser refresh by way of Actions -> Refresh resulted in a locking error when trying to submit the case. This was traced to the handling in the Ajax container: when an assignment is opened from the todo list, it will open it in primary Ajax container. If the complete web page was refreshed, the contents in the Ajax container were cleared and loaded back to previous state. While doing this process the lock of the Work Object was released and not added back. In order to achieve the lock after the refresh, the doUIAction activity has been updated to lock the case when the case is opened and reloaded. | User Experience |
INC-198021 | 686630 | Corrected blank areas on maximized view | A blank section was displayed when maximizing the reply screen. Investigation showed that when the editor was inside a positioned container with overflow hidden and the editor had a scrollbar with its body height greater than the document, the scrollIntoView would scroll to grey spaces which were originally hidden by overflow. This has been resolved by commenting out scrollintoview, since it is not necessary and scroll position/cursor will be retained without it. | User Experience |
INC-198484 | 689007 | Tab error message localized | Localization has been added for the message that is shown at a tab when a section in tabbed layout contains errors. | User Experience |