Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.6.3 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-178650 | 673549 | Cross-site scripting protections updated | Cross-site scripting protections have been updated around the DisplayAttachment function. | Case Management |
INC-183947 | 673734 | 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-184816 | 674434 | 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-186036 | 685371 | Field Level Audit updated to handle hierarchical properties | Field Audit was not working for the first change of the data selected/provided for a field. The audit was only reflected after the second change was made. When the property involved a series of hierarchies, for example pageprop.pagelist(1).pageprop, the FLA objects will initially use deferred saves and the generated pzinskeys will be added to a savedFLAMap object. However, when the last pageprop was not eligible to save, all the deferred saves of earlier records were cancelled but the inskeys were not removed from the savedFLAMap object. Because of this, the parent FLA records were assumed to have been saved already when those saves were actually deferred. This was a missed use case for hierarchical properties, and has been resolved by adding an update to remove the inskeys from the savedFLAMap object so that in the subsequent property change the audit's FLA records for the parent properties (pageprop.pagelist(1)) will be saved again. | Case Management |
INC-189186 | 673661 | Updated error handling in AddAttachmentFromMail | Attachments links were still showing in case attachments even if the files were not uploaded to the repository. This was traced to the system not skipping code related to attaching files when there were errors on the attachment page, and has been resolved by updating AddAttachmentFromMail to perform this skip. | Case Management |
INC-189622 | 682099 | 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 INC-196218 |
682000 684849 |
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 |
679537 682883 |
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-196961 | 693474 | Iteration method updated for SetRequiredSkillsCountColumn | After update, database utilization spiked and did not drop. Investigation traced this to the use of Local.totalCount in pzSetRequiredSkillsCountColumn, which caused the iteration loop to run more times than necessary. This has been resolved by replacing Local.totalCount with Local.iterationsCount in the iteration. | Case Management |
INC-198514 | 688851 | 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-198807 | 689770 | Bulk Transfer Audit displays correct label | After Bulk Transferring an assignment, the audit showed the flow action rule name instead of the label. This has been addressed by creating a field value for the name 'pyTransferAssignment' and updating the param.actionLabel to refer to the localized value. | Case Management |
INC-201410 | 695844 | Updated handling for Navigation Breadcrumb DisplayFlag | On hitting 'previous' the old breadcrumb was visible instead of the expected flowaction. This was a missed edge case for having 'when' conditions before a subprocess shape, and has been resolved by having the pyDisplayFlag be considered conditionally so that even when the display flag for the top level subprocess is false, if the current flow action / assignment belongs to the subprocess, the system will show the breadcrumb for the same. | Case Management |
INC-201981 | 697634 | Added check for StageHistory page | After update, the pyDisplayStages section was not visible in pyCaseMainInner due to the 'when' condition pxHasStages not being satisfied. This was traced to a customization for the pyStartCase flow in one of the case types which resulted in a blank pxStageHistory page being set under pyWorkPage, and has been resolved by adding a 'when' condition to check whether pxStageHistory page exists so the step will only execute if the pxStageHistory page is present. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.6.3
Conversational Channels
8.6.3 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-154254 | 674944 | 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-181797 | 679337 | FocusSection timeout updated | When being redirected from an email notification to a Pulse comment, the case opened but the Pulse post was not highlighted as expected. This was a purely cosmetic issue, and has been resolved. | Conversational Channels |
INC-183960 | 674382 | Cases Created through email bots remain 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. | Conversational Channels |
INC-189819 | 676595 | 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 686133 |
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 | 675956 | 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-191159 | 682363 | 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 | 679066 | 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-192935 | 698696 | Inline images retrieved for deferred-load email | When emails were defer-loaded, inline images with code entered into the non-cache section in pyExtractHtmlFromAttachment were not being displayed. This has been resolved by passing the current page parameter to pyExtractHTMLFromAttachment to convey the pyID. | Conversational Channels |
INC-192935 INC-203463 |
688462 694165 |
Added deferred loading for email cases | When there were a significant number of email interactions on an email case, delays were seen when loading the case in the UI. Investigation traced this to a high number of database calls along with the BLOBs also being open. To improve performance, the new rule pyDeferLoadEmails has been added which toggles the UI and loads emails faster. In addition, the button label has been modified to read "View all emails" in place of "Show all" while defer load is enabled. | Conversational Channels |
INC-193727 | 679112 | 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 | 682184 | 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-197116 | 684956 | 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 |
INC-199354 | 696719 | Corrected pulse comments rendering in mobile | When using mobile, clicking the number on the Pulse comments section was not responding and conversations inside a comment were not visible. This has been resolved by updating pypega.social.js and pypega.social.css so the section renders correctly. | Conversational Channels |
INC-200148 | 693149 | Added JSoup handling for older Microsoft Outlook versions | Logging indicated that some emails were generating the error "pyextractlatestreplyfromhtml is resulting in java.lang.IllegalArgumentException: Object must not be null." This occurred when using an older version of Microsoft Outlook, and has been resolved by adding a check before removing the JSoup doc object. | Conversational Channels |
INC-200237 | 693180 | Added API for Pega Call Team websocket reconnect | When a call came in, the operator was not able to pick it up due to the popup only containing a reconnect section. This has been resolved by adding the disconnectAndReconnect API which will be used by Pega Call Team if the websocket reconnect limit exceeds 5. | Conversational Channels |
Data Integration
8.6.3 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-168253 | 652546 | 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-170458 | 677862 | 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-173434 | 672675 | 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-176138 | 668938 | Decision table query performance improvements | Work done previously to improve performance by preventing the decision rule from being treated as a custom rule has been further augmented by preventing the standard Declarative Rules from being treated as Custom Rules while building the Declarative Cache. | Data Integration |
INC-183728 | 665132 | 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-185614 | 684848 | 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-185758 | 678456 | Resolved database contention during high-performance case creation | During extreme load on the application, updating the latest pyLastReservedID column of 1 row in the data.pc_data_uniqueid table for a particular case type could cause database contention. This was a missed use case for recent ID generation optimization, and has been resolved by amending the MERGE statement to resolve an SQL exception sometimes seen on on Oracle and SQLServer. | Data Integration |
INC-185943 | 679139 | 1000 character limit on prconfig DSS setting removed | Previously, a limit imposed in the Data-Admin-System-Settings.ValidateKeyContent activity limited any prconfig setting to a value of 1000. As there are settings such as prconfig/alerts/parameterpage/allowedKeywords/default that could exceed the 1000 character limit, this limit has been removed. | Data Integration |
INC-186094 INC-193917 INC-199335 |
683694 683684 692623 |
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-186616 | 669062 | 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-186634 | 672150 | 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 |
675430 673784 674973 674035 690169 |
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 | 680013 | 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 | 675636 | 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-187857 | 697096 | Added debug logging and exception recovery for unexpected data object | When rules were complied in lower environment and deployed into production, they later became corrupted and system behavior changed. The error "Java generation failed: caught exception while expanding property pyGetCasePredictionsByClassName on page CurrentRecord" was generated. Investigation showed the auto-populate property pyGetCasePredictionsByClassName was attempting to get the metadata property "pzDataObjectParams": this was a string value in this scenario instead of the expected java object, and caused the exception. To resolve this, a debugger has been added which will check if the property is a java object or not. If it is not, the system will skip the processing and then display an error message with a stack trace. | Data Integration |
INC-188544 | 674456 | 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-189136 | 679517 | 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. | Data Integration |
INC-189811 | 679936 | 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-190111 INC-190111 INC-191033 |
693527 695615 684371 |
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-190380 | 678644 | 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-191673 | 679946 | "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 | 680454 | 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-192820 | 697830 | Resolved time zone logging thread contention | Contention was observed in a call stack when multiple threads were logging alerts concurrently related to time zone. This was due to the TimeZone.getTimeZone method being synchronized, and has been resolved by switching to a static instance of a JSR 310 DateTimeFormatter that it is immutable and thread safe. | Data Integration |
INC-193507 | 681749 | 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 | 683300 | 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 |
682649 686006 |
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 | 681047 | 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-194348 | 682340 | Resolved multiple copies of Pega0050 alerts | The PDC alert Pega0050 was seen multiple times for the standard pxgetoperatordetails activity, step 6.This has been fixed by removing the pagecopy and updating the data page properties. | Data Integration |
INC-194490 | 685240 | 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 | 684715 | 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 | 680969 | 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 INC-199608 |
688604 692584 |
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-196389 | 690787 | 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. | Data Integration |
INC-196415 | 686315 | 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. | Data Integration |
INC-197112 | 689259 | 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-198029 | 695563 | Check added for empty SendAs in MSGraph | When using MSGraph, logging showed the errors "Could not parse the address into InternetAddress Objects, falling back to parse with the regex" and "Unable to use the configured "Send As" email address from Records. Will fall back to 'first' recipient of incoming email." This has been resolved by adding a check for a blank SendAs field. | Data Integration |
INC-198632 | 687581 | 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 |
INC-199320 INC-201648 |
690622 696965 |
Corrected duplicate record error message | When inserting a duplicate record in a grid, the error was shown at the harness level instead of the record level. This was traced to the error messages being removed from the step page, and has been resolved by updating the system so messages will not be cleared if the same value is being set. | Data Integration |
INC-199679 | 688737 | Handling added to email encoding for ISO-8859-8-i charset | After update, cases were intermittently not getting created from inbound email and the process became stuck. This has been resolved by adding handling to replace the ISO-8859-8-i charset with ISO-8859-8 for encoding the mail content. | Data Integration |
INC-201502 | 696086 | Parser updated for value list | When attempting to process a JSON list using a File Data set that had a list attribute, the clipboard looked correct while performing the browse operation on the data set, but executing the data flow that referenced this data set resulted in the error "Expecting PageList and got String List". If this was changed to a text property, the browse operation on Data set failed but the data flow worked without any issues. and the values were copied into the text properties.This has been resolved by changing the parser for value list. | Data Integration |
INC-201991 | 692861 | Explicit connectivity close added to Queue Manager error handling | Performing a connectivity test on the MQ Connector page with an invalid queue name aborts the test connectivity but the MQ connection was not closing. This can become an issue when using IBM MQaaS (MQ as a service) where only a limited number of connections are allowed. This has been resolved by adding an explicit Queue Manager close in the error handling block. | Data Integration |
INC-202510 | 695890 | SOAP connector supports OAuth2 profile | Support has been added for using an OAuth2 profile as one of the allowed profiles for SOAP connector. | Data Integration |
INC-202743 | 697115 | Cleanup added for disabled/deleted operator passivation data444 | 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-206240 | 698248 | Custom headers work in MS Graph | Custom headers were not working for MS Graph. This was a missed use case for checking headeractualname to identify whether it is a custom header, and has been corrected. | Data Integration |
Decision Management
8.6.3 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-203994 INC-193399 |
698853 688112 |
DSS added to handle merges with lower versions of Postgres | After update, executing the batch campaign with volume constraint resulted in the second data flow DF_Wait failing with error message "ERROR: number of columns (1844) exceeds limit (1664)". This was due to the database set’s change (in 8.5) to use the database layer’s merge statement. Prior to that, the logic used "deletes and inserts". Depending on the version of Postsgres, the generated SQL statement for a merge statement is different. The “INSERT … ON CONFLICT … UPDATE” syntax is generated for Postgres 9.5+ AND when there is a PK constraint defined for the DB table. Otherwise, the complex UPSERT statement (old syntax) is generated, as was the case in this issue. This is a known issue in the Postgres server software where it mis-interprets the number of columns involved. i.e., it mistakenly counts the number of columns twice. As a result, the actual maximum columns allowed is only half of the official limit (1664). The same UPSERT statement does not cause the “exceeds limit” exception if there are 832 or fewer columns in the statement. To resolve this, an option has been provided to select between the “original logic” (deletes and inserts) and the “merge statements” logic by way of the DSS “decision/datasets/db/useMergeStatementForUpdates”. Setting “true” will use the merge statement logic, and setting “false” will use deletes and inserts. When the DSS is not defined, the default is "true" and the system will use merge statements in the form preferred by Postgres 9.5+. | Decision Management |
INC-174661 INC-201365 |
678823 691786 |
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-179879 | 664804 | Localization added to DelegateDescription | Localization was not working correctly for the description of a delegated rule due to pyDelegeteDescription being defined with a non-localized Property value. This has been resolved by localizing the property value for pyDelegeteDescription. | Decision Management |
INC-183211 | 667011 | 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-186437 | 685013 | 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-187267 | 679369 | Resolved error for custom relative dates | An error was seen when parsing the [Date Property] [is before/after] [Last/Next x days] while using a custom amount of number of days in Customer Decision Hub (CDH). This was due to the system not supporting the [Last/Next x days] feature for SSA, but only detecting this during parsing for the prefixed values for Proposition Filters and not custom values. As the parser did not realize the construct referring to the relative date was not supported, it created an SSA that caused an exception during execution. This has been resolved. | Decision Management |
INC-187520 | 677874 | 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-188309 | 684703 | 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 been resolved. | Decision Management |
INC-188882 | 679145 | DSS added for configurable asynchronous writes into DDS | 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 | 679164 | 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 | 681352 | 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 | 679607 | 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 INC-201142 INC-201340 |
680707 693114 693022 |
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 |
676361 691509 |
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-193632 | 679173 | Cassandra driver metrics exposed for performance troubleshooting | By default Cassandra driver metrics are now enabled. Metrics can be disabled by setting the dnode/disable_driver_metrics prconfig parameter. | Decision Management |
INC-193847 | 695975 | DSS added to allow masking of subjectID in alerts | In order to allow customizing whether or not a subjectID is included in alerts, a DSS has been added to conditionally mask the subjectID from being logged. To use this, set the "alerts/maskIHsubjectID" DSS in the Pega-DecisionEngine ruleset to true to hide the pySubjectID. | Decision Management |
INC-193986 | 680033 | 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 INC-201363 |
681682 692980 |
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-194405 | 680278 | Performance improvements for globally optimized strategies | After update, the GOS_NBA_TopLevel strategy was consuming a large amount of processing time related to the hashmap. This was traced to the lookup of a value in a set of Class<?> that used Object.HashCode. To improve performance, the set lookup has been removed and replaced with checking validity by the type of an object. | Decision Management |
INC-194433 INC-201337 |
679631 691607 |
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 |
682006 690736 |
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-194810 INC-201610 |
691885 691879 |
Removed services check and added warnings for simulations | Attempting to run an audience simulation resulted in the error "Running simulations is not possible, because the required services are not available. Contact your system administrator to enable the data flow and real-time data grid services". Investigation showed the @DsmServices.pxHasFunctionalNodes("DataFlow","Batch") function call contained in the 'when' rule pyUnavailableDecisionServices was returning false even if all the nodes were in the cluster and all the DSM Services were in NORMAL status. To resolve this, the services check has been disabled and the simulation run will show a warning or fail if a data flow run is queued for more than 30 secs or if there is an issue with querying the underlying metrics storage. | Decision Management |
INC-195197 | 692148 | Warnings added to prevent empty StrategyResult page | When a Proposition Filter rule refers to a When rule that has "StrategyResult" declared in Pages & Classes but no "Param.StrategyResult", a design time warning will appear to indicate that this might cause discrepancy in globally optimized strategy (GOS) execution. * The warning message for a When rule with StrategyResult in Pages & Classes but not in Parameters: When rule [WhenClass: WhenName] does not have proper mapping for [StrategyResult] page. This would result in an empty [StrategyResult] page being passed into the When rule during execution. Please go to [WhenClass: WhenName] and add [StrategyResult] in the Parameters list and configure the mapping properly on Proposition Filter rule. * The warning message when StrategyResult is not in Pages & Classes but in Parameters list: When rule [WhenClass: WhenName] declares [StrategyResult] in Parameters tab, but isn't used in the conditions. This would affect performance during execution. Please remove the parameter from When rule [WhenClass: WhenName], and remove the Parameter mapping from the corresponding Proposition Filter criteria. |
Decision Management |
INC-195346 | 682715 | Added parser retraining for intermittent email issue | An email listener was intermittently failing to pull the data from the email subject into the required property in the email triage case. Investigation showed that the pxEmailParser was excluding the first line in the incoming text for some cases, and has been resolved by adding code to retrain the email parser. | Decision Management |
INC-195387 INC-204682 |
681674 695705 |
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 | 687463 | 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-196822 | 691104 | Debugging enhancements for globally optimized strategies | When a null pointer exception was encountered during globally optimized strategies (GOS), the logging included a long chain of exceptions and the most useful information was not easily visible. To improve troubleshooting, the error message has been modified to show the actual cause of the error first. A catch has also been added to better handle any null pointer error after db.open and db.opendefault. | Decision Management |
INC-197530 | 684716 | 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 |
686236 690807 |
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 INC-201336 |
685701 691900 |
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 |
INC-200218 | 692432 | Added handling for calling truncate with external Cassandra | A JMX exception was generated when using external Cassandra. This was traced to the combination of calling truncate and using external Cassandra for DDS, and has been resolved by adding a 'do not execute' consistency check during a truncate operation when using external Cassandra. | Decision Management |
INC-201216 | 692416 | ADM group chart level working in Prediction Studio | Charts were not visible for Group level ADM in the Prediction Studio Models tab. This was traced to an unneeded filter for this version of Pega and has been resolved by withdrawing the filter. | Decision Management |
INC-201335 | 690734 | 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. | Decision Management |
INC-201362 | 693108 | Inbound scenario planner simulations updated | The Customer Decision Hub (CDH) Simulation Planner acceptance metrics have been updated to consider only one proposition per subject during calculations. The proposition being considered is always the one with rank 1 returned by the top level decision strategy. | Decision Management |
INC-202937 | 695942 | RealTimeProcessingDelay made configurable | When using interaction history summaries in Engagement Policy strategies, the check whether a particular action was sent previously was not returning any results for the customers that did have an action "Sent". These records were present in the IH Fact table but the IH Summary tables were missing these records. This has been resolved by making the realTimeProcessingDelay configurable for reading from IH in a real-time flow configurable (done as part of IH pre-aggregation). This may be useful if there can be a difference in time between machines inserting into IH which causes pre-aggregation to miss processing records. The relevant DSS is "interactionHistory/realTimeProcessingDelay", and the default is 5 seconds. This must be set before starting pre-aggregation. This is the difference between the end position and the log time. RuleSet: Pega-DecisionEngine DSS Name: interactionHistory/realTimeProcessingDelay Value: <new delay in seconds> |
Decision Management |
INC-205010 | 698490 | Updated expression string comparison | An expression defined in the proposition filter and/or When rule was evaluated differently depending on whether it was run from within Decision Strategy or run isolated in Expression Builder or a When rule. This has been resolved by updating the string comparison. | Decision Management |
INC-205378 | 698443 | Added handling for double quotes on Substrategy shapes | After update, there were compilation issues on calling substrategies from strategies using datapage.pxResults as another page. This was traced to the handling for a parameterized data page with double quotes on Substrategy shapes, and has been resolved. | Decision Management |
Low-Code Application Development
8.6.3 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-173986 | 668934 | Updated survey refresh API for switching radio buttons | After configuring a picklist with multiple options in a survey framework, it was not possible to select a radio button when toggling between radio buttons on the UI. Investigation showed the values of the radio buttons were not published to Clipboard, causing pyAnswer to be blank. After detaching the webwb_pzsurvey_ui_userscript.js the value was posted correctly and the visible WHEN was working as expected. This has been resolved by updating pzsurvey_ui_userscript to add a timeout on the refresh API call when switching between radio button options. | Low-code app development |
INC-175533 INC-182576 |
678910 677528 |
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-179769 | 671022 | 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-182152 | 667395 | 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-184800 | 685686 | 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-184860 | 676941 | New data objects correctly shown in dropdown | When a new data object was created in App Studio after a data object had already been added to a case type view in the same requestor session, the data page populating the dropdown for the type of field associated with adding the data object was not refreshed. This was traced to the page being requestor level, and has been resolved by updating the page to be thread level. | Low-code app development |
INC-185587 | 679624 | Updated password hash security | Security around password hashes has been updated. | Low-code app development |
INC-185670 | 680952 | 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-187610 | 672848 | 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-190165 | 676819 | 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 | 679444 | 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 | 679380 | 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-191567 | 676157 | New application wizard security updated | Security around displaying and running the new application wizard has been enhanced. | Low-code app development |
INC-191902 | 677413 | 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 | 677439 | 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 | 681752 | 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 | 678116 | 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 | 679211 | 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 | 679898 | 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 |
INC-196266 INC-203548 |
694838 694854 |
Performance improvements for CDH | Significant slowness was seen in Customer Decision Hub (CDH) during save-as or check-in/check-out of an offer rule. This has been resolved by passing the current parameter page to the RuleCheckOut activity in pxUpdateRecordInner so that CDH can pass a skipValidate parameter to skip the validation during checkout. | Low-code app development |
INC-198113 | 693354 | Link-Association-Follow updated | The report definition 'pyGetAssociations' was generating the error "data.internal.rd.reference.InvalidReferenceException InvalidReferenceException .pxLinkedRefTo Cannot use an unexposed property as there is no BLOB column for the class: 'Link-Association-Channel'". This has been resolved by updating pzUnfollowReview to handle Link-Association-Follow, which will prevent these log errors. | Low-code app development |
Mobile
8.6.3 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-182423 | 691800 | Pull to refresh disabled during case submission | Triggering a refresh (swipe down) on mobile while the spinning loading indicator was shown resulted in the error 'This action is not allowed' instead of being able to view the case. This has been resolved by disabling pull to refresh when there is any background network activity in progress. | Mobile |
INC-183485 | 692519 | ClientCache performance optimization | In order to improve performance for the mobile app, updates have been made to optimize the ClientCache list interations. | Mobile |
INC-185434 | 674054 | 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-187230 | 672473 | 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-189511 | 679185 | 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. | Mobile |
INC-191970 | 677464 | 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 | 691024 | 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 |
INC-194932 | 686278 | Handling updated for offlineWorkIDs map | Intermittent failures were seen when deleting attachments on Mobile. These were traced to pega.ui.DCUtils being undefined, and has been resolved by populating the offlineWorkIDs map for attachment-related actions. | Mobile |
INC-199891 | 696102 | Updated handling for parametrized data pages on offline mobile app | After update, the UI in the offline mobile app was showing .pyStandardValue and not the LookUpValue. This was caused by parametrized data pages not getting populated when used on UI components so the custom populator was not getting called, and has been corrected. | Mobile |
Project Delivery
8.6.3 Resolved Issues for Project Delivery
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-177323 | 672422 | 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-190130 | 678542 | 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. | Project Delivery |
Reporting
8.6.3 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-174116 | 662039 | 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-181684 | 665483 | 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 | 674802 | 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-182381 | 664455 | Updated dedicated index reindexing check | Attempts to reindex were not successful after a dedicated index failed with the error "Not enough active shards for index work to meet write consistency of quorum". This has been resolved by updating the system to validate the cluster state for the dedicated index name instead of the work index name when performing a dedicated index Reindex. | Reporting |
INC-182534 | 677143 | 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-184303 | 670403 | 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-185727 | 668210 | 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-186138 | 668810 | 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-190876 | 680192 | 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 | 682392 | 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 | 683002 | 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-195511 | 693220 | Check added for child join class when using ABAC | When a join was applied on a report definition and the same join class had a child class to which ABAC was applied (for some property eg., isABC), an "invalidreference" exception (isABC) was generated. This was traced to the system taking into account the child class of the join class while running the report, and has been resolved by adding a check to handle this scenario. | Reporting |
INC-195827 | 687213 | 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-197597 INC-198273 |
690014 688354 |
DSS added to control BIX extraction time properties | After upgrade from Pega 7.3 to Pega 8, downstream systems were failing to process the BIX extract manifest summary file. This was due to three columns which were introduced in Pega 7.3.1 to handle any failures during BIX incremental extraction: pxStartCommitDateTime, pxEndCommitDateTime, and pxLastSuccessFulCommitDateTime. To support better backwards compatibility, this fix introduces the below DSS to allow disabling of the new columns. BIX/disableSaveTimePropertiesInCSV BIX/disableSaveTimePropertiesInXML BIX/disableSaveTimePropertiesInDB |
Reporting |
INC-197610 | 688002 | 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-197953 | 686256 | 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 |
INC-201219 | 696611 | Updated chart button markup | Some of the buttons were incorrectly displayed while clicking "Edit Report" from the Cosmos report browser. This was due to the buttons generating markup that was used to support older browsers in pzChartButtons, and has been resolved by updating the button markup. | Reporting |
INC-204672 | 699356 | Handling updated for databse function GREATEST | When deploying Pega on Red Hat OpenShift, attempting to index data via the SRS resulted in the landing page loading and RULES indexing appears to start, but when it finally completed it showed no records. While the index operation was running log entries showed the SRS service was unavailable and that the isolation context did not exist. Investigation showed there was an exception being generated indicating "com.microsoft.sqlserver.jdbc.SQLServerException: 'greatest' is not a recognized built-in function name". Because the function GREATEST is not supported in Microsoft SQL Server 2019, an update has been made to change GREATEST into an expression like "IIF(COALESCE(column_name, 0)>value, COALESCE(column_name, 0), value)" for compatibility. | Reporting |
Robotic Process Automation
8.6.3 Resolved Issues for Robotic Process Automation
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-178834 | 660426 | 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. | Robotic Process Automation |
Security
8.6.3 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-179761 | 684676 | 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-182530 | 695761 | SAML datapages cleared before new authentication | If a previous user had not logged out or timed out when using SAML authentication, a second person using the same device/browser would end up in the first user's session after performing their own authentication. Investigation showed the second login D_SAMLAssertionDataPage was not getting refreshed with the current user login details; this has been resolved by explicitly deleting the SAML Datapages before processing a new login if the session has not timed out. | Security |
INC-183485 | 685270 | 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-185251 | 674907 | 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-186395 INC-186395 |
677206 697875 |
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-186897 | 681031 | DSS DisableAutoComplete setting honored | Setting DisableAutoComplete DSS was not working as expected. This was traced to the system not being able to read the DSS value due to timing related to database startup, and has been resolved by directing the system to read the setting in PREnvironment.java instead of from the prconfig. | Security |
INC-188127 | 678351 | Updated cache key generation for ROPC | After configuring outbound email functionality using MSGraph with OAuth 2.0, sending the emails failed consistently following passivation. Running "Test connectivity" in the Email Account data instance then seemed to restart the functionality and the automation "Create And Send Email" subsequently worked. This was traced to a missing username in the cache key generation for the Resource Owner Password Credentials (ROPC), which caused the same token to be fetched when attempting to dynamically generate different usernames, and has been resolved. | Security |
INC-188128 INC-189989 |
671828 675573 |
Refresh assignment checks updated | Additional privilege checks have been added to refresh assignment. | Security |
INC-188162 | 673508 | 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 | 675581 | New application wizard security updated | Security around displaying and running the new application wizard has been enhanced. | Security |
INC-190384 | 676574 | 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-193561 INC-201573 |
680428 694750 |
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-194865 | 695621 | Corrected report definition save-as-image option | Attempting to save a report definition as an image resulted in an access denied error stating "Browser fingerprint validation failed : A request was received with an invalid or missing browser fingerprint. The request was denied", and the user session was closed. The security SECU0017 alert is generated when a request is sent to a Pega application and the browser fingerprint is either missing or does not match the expected value. The system tries to check the type of request for every requestor ID and fetch the CSRF token, but in this case it was not matching with the token present on the requestor thread. This has been resolved by adding scripts to send the hidden input value needed. | Security |
INC-196414 | 684239 | 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-196431 | 684887 | Refresh assignment checks updated | Additional privilege checks have been added to refresh assignment. | Security |
INC-196839 | 695282 | Removed duplicate clipboard page creation | An out of memory exception occurred due to the pyInstanceInfoForUpdate clipboard page having 6.5M Embed-InstanceInfo entries. This was traced to the ClientUpdateRequestHandler.getInstanceInfoPage method continuously appending to the ClipboardProperty instanceInfoPage. This has been resolved by removing the extra creation of instance pages within the loop. | Security |
INC-200303 | 692846 | OIDC authentication service token reload updated | The exception “PRSecurityException: Invalid State Parameter received" was generated along with "Unable to execute OIDC flow : Caught exception while parsing the id token”. The issue was identified in the Keystore cache refresh strategy for the 'reload once per interaction' option. While the Refresh interval was one minute for reload once per interaction, if there was a login request/keystore request in that one minute then the refresh interval was pushed to one minute again from that timestamp. The system was also maintaining the cache refresh interval as one minute. That meant if there were continuous requests, then the refresh interval was pushed to one minute for each request. As a result, the Refresh interval was repeatedly extended until the exception occurred. To resolve this, the Refresh token will happen if there are no requests for a period of one minute, and the cache refresh interval for "Reload once per iteration" has been removed completely. | Security |
INC-200877 | 693824 | Functions supported in Authorization Service | An enhancement has been added to support operator page context evaluation with a Rule-Utility-Function during property mapping evaluation. | Security |
INC-204045 | 694323 | Signature map updated for fetching keys | MFA login worked with SAML 2.0 when the certificate was disabled but failed when the certificate was enabled in Auth Service. The error " "Signature algorithm is null" appeared. This has been resolved by updating the signature map to ignore case sensitivity while fetching keys. | Security |
INC-204897 | 696148 | 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.6.3 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-145293 | 610933 | 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. | System Administration |
INC-153849 | 641923 | 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. | System Administration |
INC-168003 | 655376 | 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. | System Administration |
INC-178002 | 663769 | 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-181941 | 664807 | 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-183485 | 681361 | 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). | System Administration |
INC-185117 | 680900 | Check added to disable offset support for older versions of Oracle | An ORA-00933 error was generated after upgrading from Pega 7.1 to Pega 8.5. This was traced to a conflict between Oracle 11g and the Pega 8.5 platform related to an OFFSET statement being added to a query for a version of Oracle that doesn't support it. The preferred solution is to upgrade Oracle to address this, but in order to support backwards compatibility a check has been added which will disable offset support in Oracle if productversion <=11. | System Administration |
INC-189781 | 677817 | Database Transaction Log update overflow resolved | When automatic.resume=false was encountered uring 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-190070 INC-193153 INC-201338 |
676644 676900 686295 690897 |
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 | 679042 | Cache support added for Runtime Context | System performance has been improved by adding cache support for System-Runtime-Context management. | System Administration |
INC-194084 | 686137 | Catch added for missing DelayedItemsDataFlowService run options | The exception "Caused by: java.lang.IllegalStateException: Loaded a work object [DelayedItemsDataFlowService] while no run config was present" was logged while initializing the DelayedItemsDataFlowService, causing a shutdown. Investigation showed this was caused by corrupted data in the database post update, where the database was missing a row in pr_data_decision_ddf_run_opts representing the run options of 'DelayedItemsDataFlowService' while the work object record was present in the database. To resolve this, an update has been made to catch exceptions generated by DataFlowService and report them as logs and alert. This will prevent the startup task from failing and stopping the process. | System Administration |
INC-196478 | 683131 | CORS policy updated for GET streams | CORS (Access-Control-Allow-Origin) support has been added to handle Stream calls during GET requests. | System Administration |
INC-202004 | 692354 | Hotfix documentation updated to point to Hotfix Manager page | The readme file attached to hotfix downloads contained an outdated reference to use "PRPC Hotfix Installer on the Update Manager landing page." This has been updated to point to the Hotfix Manager landing page. | System Administration |
User Experience
8.6.3 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-164775 | 681240 | Web page generation security updated | Cross-site scripting protections have been enhanced around web page generation. | User Experience |
INC-167704 | 671629 | 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 |
666296 667351 |
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-176113 | 661469 | 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-178417 | 670112 | 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-178831 INC-205566 |
680985 697058 |
Ensured correct context for multi-select | When using multi-select controls, there was an intermittent issue with selecting values using a mouse click. Using the tab key worked as expected. This was traced to the focus being event triggered multiple times so pega.ctx.dom returned undefined values in the second call.This has been resolved by focusing the target element before creation of capsule to ensure the context remains the same. | User Experience |
INC-180322 | 684230 | 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-182287 | 670742 | Decimal places showing correctly after update | After selecting Decimal places in the Property Panel in the section for a particular property, the decimal places were not added on tab-out at runtime. Decimal places were correctly applied if no property was specified. Investigation showed that an explicit post value call was initiated to apply the read-only formatting, but that call was suppressed by other conditions related to updating the Pega version. To resolve this, an unneeded data-auto-formatting conditional check has been removed. | User Experience |
INC-182724 | 677845 | 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 | 677531 | 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-182803 | 679725 | SearchKeyword assed to HandleInput allow list | After creating a section and placing a template grid with a button to refresh the section on click, clicking the button generated a SECU0001 alert. This was traced to gridMetadata_(uniqueID).pySearchKeyword not being registered when the property is part of a form data post request, and this has been resolved by adding pySearchKeyword to the allow list in HandleInput.java. | User Experience |
INC-182874 | 675312 | Update Language Pack for correct direct web access link localization | When a direct web access (DWA) link was generated for an external user to perform an action on an external assignment, the shared link was corrupted when used with localization on the receiving system. This was due to the JSP fragment in the correspondence not being properly translated during localization. To resolve this, please access the most recent Language Pack available from https://community.pega.com/marketplace/language-packs/pega-platform . | User Experience |
INC-183163 | 676253 | 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-183485 | 680134 | Performance improvements for mobile app refresh | After update, performance issues were seen on the mobile app with processes that required a refresh. This has been addressed by updating the process for selecting the DOM element to improve the performance. | User Experience |
INC-183530 | 669265 | Corrected logging of jars added during node startup | Logging regarding jar additions was being skipped when user-configured class path elements were added to the compile time classpath during node startup. This was an inadvertent side effect of previous work and has been resolved by adding the log statement "Skipping to add jar '%s' to compile time classpath as it was already present". | User Experience |
INC-183712 | 674133 | 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-183963 | 673444 | Corrected Close button accessibility label | The screen reader was reading the Close button as 'Add Content. This has been corrected. | User Experience |
INC-184104 | 682357 | 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 | 671193 | 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-185563 | 670846 | "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 | 675529 | 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-186072 | 677410 | Updated ClientDynamicData HTML Rule | After upgrading from Pega 7 to Pega 8, attempting to open an assignment on the staging environment showed a blank page. This was traced to the system trying to open a declare expression of "PegaComm-" class, and has been resolved by updating the pzClientDynamicData HTML Rule handling for the top level page and enabling the expression calculation checkbox in the Advanced tab of the pyCaseManger7 harness. | User Experience |
INC-186930 | 679707 | Mouse cursor remains consistent when expanding repeating grid column | After update, expanding the last column of a repeating grid changed the mouse cursor. Refreshing the portal restored the original cursor. This has been resolved by adding the last column to the disableColumn array. | User Experience |
INC-187015 | 678383 | Listener implementation updated for closing modal dialog popup | It was not possible to close the popup window in a local action when using a flow in a modal dialog action in Cosmos. This was traced to a missed use case for closing a modal dialog opened from a tertiary container, and has been resolved by updating the listener implementation in the ModalFlowTemplate. | User Experience |
INC-187617 INC-189748 |
692544 694739 |
Added API for Pega Call Team websocket reconnect | When a call came in, the operator was not able to pick it up due to the popup only containing a reconnect section. This has been resolved by adding the disconnectAndReconnect API which will be used by Pega Call Team if the websocket reconnect limit exceeds 5. | User Experience |
INC-188001 | 672777 | Security enhanced for SmartTips | Cross-site scripting protections have been updated for SmartTips. | User Experience |
INC-188029 | 691102 | Rich Text Editor will pause until instance is ready for interaction | Outbound email was intermittently appearing blank creating replies using pyReply section. This was traced to the Rich Text Editor not loading completely before the interaction, and has been resolved by adding a brief pause that will temporarily disable the Rich Text Editor until the instance is ready. | User Experience |
INC-188212 | 674105 | Localization added for FilterUILabel | Filter values were not rendered in French for French users for Case Status in all the grids. This has been resolved by updating the localization values in the pzFilterUiLabel control. | User Experience |
INC-188299 INC-193947 |
677732 684138 |
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 | 673598 | 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 | 674760 | 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 | 675960 | 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-189844 INC-198958 |
673736 691676 |
Scroll bar appears consistently | The scroll bar was not consistently appearing beside the menus containing vertical overflow. This has been resolved by setting the correct max-height on the menu all the time. | User Experience |
INC-189935 | 684505 | 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-190609 | 681325 | Added null check for routeToParent in Mashup | After update, mashup was loading in a different context. This has been resolved by adding a null check in routeToParent in webwb_pega_desktop_support. | User Experience |
INC-190708 | 688134 | Save works on Ajax container without Dynamic container | After opening a work object and making changes to a required field, pressing the save button did not give any visual indication that the save was performed. Hitting cancel generated a dirty pop up saying changes will be discarded, indicating no save was done. When an Ajax container is configured without a Dynamic Container, all the content is rendered inside a fieldset tag instead of a form tag. While performing the save, the API was looking for the form element in the document and could not find any, and the save failed. This has been resolved by updating the submitWhenFail() API to handle both fieldset and form elements in the dom. | User Experience |
INC-190847 INC-199043 |
676678 697069 |
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 | 683842 | 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-191013 | 683757 | Number fields display the $ and % signs correctly | After configuring a table with source as a page list and the fields with number control the symbol constant $ and % symbols were showing up as separate from the amounts in a cell. The $ symbol was all the way on the left of the field, and not aligned correctly with the number. The % symbol showed below the cell. This has been resolved by adding code for displaying the symbol inside the text input when the symbol alignment is configured as right. | User Experience |
INC-191160 | 685379 | Empty caption value not shown in dropdown list | An update has been made to template_dropdown to restrict an empty value from being added to the list. | User Experience |
INC-191533 | 676100 | 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 | 681577 | 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 | 678863 | "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-191785 | 680931 | Edit Validate Rule works after mobile section collapse | It was possible to collapse a section of the UI on the mobile app and then proceed to the next page without entering valid data. This has been resolved by updating the validation condition to handle the mobile sections edit validate rule correctly. | User Experience |
INC-191985 | 686765 | 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-192813 | 684736 | A setTimeout has been added before focusing the element to address the issue in Microsoft Edge, and | When a value was changed in a section where the source of the section was defined as a property, the page refreshed without any announcement and focus was disrupted. Investigation showed this happened when using paragraph control where an anchor tag was used without any Name attribute. An update has been made to explicitly set the gFocusElement property after the processAdditionalFields activity to resolve this issue. Because the Name attribute is needed to query the particular element from the DOM to focus back, there were also intermittent issues when using the Microsoft Edge browser with Windows OS even after adding Name in the paragraph control link. A setTimeout has been added before focusing the element to resolve this. | User Experience |
INC-193047 | 694049 | Added handling for nested clipboard pages | On save of sections that have items (cells) nested more than one layer deep and have either "Show menu" or "Run data transform" actions, silent errors were found in the tracer indicating "Attempting to access a rule with a bad defined-on class: Trying to open rule ... of class "Rule-Navigation", but no defined-on class (pyClassName) was specified". This was due to the pzActionShowMenu Rule-Utility-Function and pzActionRunDataTransform Rule-Utility-Function assuming the clipboard page structure was only one layer deep, and has been resolved by using findRulePageFromCurrentPage from SectionUtils.java . | User Experience |
INC-193650 | 687903 | Corrected focus for changing optimized table density | Corrected focus for changing optimized table density | User Experience |
INC-193775 | 686646 | 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-194239 | 685736 | JAWS reads characters limits in grid text area | A text area in a grid with a character limit was not reading the maximum characters and remaining characters when using JAWS. This has been resolved by adding the necessary aria attributes to the non-template text area control. | User Experience |
INC-194446 | 691354 | Mobile app validates collapsed layouts | Validation did not fire in the offline app when the fields were in collapsed layouts. This has been resolved by removing the validateHiddenFieldsInOffline flag for Offline. | User Experience |
INC-195321 | 684972 | Check added for readonly header control | After configuring an optimized grid and adding a checkbox control in the header with editable options, when the control in corresponding column was configured as Auto, the checkbox in the header was rendered as read-only. When the control in the corresponding column was configured as "Read-only always" or displayText control was used, the checkbox was rendered as editable control. This was traced to a missing check for pyEditOptions = "Read-only", and has ben resolved. | User Experience |
INC-195363 | 690044 | 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-195581 | 691843 | Control menu code minified | Minification has been turned on for control menus. | User Experience |
INC-195583 INC-199989 |
684841 692578 |
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-196002 | 684940 | Handling added for undefined GadgetOffsetState in Mashup modal windows | Following an update, the system was hanging after launching Mashup and submitting from modal window. Investigation showed that in this mashup scenario, when the modal dialog was rendered on click of a button the globally-defined pega.Mashup.GadgetOffsetState object was passed as undefined to the pega.u.d.registerModalListener API due to pega.Mashup getting reset elsewhere in the process. To resolve this, handling has been added for a modal dialog in mashup scenarios when pega.Mashup.GadgetOffsetState is undefined. | User Experience |
INC-197243 | 687413 | Locking updated 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-197358 | 695309 | Resolved finish assignment screen freeze | In some assignments of several flows, when the processing was done (finish assignment) the screen only displayed the loading logo. The only way to proceed was by refreshing the browser. The browser console showed the error "Uncaught TypeError: Cannot read properties of null (reading 'undefined') at setTargetValuesSuccess (expression_calculation_1480665478.js!!.js:1) at k". The error did not occur when using Live UI privileges. This has been resolved by updating the expression calculation. | User Experience |
INC-197410 | 690218 | Handling added for invalid numeric range | When filtering the range in number column with value as “1000000” , the validation message appeared as "1000000 : This results in an invalid numeric range". This has been resolved with an update to use Data-value to get the non-formatted value for decimal. | User Experience |
INC-197481 | 695585 | Accessibility improved for blank field errors in non-auto generated controls | When using non-auto generated controls, leaving an edit field blank causes an error message informing that the value cannot be blank. An accessibility issue was seen where this error text was not part of the field label or description, preventing it from being announced by screen readers (NVDA or JAWS) when focus is on the field. This has been corrected by adding aria-describedby in non-template textarea. | User Experience |
INC-198021 | 686632 | 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-198133 | 693111 | Data-test-id generated for table header | After adding a table to the layout and putting labels on the table headers, the data-test-ids were not displayed in the generated DOM. This was traced to an issue where the test ID was not generated for the table headers, and has been resolved by updating GenerateCellContent to add data-test-id in markup. | User Experience |
INC-198484 | 689006 | 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 |
INC-198601 | 695498 | Autocomplete value retained post refresh | After update, including an autocomplete control in the UI configured as 'on change refresh this section' resulted in the selected value getting removed from the list after being selected. Investigation showed this could happen in a customized environment if Selected Autocomplete and associated Autocomplete fields had Refresh section configured. While removing the refresh conditions resolved the condition, this has been addressed by adding handling for this use case. | User Experience |
INC-199496 | 690006 | Corrected quotation mark handling for multi select | After defining a source for multi select where the selectable list contained double quoted text, for example: Testing for "Double Quotes", the double quotes were converted to single quotes in the selection list. This caused the value Testing for "Double Quotes" to be displayed as Testing for 'Double Quotes'. This has been corrected. | User Experience |
INC-199558 | 693303 | Updated calling activities from refresh to use invokeActivity | The Refresh DX API was inconsistently throwing an index out of bound exception when using a checkbox which invokeed an activity on check to save and commit the case. This has been addressed by updating calling activities from refresh to use invokeActivity, and a try/catch has been added to capture exceptions and add a page message if the activity is not found or has an error. | User Experience |
INC-199625 | 690722 | Handling added for dropdown with duplicate option values | When load behavior used "After screen renders" and dropdown options had duplicate values, a console error was observed and the UI became frozen. This has been resolved by adding handling for scenarios where the dropdown has duplicate option values. | User Experience |
INC-199817 | 690109 | Corrected decimal handling in integer control | An integer property was accepting decimal values on screen and not throwing default integer validation errors. In addition, the place holders shown on the integer controls on the screen were decimal values. This has been resolved by restricting the decimal values for the integer control with integer property, modifying the code for restricting decimal values for integer field, and updating the code for showing the integer placeholder for integer field. | User Experience |
INC-199953 | 695419 | Updated Document-StateTracker reset | An unexpected performance issue was seen after refreshing a case. This was traced to the Document-StateTracker taking longer than expected to reset from "busy" to "none", often reaching the 70 second max timeout setting, and has been resolved by calling setNavigationDone so that the document-statetracker dom element updates back to "none" immediately. | User Experience |
INC-200952 | 691209 | Added check for page current index before refetching | When using Refresh in a table, the error "The page index "-1" specified for this RDB call is invalid; it is not zero or a positive integer" was generated. This was caused by updateFilteringState modifying the pyCurrentPageIndex value for refetching even though refetching is not required if pyCurrentPageIndex is already 1, and has been resolved by adding a check for page current index and only refetching if it does not equal 1. | User Experience |
INC-201372 | 694015 | Accessibility improvements for Cosmos Case Life Cycle | Keyboard navigation has been updated to improve accessibility for the case life cycle component. For the "Show stages with expandable steps" configuration, code has been added to hide the steps container when tabbing through the stages. For the "Show stages with steps as overlay" configuration, the "Use form navigation (by tab)" option has been enabled for every repeating dynamic layer inside the steps overlay. | User Experience |
INC-201739 | 694505 | Switch from Pega base64 utility to java.util.Base64.getEncoder | An on-premises Web Application Firewall (WAF) was interpreting the characters "%0a" in the Pega auto-generated URL as an "HTTP Response Splitting" attack. As a result communications were intercepted and a 403-error screen was shown. In addition, the characters %250A were interpreted as LF (line feed) or \n in the refreshFor hash generation. To resolve this, an update has been made to use java.util.Base64.getEncoder().encodeToString instead of the Pega base64 utility. | User Experience |
INC-201929 | 692850 | Removed incorrect field validation errors | When integer controls in a section were configured as required field, clicking on the field but not entering any value resulted in the prompt for the required field validation "Value cannot be blank", and any attempts to add a positive integer using number keypad after that resulted in the repeated validation error. This has been resolved by updating pzpega_control_textinput. | User Experience |
INC-202218 | 692877 | Input from Microsoft Windows keyboard numpad enabled | After entering a currency amount using the right side number pad keys on a Microsoft Windows keyboard, a mandatory field validation was being thrown on what appeared to be a correct input. This was due to an if condition in the keyup function that caused entries from the right side number keys to not be considered as input, and has been resolved by removing the condition from the pzpega_control_textinput file. | User Experience |
INC-206485 | 698399 | DOM Purifier updated to allow new tags | Snippets were visible after being added and published, but after editing the same content ID it was converted to a text file. This was traced to the DOM Purifier plugin removing tags which were not in default list, and has been resolved by adding the ADD_TAGS option in the DOM purifier to accept tags. | User Experience |