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.2.6 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D39264 | 518840 | Multiple files uploaded using "select file" will be handled asynchronously | In order to resolve an intermittent error when uploading multiple files using the "select file" button, each file will be uploaded asynchronously to avoid overloading the browser threshold. | Case Management |
SR-D47146 | 515648 | Pick Values modal updated for deprecated list view handling | Pick values were not displaying in the menus below Case Management-> Tools -> My Work, including "Work entered by me", "Work by workbasket", and "Work resolved by me recently". This was due to the use of deprecated list views: the pick values modal was failing to show and hide the busy indicator because the indicator now uses jQuery, but list view does not include jQuery. In order to resolve this, the equivalent Report Definition pyEnteredByMe has now been added under the navigation rule : pzProcessAndCaseRulesMainMenu. | Case Management |
SR-D48242 | 513541 | Export to Excel cell style control added for Case Management | If a column were formatted with an auto generated numeric control, a new cell style was generated for every row during the Export to Excel process. Since there is a limit on the amount of cell styles, once the number of rows in the file was greater than 64000, an error was generated. To resolve this, the system will disable the creation of a new cell style for every instance when an auto-generated numeric control is used for Export to Excel in Case Management. | Case Management |
SR-D51535 | 519475 | Enhanced discrimination for tasks in MyPega spaces | When using My Pega for spaces and tasks, using drag and drop to move many cases around quickly resulted in tasks intermittently ending up in a state where they could not be updated further and became unusable. Analysis showed that because the milliseconds part of the update time was rounded, the logic of comparing for value between 0 and 1000 failed when the comparison returned -ve value. To resolve this, the comparison has been modified to !=0 and the 'when' rule pyContinueTaskProcessing has been added as an extension along with the appropriate usage guide to restrict processing. By default, the system will consider task name, description, due date, assignee, and rank properties; if more properties are needed to evaluate, this when rule can help. | Case Management |
SR-D59482 | 521508 | Corrected generated Excel saving decimal values as text | When using RDB-List to fetch the data from the database for the clipboard and then using pxGenerateExcelFile to generate an excel file from that with a provided RFB template file, some decimal properties were stored in text format instead of numeric. This has been resolved by updating the API. | Case Management |
SR-D59504 | 524642 | Attachment drag drop searches only current Ajax context | When the Interaction for customer service was open and more than 1 task from the sidebar was open, the drag and drop zone was missing on any subsequent Task/Cases past the first. In an Ajax container scenario, getElementByID js was searching in all the containers because they were present in DOM, and it was losing context. To resolve this, the code has been updated to only search in the current context when using an Ajax container. | Case Management |
SR-D63976 | 524221 | Double decompression of Attachment BLOBs corrected | Attachment streams were being double-decompressed on download. This was traced to the GetAttachmentReference activity in which the file was opened then performing a show-html of DisplayAttachment HTML. This internally called the DisplayAttachFile activity which attempted to open the file again, resulting in a double de-compression of the attachment BLOB. This has been corrected. | Case Management |
SR-D64506 | 529335 | Improved accessibility around page landmarks | Accessibility testing revealed an issue with pages where the main landmark was contained in another landmark. This has been resolved by removing the main role in the FlowActionHTML rule. | Case Management |
SR-D65513 | 530182 | URL encryption modified for ShowAllOperators | In the control ShowAllOperators the call to pzEncryptURLActionString was introduced to encrypt URLs to avoid hijacking. The content of the URL relied on the pxRequestor.pxWorkGroup property which was resolved using pega:reference tags. This approach worked in versions below 8.x, but in higher versions the tags were not resolved at runtime and results were not displayed. To resolve this, the requestorWorkGroup will be treated as string and passed as parameter instead of using pega:reference tags. | Case Management |
SR-D72886 SR-D76291 |
543754 541014 |
Check added for Repositories before saving attachment | When creating or updating a case through email listener, the Link-Attachment defaulted the pxStorageType to 'WebStorage'. This caused an issue when using PegaS3, which needs pxStorageType 'Repository'. To resolve this, a check has been added to see if Repositories are enabled, and if they are the storageType will be set accordingly. | Case Management |
SR-D80120 | 544214 | Custom attachment category parameter passed to dropdown | Attempting to use the out-of-the-box “Attachments control” which was configured at design time to use a custom category where both the custom category and the section class were in the same work class resulted in the attachment category dropdown defaulting to “File” instead of the custom category. Investigation showed that the custom attachment category name configured on the control was missing in one of the pre-processing activities sequence. To resolve this, the activity Work-.pzInitAttachContent and the initAttachmentPage activity have been updated to pass the custom attachment category parameter. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.2.6
Conversational Channels
8.2.6 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D49537 | 521112 | Embedded Pega Chat error resolved | A cross-origin frame error was shown when the Pega Chat Window was embedded in a non-Pega page. Investigation traced the issue to code that was accessing the top/parent window, and which failed when used in a mashup scenario. This has been resolved with a try/catch block to wrap the code and handle scenarios where the | Conversational Channels |
SR-D49782 | 518048 | Extension point added for ClearInteraction to support custom interactions | In order to support clearing a custom interaction page after clicking the "Reset" button on preview console, an extension point has been added to pyClearInteraction. | Conversational Channels |
SR-D57865 | 520963 | Added property check for outbound templated email reply | When a template was used for the first time for outbound correspondence, email was generated correctly. If the same template was used as the content for reply, the generated email skipped all styles. This was traced to a missing property check, and has been resolved. | Conversational Channels |
SR-D63638 | 544016 | Performance improvements for opening cases with embedded images | Opening cases containing email interactions was taking an excessive amount of time. This was traced to the use of embedded images, icons, etc, in the message body and signature, and was caused by the pyGetAttachmentsbyCID activity running multiple times due to discussion threads that were duplicated over and over. In some cases, more than 360 calls to the database were seen. This has been resolved by shifting some case opening processes to executing when the listener thread gets the mail, and storing the results in a .pynote property, and a URL will be used to get images instead of embedding them directly to the HTML. If preferred, this can be reverted to the previous behavior by changing the when rule (pyUseCachedHtmlForDisplay) to false. | Conversational Channels |
Data Integration
8.2.6 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D32381 | 519465 | Transient property passivation handling improved | Frequent "com.pega.pegarules.pub.PRRuntimeException" errors were seen in the production log file while working on the WO. This was traced to corruption in the blob caused by transient properties during passivation. To resolve this, corrections have been made to the handling for the transient property entries in the blob. | Data Integration |
SR-D41229 SR-D54314 SR-D58964 SR-D63579 SR-D65362 SR-D72368 |
513589 517290 520129 527999 526932 534330 |
Enhancements added for using AWS file repositories | Enhancements have been added to improve the use of AWS file storage: - Logging for AWS SDK connection metrics can be activated on a per-repository basis, either through the ruleform or through the DSS `storage/class/:/enableMetrics`. - INFO logging can be enabled on PegaAWSSDKMetricReporter to periodically output averages of recorded metrics for all registered S3 repositories with metric collection enabled, or INFO logging can be enabled on PegaAWSRequestMetricCollector to output recorded metrics on every client call for all registered S3 repositories with metric collection enabled. - The interval at which PegaAWSSDKMetricReporter logs metrics at can be configured with the DASS `storage/AWSSDK/metricReportingInterval`. This DASS is a system-wide setting, and not a per-repository setting. The default reporting interval is 90 seconds, and metric collection is disabled on all repositories by default. |
Data Integration |
SR-D42241 | 518639 | CyberArk support has been added for this release | CyberArk support has been added for this release. | Data Integration |
SR-D45622 | 521661 | Sorting on Grid works with declare expression property | If a property with a declare expression was used in a column, the sorting on that column was not working. This was traced to reference errors when Grid used the engine API pega.sortPageList to sort the page list / data page, and has been corrected. | Data Integration |
SR-D47484 | 516149 | Added visibility to dropdown for change stage | While creating a flow in work- class that used a change stage, on selecting 'other' the dropdown to show other stages was not visible. This was due to a missing visibility condition, and has been resolved by updating "pzPopulateStages" Step7 to set the pyGotoStageOther to "OTHER" when none of the stages are present. | Data Integration |
SR-D51725 | 516467 | DSS added to rpevent logging of sensitive data used as input during async batch task processing | When running Async Batch Task Processing, the whole set of inputs was logged when an error occurred during ADP load. Because this might result in sensitive data such as SSN, DOB, IDs, etc, being included in the debugging output, a DSS has now been added which when set will avoid printing any sensitive information in the log. | Data Integration |
SR-D55161 | 527651 | getStoreDataTable updated to resolve thread lock issues | An IlegalMonitorStateException in TableInformationMapImpl.getDataStoreTableInfo caused a read lock to not be released, preventing other threads from acquiring a ReentrantReadWriteLock.WriteLock on the same ReentrantReadWriteLock. This eventually lead to a Deadlock scenario forcing other threads into an irrecoverable WAITING state. The issue could be cleared by restarting the nodes, but the implementation of the getDataStoreTableInfo method has been updated to resolve this issue. | Data Integration |
SR-D55841 | 522695 | isAvailable calendar instance will include time zones | When using a custom configuration to route assignments, if today was configured as unavailablefrom date, assignments were still routed to the current operator even though they were not available. Analysis showed that the same Calendar was not used to compare date objStartDate, opUnavailableFrom and opUnavailableTo in the function, isAvailable. The isAvailable FUA calculates objStartDate by getting the calendar instance and setting the time by calculating it from the next business day. However, the calendar instance was created from Calendar.getInstance(), which does not use a time zone, and this resulted in a mis-match of time. To resolve this, instead of creating a calendar instance objStartDate will be formatted to YYYYMMDD format and then converted to the requestor time zone timings using Data Time Utils parseDateTimeString. | Data Integration |
SR-D56293 | 536777 | Resolved timeout errors related to getIndexInfo | When attempting to import large files (around 300MB) via Designer Studio a time out error was seen, but the same upload worked as expected from the command line. Investigation showed that the "approximate" argument in getIndexInfo caused wasteful analytic operations to be run on the database, hampering performance. To resolve this, areas where the results of the analysis are not needed have been modified to have aApproximate set to be true so it will not be run. | Data Integration |
SR-D56452 | 521770 | Auto populate properties will fetch data from descendant classes | A page list property set to be populated by the "Copy data from a data page" or "Refer to a data page" option had a blank property value. The warning "Copy from declare page of incompatible class: Code-Pega-List" appeared. Investigation showed that the failure was caused by the embedded class of the auto-populate being different from the data page's dynamic class. This was due to the data in the data page being sourced from Report Definition; that fetches data from its descendant classes, causing the class of the data page to be dependent on the report definition configuration. To resolve this, the system has been updated so that Auto Populate properties will allow fetching data from descendant classes. | Data Integration |
SR-D56527 | 538293 | DSS PegaAESREmote*ResetTableStats set to false | In order to prevent an issue with resetting table stats that potentially impacts postgres in an unintended fashion, the DSS PegaAESREmote*ResetTableStats has been set to false. | Data Integration |
SR-D57855 SR-D63912 SR-D69836 |
521125 531204 529728 |
Context retained during nested automation | Issues were seen with context being passed correctly with automation. When a Data Page that was used to abstract the call to a REST API used a Data Transform which in turn used a Data Page which also used a call to a REST API to retrieve an OAuth Token, an error appeared. The same worked when a URL was provided on the Connect REST. When a service case was launched but a Flow Action wasn't submitted, then another service case was added and submitted, the post-processing robotic automation activity used the run robotic automation activity from the previous service case instead of the current service case targeted for completion. This has been resolved by updating the webwb • pzpega_ui_doc_submit.js file to pass the correct MDIContext based on the event target of FA submission while invoking RDA automation. | Data Integration |
SR-D60206 | 529326 | Resolved null pointer on Reference Helper startup | An issue with the system failing to start and generating a NullPointerException on Rule-Utility-FunctionReferenceHelper.java has been resolved by modifying some Rule-Utility-Function code to better handle threads that are not completely initialized yet but still running rules. | Data Integration |
SR-D60318 | 526871 | Data table validation message placement updated | An issue with validation errors unexpectedly appearing on primary key columns instead of on an added decimal data type column was traced to the system using a temporary page to update the record: if there was an error, all of the messages were copied to the temporary page and put on the first key of the data type. To resolve this, the system will populate the messages on individual properties on the main page and the rest of the messages will be put on the first key of the data type. | Data Integration |
SR-D60375 | 527756 | Resolved upgrade SqlSyntaxErrorException | When trying to perform an in-place update, the error "SqlSyntaxErrorException" appeared. Investigation showed that DDL statements for Adding 'pzInsKey' as PrimaryKey for Tables pc_work and pr_sys_locks were generated during the upgrade while pzInsKey was already the PrimaryKey in corresponding tables. This has been corrected. | Data Integration |
SR-D60442 | 522062 | Enhanced logging and error messages for JSONMappingUtils failing to map a number value | Some integer properties were not mapped from JSON, such as itemID. Investigation showed that because the maximum range of a signed integer is 2,147,483,647, only those itemIDs less than or equal to that were processed during the initial mapping of the incoming JSON data. Others were bypassed to allow for the remaining properties to map to the clipboard. As this mapping incident is rare, no code changes will be made to address it. Instead, if this condition is seen Pega recommends changing the property mode manually to text to prevent arithmetic being done on itemIDs or other integers. In order to better support administrators and developers, updates have been made to the warn/error log messages in the event of JSONMappingUtils failing to map a number value so that missing data mapping will be clearly indicated. | Data Integration |
SR-D61199 | 533478 | Support expanded for postgres versions and logging improved | While trying to import data into the Data Type Tables using a CSV file and selecting the 'Add or Update' option, an error appeared and the import failed. Using 'Add or Delete' worked as expected. This was traced to the import of data failing for postgres version 10.x because UseMerge for postgres did not use merge if the version of Postgres was not 9. Support has now been added for versions of Postgres higher than 9 in SQLGeneratorPostgres.useMerge(), and logging has been enhanced to improve triaging issues such as this. | Data Integration |
SR-D61706 | 524956 | PropertySet will iterate over chageList map copy to resolve CME | An empty menu was seen intermittently when handling incoming email, and a ConcurrentModificationException error was logged. Investigation showed that a step scope changeList map used in the handleChaining method was sometimes modified by another process while the first one was iterating over it. To resolve this, PropertySet will receive copies of the change list map from clipboard pages instead of the original map. | Data Integration |
SR-D61971 | 529607 | Search Landing Page handling added for email addresses containing hyphens | When an e-mail addresse containing a hyphen was entered for the Automated Search Alert functionality, the validation error "Please Enter Valid Email Address(s)" appeared. For example, [email protected] was not accepted. To resolve this, the regexp function used for the email validator has been updated. | Data Integration |
SR-D62755 | 522828 | Enhanced diagnostic logging for Email Listener failures | In order to better diagnose issues where the email listener entered a disabled state as soon as it was started, a catch block has been added to enhance logging the reason of failure. | Data Integration |
SR-D62840 | 534124 | Updated HashMap logic for better concurrent thread handling | The Pega execution engine was getting stuck at com.pega.eclipse.util.collections.HashtableOfIntValues.get for many thread within thread dumps. Investigation showed that when the key was not present in keytable, a thread would be stuck in an endless 'while' loop related to mapping. To resolve this, the data structure that is used for ruleset mapping from HashtableOfIntValues to Concurrent HashMap has been modified to better handle concurrent threads, and the handling for get and put has been updated. | Data Integration |
SR-D63234 | 529099 | Blobless class handling updated in BIX extract | When performing a BIX extract to database, null values were seen for some columns when there were values present in the clipboard and the report definition. Analysis showed that an Extract Rule defined on a Blobless class with a property having a length greater than 30 would return a null value even when the source table's corresponding columns do not have null values. This was due to BIX using an internal Report Definition which would truncate the column alias if the length of the column was greater than 30: when the extract then tried to find the actual property name in the result page, it did not find it and returned a null value. To resolve this, if the class is Blobless, the system will iterate over the property and check whether it is truncated or not. If it it truncated, the truncated name will be used when looking for the property in the result page instead of using the unmatching actual property name. This will ensure the correct value populated in the result page will be used. | Data Integration |
SR-D63255 | 531383 | Updated sender email address validation to handle long domains | In some cases, attempting to create a case via an email was failing and the cases were being routed to the broken queue. The error "IndeterminateConditionalException: Unable to load data page D_TrackAutoResponse. Required parameters : SenderEmailAddress. cannot be blank" appeared. This was traced to regex having a validation on the length of a domain name which caused a lengthy 'from' address to be trimmed. To resolve this, the regex has been modified to validate the email address as per RFC5322. | Data Integration |
SR-D63677 | 529267 | Null check added for ObjClass filter value | When a report definition was run with "Starts with" as a filter condition and "Use null if empty" was not checked, the message "An error occurred during resolving the report definition - null java.lang.StringIndexOutOfBoundsException" was logged. This did not appear if the filter condition was "is equal" and "Use null if empty" was checked. To resolve this, the system will check for a null or empty value on pxObjClass filter values before processing it for class descendants. | Data Integration |
SR-D63774 | 540506 | Resolved .PDF extension preview issue | Previewing a PDF that had the extension capitalized as ".PDF" did not load, but one with the extension ".pdf" worked. This has been corrected by modifying pxUploadFile and pzUploadFileToADocument to convert the filetype extension to lowercase to prevent possible preview problems. | Data Integration |
SR-D63993 | 524303 | Resolved auto-addition of UpdateDateTime filter to BIX history extract | When creating a BIX extract rule on history classes, trying to save the rule resulted in the invalid filter error "pxBIXReportPage—Cannot use a unexposed property". Analysis showed the pxUpdateDateTime column, which is the default filter on creating a new extract, was added automatically even though history classes do not have a pxUpdateDatetime column. While there was a workaround of manually removing the pxUpdateDateTime column filter when creating the extract rule for the first time, this has been resolved. | Data Integration |
SR-D64558 | 527677 | AttachmentContent supports S3 storage | Using a D_AttachmentContent data page to display the contents of an attachment by way of the pyGetAttachmentContent activity worked when using the Pega database for storage, but generated an error stating CMIS access was disabled after switching to S3 storage. This was traced to restrictions on Link-Attachment pages in Step 2, Line 64 of pyGetAttachmentContent to enable attachment stream retrieval from web storage and repositories by D_AttachmentContent, which has now been removed. In addition, pyGetAttachmentContent has been updated to behave the same whether a Link-Attachment page or Data-WorkAttach page is provided when populateAttachStream is set to false, and the rule documentation (description/usage) has been updated accordingly. | Data Integration |
SR-D64729 | 524987 | DSS added to circumvent corrupted BLOB during deserialization | A corrupted BLOB was preventing work items from opening. To assist in this scenario, a DSS has been added to allow the conditional bypassing of BLOB properties. Pega-Engine propertiesToIgnoreDuringBlobDeserialization will accept a space-separated list of properties for which to errors will be ignored during BLOB deserialization. Pega-Engine dumpBlobOnDeserializationException should be set to “true”/”false” based on whether or not to print the entire BLOB to the console if there is an exception. Note: This may output sensitive data to the logs. | Data Integration |
SR-D65112 | 541148 | Added support for imported rules to populate bixreportpage | Extract rules were not holding the filter criteria after upgrade while performing save-as (for the first time) of the imported rules from the previous version. Criteria were held when the filters were created in the new version. This was caused by BIX extracts created in earlier releases (7.x) not having bixreportpage included. When an environment was upgraded to 8.x versions, opening an extract required the bixreportpage to be populated with RD metadata including the filters defined in the actual extract. Although the filters from the original extract were converted to filters that are acceptable by ReportDefinition, they were not being added to bixreportpage on opening the extract. To resolve this, the system has been updated to copy the filters back to bixreportpage on opening the extract in the upgraded environment. | Data Integration |
SR-D66615 | 536241 | API added to minimize calls to set parameters in datapage | Differences were seen after upgrade when using a datapage associated with a property which was application-specific and that had Data Access for the property defined as “Copy data from a data page" with parameters whose value was set by an activity from the associated property of type single page. Prior to upgrade, only one call was seen to set the values for the parameters in datapage, but post-upgrade multiple calls were used to set the values to these parameters. This was traced to logic used for extraction and invoking the perform, and has been resolved by adding the new API 'DeclarativeAction.shouldExtractWatchedProperties'. It will return true or false, depending whether the extraction of watch properties is needed or not. | Data Integration |
SR-D66986 | 539413 | BIX command line support improved | Post-upgrade, it was seen that changes to the engine which validate that Data-Admin-DB-Name is not defined multiple times caused the BIX command line extracts to no longer work the same way. In order to improve backwards compatibility, updates have been made to loosen the validation in JdbcConfigurationFactory to always prefer prconfig settings if there are multiple definitions. | Data Integration |
SR-D67034 | 536806 | Modifications made to reduce IncrementalIndexer disk space usage | Queue Items were being added back to the queue when the ElasticSearch cluster health was not good, causing pyFTSIncrementalIndexer data to constantly grow and consume disk space while processing the same records over and over. As an immediate remedy, the scheduler time has been reduced from 1 hour to 10 minutes to stop the processing of queue Items. The issue will be further evaluated for better possible solutions in a future release. | Data Integration |
SR-D67232 | 530008 | Email listener updated to handle encoded MIME attachment | When processing an email with an attachment that was itself an encoded MIME part, the email listener generated a NullPointerException around an extraction error. Analysis showed that a content-type misled the system into thinking an attachment was another message part. To resolve this, EmailMessageParser.java has been modified to avoid attempting to process an attachment as a MessagePart if it cannot get the content of the part as a Message. | Data Integration |
SR-D68204 | 530034 | Connect-FTP now s3 repository aware | In order to support using the Connect-FTP feature with the s3 repository as the source path, the system has been updated to check the local path provided for a filespec and attempt to retrieve the file for the Connect FTP call from there. This uses the "local file" field , using the format of "file://<storageDestinationAlias>/targetfolder" . | Data Integration |
SR-D71041 | 537895 | Default compiler pool size increased | An issue was seen where the nodes were continuously terminating and Stream service was not started. Error messages indicated a "WARN - Long running request detected for requestor", and that tasks were waiting for the generic object pool. Analysis showed that it was possible for a deadlock to form during the startup of the system or during the first few rule executions and compilations when there were more than five rules trying to compile. Once the variable LibraryMetadata.TypeEnvironment.resolver (ClassLoader) is initialized, the problem would resolve. To prevent the deadlock, the default compiler pool size has been increased from 5 to 10. | Data Integration |
SR-D71977 | 535601 | Obj-Browse will retrieve more than 50 records | After performing multiple skims, a newly added property was not retrieved when an Obj-Browse was performed. In Obj-Browse action, when a class is mapped to an external table and does not contain BLOB column pzpvstream, in a specific case where pxObjClass value is a reference to a parameter, a list of properties mapped to the class explicitly by querying pr4_rule_property table using NativeSQL is fetched. This call by default returns only 50 records: in cases where there are more than 50 properties for an external class, some of the properties from the obj-browse response mapping are therefore missed. To resolve this, the limit of 50 records has been removed from this NativeSQL call. | Data Integration |
SR-D74534 | 538944 | Decision table and tree obey allow missing properties checkbox | Calling the decision table/tree inside another decision table/tree which has a missing property was throwing an error even though the "AllowMissingProperties" checkbox was enabled in the caller activity. Analysis showed that the setting for AllowMissingProperties did not carry into any subsequent DecisionTree/DecisionTable calls from the top DecisionTree/DecisionTable, and this has been resolved by modifying the decision table and decision tree obtain value functions to pass AllowMissingProperties. | Data Integration |
SR-D75835 | 539302 | Added handling for Google Chrome drag and drop of Outlook email | Attempting to drag and drop an email from Outlook to a case opened in Chrome resulted in the email being moved to the Outlook deleted folder. This was traced to Chrome defaulting to defining the "dropEffect" attribute as "none" when the expectation is it should be "copy". To resolve this, the recommended handling from Microsoft has been added as an event to make a copy (and not a move) an email from Outlook when dragged and dropped with Chrome. | Data Integration |
SR-D76150 | 539453 | Logging updated for EmailListener and Data-Agent queue items | In order to avoid the pr_sys_queue_ftsindexer table being overwhelmed with Data-Admin-Connect-EmailListener and Data-Agent-Queue instances for queued items, the Data-Admin-Connect-EmailListener and Data-Agent-Queue class definitions have been modified to filter queue items to incremental indexing if updates are from system and instance type is data- . | Data Integration |
SR-D77316 | 539260 | Resolved thread deadlock for rules upgrade process | Platform upgrade was getting hung during the rules upgrade process. This was traced to a deadlock related to the conclusion cache entry for a property needing to make a call to declarative cache, where it tried to hold a read-write lock on a resource that was already locked by another thread. This has been resolved by replacing lock with tryLock to avoid deadlock. | Data Integration |
SR-D78531 | 542000 | Encoding added for special characters in JFROG filenames | A blank screen or the error "Unable to get the file from Repository" appeared when attempting to attach a file from JFROG Repository if the file name contained special characters. This has been resolved by modifying the artificatory URL generation to properly encode special characters during file download. | Data Integration |
SR-D80668 | 543867 | Performance improvement for queries on Kafka partitions | Even though there were multiple dataflow nodes available in the cluster, all requests were going to single node and causing system slowness. Investigation showed there was a queue processor rule that included the pxPartitionKey attribute which forced all records to be sent to a single partition by Kafka producers. This attribute has been removed. | Data Integration |
SR-D89304 | 519812 | ClusterAndDBCleaner repaired | An error in the logic order of events caused a compilation error for pyClusterAndDBCleaner, leading to old records created by the system/node utilities to not be automatically removed as expected. This has been corrected. | Data Integration |
Decision Management
8.2.6 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D42451 | 518067 | ExecuteRDB call updated to use NativeSQL for blob | After creating a test activity to clear data set records that used the DataSet-Execute method and passed the data set name and truncate operation, only 51 records were deleted in a single run when the data set had more than 51 records. Investigation showed that for blob tables, the database truncate operation was using executeRDB with an empty results page, i.e. it didn't specify pyMaxRecords, which on some databases might have limited the number affected records. To resolve this, the executeRDB call in the database truncate operation has been modified to use NativeSQL for blob tables. | Decision Management |
SR-D45608 | 519901 | Correct service instance name passed for data flow in DSMStatus | When using the Connect-HTTP service "DSMStatus" to provide the node and status information as seen on the various tabs of the Designer Studio > Decisioning > Infrastructure > Services landing page, using DataFlow as the service parameter for the HTTP service method resulted in an empty response when the expectation was to get the information regarding the cluster details of Dataflow node type. This was traced to the service instance name not being parsed correctly when used for Data Flow services, and has been resolved by ensuring the correct service instance name is passed for this use. | Decision Management |
SR-D54218 SR-D69028 |
518600 528973 |
Deadlock in static Initialization of IntList resolved | JVM Deadlock was seen related to the static Initialization of a subclass field in class com.pega.decision.strategy.ssa.runtime.collections.api.IntList . Thread dumps showed threads in RUNNABLE State that were parked to wait for class initialization, and this was traced to a missed sonar alert which failed in multi-threading. To resolve this, the system handling has been updated to prevent potential deadlock. | Decision Management |
SR-D57822 | 524199 | Internal Cassandra memory leak fixed | A memory leak was found on internal Cassandra that caused temporary log files to fill up the heap. This has been resolved by updating the system to ignore non-log files and properly increment the index. | Decision Management |
SR-D60268 | 521461 | Performance and thread-handling improvements for SSA | The SecureRandom class was used internally by SSAExecutionContext indirectly via UUID generation. Because this exhibited performance issues on some Linux environments, UUID has been replaced with static AtomicLong. In addition, a memory leak was observed when the strategy (SSA) execution resulted in an exception, and the strategy template has been modified to gracefully shutdown the VM under all circumstances. Thread-safety measures have also been tuned to be more fine-grained to reduce the potential thread contention that was seen while borrowing the SSAInterpreter object from SSAInterpreterPool. | Decision Management |
SR-D66397 | 530332 | ADM out-of-sync corrected for multi-datacenter Cassandra cluster | After setting up the multi-datacenter configuration for a Cassandra cluster that consisted of six nodes in datacenter 1 and three nodes in datacenter 2, failover testing revealed a mismatch in the number of ADM models stored in each datacenter. The mismatch was observed mostly in the number of records present in the "adm_scoringmodel" and "adm_response_commit_log_date_tiered" tables. When Cassandra nodes are down, the other nodes in the cluster will store hints (records to be written) for the down nodes. When these nodes come back online the hints are replayed to those nodes and the data is written. Hints are written for 3 hours, so if a node come back up within 3 hours data is recovered and repairs are not required. The gc_grace_seconds for the above tables that were getting out of sync across the two datacenters was set to zero seconds. The "gc_grace_seconds" attribute is not just used as the time for removal of tombstones, it's also used to set the TTL for records written to the system.hints table. That meant that when the hints were written for the ADM tables for the nodes that were down, they were immediately expired since it was set to 0 and not played back when the terminated nodes restarted and joined the cluster. This has been resolved with this fix for all customers new to this release. Existing customers already on v7.3 or higher will need to complete the local change detailed below: Connect to the Cassandra cluster using cqlsh in the Pega Cassandra distribution and then run ALTER TABLE adm_commitlog.adm_response_commit_log_date_tiered WITH gc_grace_seconds = 86400; to change the relevant setting from zero to the equivalent of one day - the same length of time that the data in the table lives for. This will mean that any hints written can still be used to replay data to another node while the data itself is alive. It does also mean, however, that, given a constant load, a day's worth of expired ADM event data in the table will always be present on the disk, as the tombstones can now not be cleaned up for a day. |
Decision Management |
SR-D67592 | 528515 | Updated handling for saving circumstanced rule by delegated user | If a user logged off without checking in the delegation rule, the "Save" and "Check-in" buttons were missing and it was not possible to modify the rule. This was traced to earlier work done to find a true match when editing delegated circumstanced versions of a Decision Table: the parameter match method being used handled empty strings as nulls and failed to match the correct instance in this use case. To resolve this, pzGetResolvedCircumstancedRule has been updated to use the getString() method instead of getStringIfPresent() so that all the empty string values will be seen as empty and not null. | Decision Management |
SR-D68558 | 536677 | Timing updated for Cassandra session change thread lock | An issue with unresponsive nodes was traced to the method used for notifications about Cassandra session changes. A thread trying to obtain a Cassandra session acquired a read lock, then if it then determined that a new session had to be created it would also acquire a write lock, preventing other nodes from trying to acquire the session. After creating a session, the thread notified all session change listeners while holding the write lock, causing deadlock with dependent services. To resolve this, the timing has been updated by moving the session change notification to the listeners outside of the section guarded by the lock. | Decision Management |
SR-D69052 | 536099 | Nodes cleared on startup to resolve pending joining state | ADM nodes were taking a long time to start and ending up stuck in Pending_Joining state. This was traced to a condition where if a node held a lock and restarted, it created a block where others waiting for the lock to be released sat and waited. To resolve this, an update has been added to clear previously held locks on startup. | Decision Management |
SR-D71621 | 533295 | Real time processing picks up correct datetime for Capture Response records | A Realtime Data flow for the Capture Response flow was configured with a strategy shape set to load previous decisions within the past 7 days. Once this Realtime DF was started, attempting to Capture Response for decisions made after that startup timepoint did not work. This was traced to the InteractionID being written with global properties for the datetimes, and has been resolved by making those datetime properties local so the start and end time are not cached and the time range is calculated based on "now”. | Decision Management |
SR-D74117 | 539461 | DDS service will not run Hazelcast check if external Cassandra is configured | Services were not responding, and thread dumps seen in the logs indicated that a large number of threads were waiting for one to come back from getting the cluster state for a DSM process. Investigation showed that the threads were waiting for a Hazelcast response about the cluster state. However, since a Hazelcast call is not needed when Pega is configured with external Cassandra, the DDS Service code has been changed to not to check for candidate nodes if configured with external Cassandra cluster. | Decision Management |
SR-D74247 | 542916 | Resolved errors when using Build Model from the Preview Console | Using the Web Chatbot interface and trying to perform Build Model action from Preview Console failed with multiple errors, either "This action is not allowed as it is outside the current transaction" or "class <blank> doesn't exist". This was traced to issues with the transaction during model update, and has been resolved by conditionally disabling the show page step of pzGetModelProcessStatus. This step creates a difference in the context of the current transaction and is disabled when called from Update API. | Decision Management |
SR-D78940 | 542926 | Dataflow monitoring enhanced | Enhanced monitoring and healthchecks have been added for dataflow and alerts. | Decision Management |
SR-D79909 | 542244 | DDS added for automated dataflow run cleanup | During a recent upgrade it was seen that there were in excess of 20k dataflow runs, some 2 years old, which slowed down the migration significantly. In order to resolve this, an automated process has been added. This clean-up procedure deletes all the single case, batch, and real time runs older than 30 days which are in the final state - Completed, Completed with Failures, or Failed, and batch and real time runs which are in the Stopped state. The DDS Pega-DecisionEngine.dataflow/run/maxDaysToKeepRuns.should be used configure the retention period. Note that the retention period is calculated since the last processed message and not the creation time of the run. | Decision Management |
SR-D82917 | 545518 | Revision Management updated for Marketing | When Offers created outside of the CR context were deleted from Revision Managment LP using the Delete Rules option, the Offer was deleted but the Decision Data was not updated. This also happened when the offer was not included while submitting the revision. This has been resolved by providing the needed extension for deleting the offer rules in marketing. | Decision Management |
Low-Code Application Development
8.2.6 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D44942 | 518354 | Guided tour popups handling added for right-to-left language locales | Guided Tour Popups were still appearing in the default EN location after switching to the ar_AR locale. This was traced to a missed use case for locales using a right-to-left mode such as Arabic or Hebrew, and has been resolved by updating the guided tour engine openPopOver function to account for the HTML tag dir attribute for value of "rtl". This will anchor the pop over to rightBottom / and display the arrow on the rightTop instead of leftBottom / leftTop. | Low-code app development |
SR-D52138 | 537505 | Property setting corrected for On Join and Exclusion shapes in Expression Builder | The properties for the defined page did not appear when using the type-ahead feature to select properties for the On Data Join and Exclusion shapes in Expression Builder. This was an issue related to the property being referenced for setting the context in the expression builder, and has been corrected. | Low-code app development |
SR-D54963 | 524114 | Updated Decision Table validation for multiple OR conditions | When the Decision Table had multiple OR conditions, the table was verified as consistent even when two rows had the same value. Analysis showed that when Show Conflicts encountered multiple 'or' conditions in a row that matched the same conditions in other rows, it considered them to be different rows. This has been corrected. | Low-code app development |
SR-D54984 | 529209 | Resolved ruleset save issue for Google Chrome/IE | When using particular versions of Google Chrome or IE, the intermittent error "pyComponentInterfaceClass: does not exist or is not a valid entry for this ruleset and its prerequisites" appeared when attempting to validate an application, and the ruleset could not be saved. This was traced to changes made in the browser around password handling, and has been resolved by explicitly clearing out the pyComponentInterfaceClass if that value is not in use. | Low-code app development |
SR-D56347 | 523275 | Pega unit for case type records user inputs | When creating a Pega unit for the case type by selecting Actions -> Record test case for Case, the user inputs were not recorded for embedded page properties. This has been corrected. | Low-code app development |
SR-D61681 | 532560 | Handling added for different access groups updating a case | When a parent flow was configured with a Wait shape to wait until any AccessChild case reached Pending-Authentication and then the “Update a case” shape was used to update the case status of child cases using a Data Transform, the Wait shape was being processed successfully but the child cases were not always updated as expected. This issue occurred when the cases were processed by users with different access groups, so the ProcessFlowDependencies agent processed the dependency. In this scenario, findPageByHandle returned an incorrect WorkPage because of the different access groups. To resolve this, pyLoadMyCasesNested Step-5 and pzProcessIndividualDepAssignment Step -13 now make additional checks to verify whether the page found by findPageByHandle API is a valid WorkPage or not. | Low-code app development |
SR-D63031 | 526243 | Reusable assets default option populated correctly for new application | When creating an application with at least two case types where each case type belonged to different class groups and pointed to different tables but were configured to have only one work pool, operator work pool values for pxThread and pxRequestor did not correctly reflect the different access group settings. This was traced to the inheritance of default values when the portal pyPortal.pyDesktopType was set to Composite, which caused the system to always take the value from the work pools in the application whether or not it was the same value as specified. A check has now been added so that the system will only default to using the value from the work pool if no value has been specified. | Low-code app development |
SR-D64528 | 528758 | Decision table rule scrolling fixed for low resolution screens | While scrolling right, the Tool bar in a decision table rule was moving right while the remaining screen moved left. This was traced to the the screen resolution being less than decision table toolbar width, allowing an infinite scroll. To support low resolution screens, the decision table grid has been made scrollable to resolve this. | Low-code app development |
SR-D72141 | 542662 | Approved flow rule image unlocked | When the Approval Required check box was enabled for rulesets (i.e another person with access to this work queue should approve changes to the rules), a rule which was approved was unlocked and moved back to the original ruleset as expected, but the binary image associated with the flow rule remained locked and any other user other than the one who previously checked in the rule was denied access with a "check out failed" error. This locking error has been resolved by modifying the Rule-Obj-Flow!CleanUp activity to set Param.IgnoreInstanceLockedBy = true. | Low-code app development |
SR-D72672 | 536388 | Security updated for CreateOperator | In order to improve security, CreateOperator in Pega-ProCom will require authentication to run with pxCanManageUsers privilege. | Low-code app development |
SR-D75469 | 538121 | Resolved null-pointer exception in Expression Builder launch from activity rule | A NullPointerException occurred in SafeURL when trying to launch the Expression Builder from an activity rule. This was trasced to a failure to get a value property in a target field due to the target element and its parent element containing the same value for name attribute. This caused the parent element to be considered instead of the target element. To resolve this, the search for the target element in parent tag will use '$p' along with 'target element name' in query selector. | Low-code app development |
SR-D78698 | 545386 | Improved temporary page clearing for UpdateAndDeleteAssignments | When using the Change Stage shape in a flow to move it to the Complete stage, the expectation is that the status should be set to Resolved-Completed and all open assignments should be deleted. In some scenarios, the audit history showed the case moved to the Complete stage and the assignments deleted properly, but the case status was not set to Resolved-Completed. This was traced to the temporary page "pgWork_x" getting leaked from pzUpdateAndDeleteAssignments activity when a case is being processed to closure (via pzProcessResolutionStage > pxForceCaseClose path). When the same work object was reprocessed in the same thread and the findPageByHandle(WorkObjectID) function received this temporary page's reference, then the actual operation was not committed to the database. To resolve this, updates have been made to remove the precondition at step#15 of the pzUpdateAndDeleteAssignments activity to ensure the temporary page gets removed appropriately. | Low-code app development |
Mobile
8.2.6 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D37275 | 519028 | Enabled PDF attachment for iPad Safari | It was not possible to select the PDF option when attempting to attach a file while using iPad Safari. This has been corrected. | Mobile |
SR-D42243 | 524579 | Added handling for offline mobile attachments using PRFiles and Repositories | Attaching a file on mobile and then immediately clicking on it to open it either did not open the attachment or the attachment opened and then the app stopped working with a "Sync Failed" error. Attachments were not synchronized on the server, and when synchronization was re-tried the attachment was duplicated on attachment list. This was traced to the system being configured to use PRFile API for synchronizing attachments along with Repositories to store attachments; when the processing "commitAttachment" action was processed, it called the Work-.AttachFile activity to finalize attachment upload, but the activity was called without the mandatory attachment InputStream required when using PRFile + Repositories. This has been resolved by ensuring there is a call to Work-.AttachFile with InputStream in cases where PRFiles and Repositories are enabled. | Mobile |
SR-D50584 | 518442 | Security added to retrieving operator list by URL extension | It was possible to append information to the application URL which allowed an unauthenticated user to find a list of operators. This has been corrected, and will now result in the message "There has been an issue; please consult your system administrator." | Mobile |
SR-D56148 | 537404 | Corrected map zoom issue with iOS13 | After including a map control with markers in an application for iOS13, viewing via a mobile app and zooming introduces a gray bar across the map. This has been resolved by setting transform translateZ to the div of address map. | Mobile |
SR-D68810 | 532133 | Google street view enabled | The Google Maps street view control has been enabled by setting streetViewControl to true in pzpega_ui_addressmap . | Mobile |
SR-D70674 | 535483 | Handling added for mobile upload of filename containing dots | An issue with uploading a file name containing dots (such as 2019.12.12) while using the mobile browser has been resolved by updating the AttachFile activity in the propertyExist function. | Mobile |
SR-D73237 | 539125 | Pagination updated to resolve repeating Pulse notes | After adding a case and entering 15 Pulse notes, scrolling down resulted in the notes being duplicated. Investigation traced this to entering more than 10 posts in a single interaction on a previously empty case when "Progressive pagination" was enabled for the repeating dynamic layout. On Private Edit, if the pagination was changed to "NONE" then the issue was resolved. Pagination depends on the pzPagingStartDateTime property, which is set on D_pzFeedParams, but since there were no results in this scenario this property was not being set. To resolve this, an update has been made so that pzPagingStartDateTime will be set if it is empty. | Mobile |
SR-D74246 | 543725 | Accessibility improved for Pega Survey Question pages | Question Pages in Pega Survey lacked accessibility. This was traced to aria-label not being generated for Radio buttons and Drop-downs, and "title" not being generated for other controls used in Question and Question Pages. This has been resolved. | Mobile |
SR-D76927 | 541422 | VirusCheck added to all Pulse uploads | The upload file activity has been updated to invoke VirusCheckActivity for all Pulse uploads. | Mobil |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.2.6
Reporting
8.2.6 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D50787 | 520484 | Excel time values will default to server datetime if operator time zone is null | After upgrade, a scheduled report that contained a column using pxDateTime that was supposed to use EST instead used GMT when run and exported to Excel. This has been resolved with an update that will default to using the time zone of the server If the time zone of the operator is empty or null. | Reporting |
SR-D50819 | 519237 | Eligibility Builder integer sorting revised | In 'Offer' on the Eligibility tab, the Builder was sorting integer properties by the value of the integer as a text string rather than the whole number. Example: 1, 10, 12, 13, 100, 2, 20, 29, 299, 3 instead of the expected 1, 2, 3, 10, 11, 12, 20, etc. This was traced to the system sorting the results using tools.sortPageList() in order to sort by localized (string) value, which is not appropriate for values of any type other than string. To resolve this, the system will skip the manual sort step for numeric columns since the values are appropriately sorted by the database. | Reporting |
SR-D53176 | 541794 | Error when adding function filter will persist | When an exception occurred while adding a filter in the report viewer, the error was shown but cleared due to an immediate refresh of the parent section. Analysis found that step2 of pzGetFiltersFromContent was failing, after which the error was shown, the section reload happened, and the error disappeared. To resolve the error being cleared prematurely, the pzOnLoadReloadReport control has been modified so that when there are messages on the top level page (pyReportContentPage), a parameter will be set on HarnessContextMgr to not to clear them during the next refresh call. | Reporting |
SR-D55801 | 524292 | Corrected HTML error generated on export to PDF | After exporting a report to PDF, the PDF could be viewed but repeated instances of the error "<th> missing ‘>’ for end of tag" were logged. This was traced to missing the closing '>' for th in the pzRRDataListHeaderRow HTML rule when "Enable column command menu" is unchecked in ReportViewer options, and has been corrected. | Reporting |
SR-D65256 | 528006 | DisplayCommandMenu holds value during runtime filter changes | In report definition, under report viewer tab, the 'enable column command menu' option was disabled. When the report was launched, the menu was not displayed for each column as expected; after applying the filter changes, the column menu options were unexpectedly displayed. This was traced to previous work done on the implementation of the navigation menu for auto-generated grids. Because pyDisplayCommandMenu is exposed on the ruleform itself, disabling the command menu from the ruleform caused changes to the filter to reset and pyDisplayCommandMenu was set back to true regardless of what was configured on the ruleform. To correct this, updates have been made to ensure that pyDisplayCommandMenu is not overwritten when there are changes to a filter during runtime. | Reporting |
SR-D65327 | 534570 | Backspace keydown handler updated for all textinput modes | Attempting to use the Backspace key to remove input from a number cell (either Integer or Decimal) did not work. When the action was performed by a Manager, the Backspace key works as expected. Investigation showed the logic in the keydown handler for the backspace key in pega_report_events.js was only ignoring the e.preventDefault() call when the textinput node type was text, not number or other input types. To correct this, the keydown handler has been updated so the backspace key in pega_report_events.js maintains the default backspace functionality for all textinput modes, not just those of type 'text'. | Reporting |
SR-D76943 | 541371 | SmartInfo icon functional for reports | After enabling Smart Info for a list Report definition, the activity was not getting called and section was not getting displayed. Investigation traced this to encryption added in an earlier version which caused the SmartInfo API to receive a parameter in an unexpected format. Because this incompatibility would affect all APIs not compatible with the encryption, this encryption for the API has been reverted. | Reporting |
Security
8.2.6 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D31734 | 515656 | Cross-site scripting protection added for parameter page properties | An Cross-site scripting vulnerability was seen with the Edge browser when run on visibility on client check was enabled with dynamic layouts and some properties were accessed from parameter page. Because run on visibility on client check is not required in this scenario, is has been removed and the values will be accessed from the server instead. | Security |
SR-D52785 SR-D55449 |
518650 523502 |
Cross-site scripting protection added to layout runtime java and whitelist validation available for host/XFHost | In order to protect against Cross-site scripting issues, filtering has been added to the RepeatDynamicIndex parameter value in layout runtime java. In addition, a validation for X-Forward-Host value has been added which will be read from a local configuration. This is in the form of a white list regex filter for the host/XFHost header to ensure the URL's actions cannot be redirected. | Security |
System Administration
8.2.6 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D37317 | 512553 | Run Ruleset Cleanup defaults to true | After upgrade, the rule categories and rules were not showing correctly in the App view of the Dev Portal. Many warning messages were also logged related to the Decisioning DM Sample application. This was traced to the rules cleanup script not running properly. While there was a workaround of applying the ruleset cleanup scripts manually after removing the queries that reference the pr_engineclasses table, the cleanup will now be set to run by default (run.ruleset.cleanup=true). In addition, the logic to determine which RuleSets to include has been simplified and most of the pr4_rule_vw deletions have been combined. | System Administration |
SR-D38318 SR-D66325 |
519710 527661 |
Data pages explicitly cleared after QP use | The Util Node was showing as Offline in the Search Landing Page, and when Jobs were submitted for execution from other Nodes the message "Detected active run with unreachable nodes" was logged. The util node, configured as a backgroundprocessing node, was running QPs; the queue size for custom QPs is 500 messages /queue items per minute, but investigation showed the requestor level and thread level data pages corresponding to the QP activities were not being cleared after use. This led to high heap memory issues that made the node unreachable, and has been resolved by adding code to explicitly remove the data pages when processing has finished. | System Administration |
SR-D48396 SR-D56063 |
520423 522858 |
Hazelcast upgraded to resolve node startup issue | Post data upgrade, the ADM tier failed to start and the error "java.lang.IllegalStateException: Node failed to start!" appeared. This was traced to a dormant bug in Hazelcast 3.11 that caused starting nodes to fail when the Hazelcast master node was shutting down, which was exposed by recent Pega changes made to enable parallel restarts of nodes in Cloud environments. Hazelcast delivered a fix for the parallel restart problem and the hotfixed jar has been merged into the platform. In addition, previous logic for loading Admin Studio waited 30 seconds before timing out when fetching information for each node. This caused issues with large clusters and Admin Studio not loading. The logic has been updated in the Admin Studio UI to load the page despite delays/issues waiting for nodes to respond to the gathering of cluster data, and the algorithm to detect remote-call timeout has been updated and is applicable to batch operation. | System Administration |
SR-D48433 | 514857 | Exception handling added for Redirect URL fetched from GRS | When the application definition under “integration and security" tab was configured to use "Store in web storage provider" to allow choosing the storage name and the authentication profile, configuring the authentication profile to use an OpenID connect provider with the pyEndpointURL property given as a global resource setting such as (=D_SharepointDetails.url) was not working as expected. Clicking browse in the application definition sent the request to the OpenID connect provider and was returned with the error "The reference =D_SharepointDetails.url is not valid. Reason: Page name (D_SharepointDetails) from indirect reference was not found." This was traced to the Redirect URL (fetched from GRS) throwing an unhandled exception, and has been resolved. | System Administration |
SR-D48762 | 518298 | Enhancement added to support DB2 CREATE OR REPLACE view syntax | After creating the product, attempting to import it on another environment failed due to incompatibilities with the syntax. In SQLGeneratorDb2.getViewSourceStatement(), when the View definition is fetched there is a check whether the view starts with "CREATE VIEW". Since the customer view of "CREATE OR REPLACE" was not supported in Db2LUW, it didn't match and appended the "CREATE VIEW" statement again. This happened only when using DB2, and has been resolved by updating the logic in SQLGeneratorDb2.getViewSourceStatement() to support CREATE OR REPLACE VIEW statements. | System Administration |
SR-D49804 | 518226 | Hierarchical view support added for moving packages | After exporting a package from a DEV environment, attempting to import it to a TEST environment resulted in the query becoming corrupted and the process failing. This was traced to the regex used to fetch the select statement table name not supporting hierarchical views, and has been resolved by adding that support. | System Administration |
SR-D51324 | 523434 | Authentication state refreshed after failure in mobile | When using the mobile app, if the log in was started and incorrect credentials or empty fields were submitted and then the credentials screen was X-ed out or canceled, attempting to log in again using the correct information still received the "Authentication failed" error. A subsequent attempt with the correct credentials would then work. This was traced to the server persisting the state from the first request (per browser session), and has been resolved. | System Administration |
SR-D53835 | 524213 | Handling added for custom authentication in embedded mashup | After embedding the Mashup gadget in an external application, at browser refresh a Cross-Origin Read Blocking (CORB) warning appeared and the gadget did not load as expected. A second refresh cleared the error. Investigation showed that when custom authentication is configured, 'use SSL' is checked in Authentication service. That meant that when the user was authenticated, the redirection was not considering the query string entered before authentication and the CORB warning was issued due to a change in response. Because there is special handling for the above use case and post-authentication redirection does not happen through the normal flow (HttpAPI), this issue has been resolved by honoring the query string stored in requestor (entered by user) while redirecting. | System Administration |
SR-D54319 | 532527 | API added to sync presence with requestor to clear inactive operator sessions | An intermittent error message was seen indicating the maximum number of active sessions for the current operator had been reached even though there were not multiple logins and there was no requestor displayed in the requestor management landing page. This was traced to sessions that were not properly closed and cleared, and has been resolved by exposing an API that will sync the presence record with the requestor state so inactive sessions will be cleared. | System Administration |
SR-D55160 | 520355 | Namibia and Botswana added to Currency Symbol values | Support has been added for the Namibia (en_NA) and Botswana (en_BW) locales in the default Currency Symbol values. | System Administration |
SR-D57038 SR-D83192 |
519380 545057 |
JobScheduler DST handling updated | When the locale being used changed out of Daylight Savings Time, scheduled jobs did run at the same local time as before but instead ran an hour earlier than expected. Investigation showed that jobscheduler calculated the next runtime based on the time difference from the cluster reference time and current time in milliseconds, and this offset in milliseconds was added to next run time. Since the cluster was started in DST, the job was running on same time due to the time difference. To resolve this, the system will use a calculation offset and set hours/minutes to nextRunTime object so that calendar lib handles daylight savings. | System Administration |
SR-D58927 | 522290 | Added expiration for orphaned tracers | After tracing a REST service, the tracer was persisting but not showing in the requestor list from Admin studio. The operator shown in the error did not have access to the system anymore, and other users were not able to trace the service rule. Trying to clear the requestors in all the nodes using API POST /nodes/{nodeID}/pools/requestor/clear also did not resolve the issue. To address this, a distributed rule watch expiration has been added. | System Administration |
SR-D59262 SR-D69927 SR-D69927 SR-D76409 SR-D78045 |
523616 537479 537485 540300 539891 |
Cleanup added for staging directory | Temporary files from imports and exports (from DevOps) were filling up the staging area disk space because there was no automatic process for cleaning up these local files. This has been resolved by adding an enhancement that will clear the directory on Engine Startup and any time ParUtils.setStagingDirectory gets called to initialize the staging directory. | System Administration |
SR-D59619 | 520345 | Handling updated for comparing timestamps during daylight savings | An issue with SOAP authentication that generated the error "wsse:FailedAuthentication The creation time is older than currenttime" was traced to the java library not handling daylight savings time properly. This has been resolved by using joda time to compare time stamps. | System Administration |
SR-D61967 SR-D74848 |
528216 536999 |
Updated key handling for ProcessJWT | After configuring an authentication service which used the ProcessJWT activity to validate the token received, the error "Unable to process the Json Web Token " was seen. Analysis showed the error was caused by a duplicate Key Id in JWK Endpoint Response: the system removed keys after processing, and in the case of duplicate keys the system was throwing null pointer exception because the key had already been removed. To resolve this, the system has been updated to not remove the keys from the map as part of this process. | System Administration |
SR-D63668 | 525480 | Access Control Policy updated to handle NotEqual with valuelist | When editing the Access Control Policy Condition rule in Designer Studio and setting condition to 'is not equal', comparing it to a list generated the error "function not found". The same configuration worked as expected for the 'is equal' condition. This has been resolved by updating policycondition to handle a not equal scenario combined with a valueList property. | System Administration |
SR-D63681 | 527383 | Localization added to login page messages | Localization has been added to the messages that appear on the login and forgot password screens. | System Administration |
SR-D63727 | 531724 | Authorization header base 64 format error recategorized as debug logging | Numerous messages were generated indicating that the Authorization Header format was invalid when using the format " : " (Base64 Og==) . As this is the default behavior for a particular class of proxy servers, the error statement has been updated to be logged as a debug statement and will be visible only when that logging is enabled. | System Administration |
SR-D64408 | 530281 | Stacktrace will be generated for oLog errors | In order to provide improved diagnostics, oLog errors will print stacktraces. | System Administration |
SR-D64608 | 544387 | Corrected filedownload extension header issue | Filedownload header contained plain non-ascii characters which caused a security violation issue. This has been resolved by removing the filedownload header from the HTTP response when the sendfile API is used with inputstream to download a file. | System Administration |
SR-D66222 | 529635 | Tracer expiration set for five minutes | Tracer was not terminating on tracer window closure. On the next attempt to open a trace, a message appeared stating "Cannot Launch Multiple Tracer Sessions for a requestor. This requestor is being traced by operator". Tracer session termination was dependent on the browser executing code on window close. Because this event may not be triggered for number of reasons, updates have been made to set tracer session expiration at 5 minutes. In addition, the system will clean up expired sessions before checking for existing sessions. | System Administration |
SR-D70569 | 538508 | Tracer retains modified user settings | User settings in tracer were not shown when the settings window was closed and reopened. Investigation showed that settings are filtered based on watchInsKey, but this parameter was passed as "null" for global tracer because of a missing condition to check the session type. This has been resolved by adding a check so the WatchInsKey parameter is passed if the session type is rule watch. | System Administration |
SR-D72636 | 536088 | Added handling for Authorization Server login loop | When the Authorization server returned an error, it was redirecting back with error, error_description, and parameters. The system then tried to start the login process again, the same error parameters were returned again, and it continued to loop this way. To resolve this issue, handling has been added for this error scenario from the Authorization Server. | System Administration |
SR-D73002 | 535257 | URL Encryption and Obfuscation made compatible with site-minder | Attempting to download a Mobile App from the Build Server resulted in an error. This was traced to Cipher text using URLEncryption: URLEncryption uses a Pega-supplied base64 to encode the cipher text with MIME type encoding by default, which adds newline character after every 72 characters. This is not compatible with site-minder. which has policies to restrict newline characters in the URL. As a result, none of the encrypted requests were being processed. To resolve this, post-processing logic has been added to remove newline characters from encoded text. This change has also been applied top URLObfuscation. | System Administration |
SR-D75053 | 540912 | Corrected Agent schedule time conversion | After upgrade, a mismatch between the agent configuration and schedule was seen, causing an agent scheduled at 6PM Europe/London time to execute at 6AM Europe/London instead. Analysis of the Agent schedule rule showed that if the pyStartAmPm property was empty, the internal code miscalculated the AM_PM string as AM. That meant that if an agent was configured with 24 hour clock format and was set to run at 18:00 hrs, it executed at 6AM. The workaround for this issue involved resaving the agent, triggering the data transform pzSetStartAmPm to correct the field pyStartAmPm, but the issue has been corrected by adding handling for the pyStartAmPm == "" corner case. | System Administration |
SR-D75431 | 544197 | DMaps cleared to set correct JobScheduler next run time | When items were added into a QP, the items shown under Scheduled and weren't being processed immediately. Investigation found that the job scheduler which fetched the entries for QP to process wasn't running as expected, and the "Next run" time stamp for JS was incorrectly populated and entries weren't being fetched at all. To correct this, updates have been made to clear entries in DMap belonging to the node during shutdown and from the membership listener so the correct next run time is set. | System Administration |
SR-D75498 | 545069 | Resolved null-pointer exception for Token based Authenticated Rest | When logging in with auth0 OIDC auth service and then trying to use connect-Rest with an authentication profile using an auth0 provider, a null pointer error was generated indicating connect-Rest could not find the Access token. Even thought the Authentication service (OIDC) and authentication profile (authorization grant) both had the same scopes (“openid profile email”), OIDC flow and authentication profile save the Access Token with different scopes. Specifically, OIDC saves the token with an extra trailing space. Handling has been added to correct this. | System Administration |
SR-D76567 | 545448 | ABAC DSS setting reflected in all nodes | When the ABAC (Attribute-based access control) DSS was disabled, the change was not reflected in all the nodes automatically. This was traced to a difference in parameter name: SecurityCacheProvider.pulseChange(), while consuming pulse message on another node, expects to get ".pyPurpose" from the StringMap. Because the system was setting "pyPurpose", aKeys.get(".pyPurpose") returned nothing, and the policy cache iwa not cleared on other nodes. This has been resolved by ensuring naming consistency with "pyPurpose". | System Administration |
SR-D78987 | 544061 | Support for custom jvm.args added | In order to support Oracle PKI and other ticket based authentication, support has been added for custom jvm.args properties to setupDatabase and prpcUtils properties files. | System Administration |
SR-D79178 SR-D83053 |
543312 544268 |
SameSite cookie setting added for Mashup support in Google Chrome v80+ | The Google Chrome browser version 80 and above now treats SameSite with a blank value as "Lax" by default, causing mashup scenarios to break. In order to compensate for this change, support has been added for setting SameSite=None in Cookie Settings in the CSRF LP (DevStudio-> System-> Setting-> CrossSiteRequestForgery) which will enforce HTTPS for the Pega server and mashup. Note: The SameSite cookie may be set to None/Lax/Strict, based on the requirement. For mashups to work, SameSite should be set as None. To follow proper security standards, it should be set as Strict. | System Administration |
User Experience
8.2.6 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
SR-D34359 SR-D39356 SR-D56953 SR-D60367 |
510600 515148 523475 534852 |
StretchTabsWidth performance improvements | Slowness was seen when a new intent task was created through an interaction. To improve performance, some of the unnecessary calls to the Layout Group _updateStretchTabsWidth() function have been eliminated, and the function code has been updated to use native javascript performant helper functions so it starts rendering sooner. A flag has also been added to disable addnewtab and resizeactions: these need to be enabled through pega.u.d.DISABLE_LG_RESIZE and pega.u.d.DISABLE_ADDNEWTAB. | User Experience |
SR-D35956 | 521642 | Handling enhanced for invalid date values in date/time | Refreshing a section or entering an invalid date was causing the date/time to be reset to the current date. This has been resolved by modifying the logic and adding conditional checks in 'pzpega_ui_formatDateTime.js'. | User Experience |
SR-D40938 | 509685 | Free form layout controls will be converted to dynamic layout | After upgrade, a a pzActionDropdown control that was inside a pyActionDropdownSection was not visible anymore. Using the pzActionDropdown control directly worked as expected. Investigation showed that pyActionDropdownSection was using Freeform layout instead of the upgraded Dynamic Layout, and that the custom control was failing to generate the markup whenever drag/copy-paste was used for the control in any layout. To resolve this, the system has been updated so it will remove the control from a free form layout and use dynamic layout instead. | User Experience |
SR-D43740 SR-D45101 |
514124 512528 |
Added support for Helper Text Question Mark with visibility condition | The Helper Text Question Mark was not displaying if the control was configured with "Help icon with overlay on hover" combined with a visibility condition. This was a missed use case, and the expression visibility support for controls.changes have now been added in the pzpega_ui_DLCellTemplate.js file. | User Experience |
SR-D44943 | 527920 | Handling added for mousdown triggers in Firefox dropdown and sutocomplete controls | After recording a test case that includes entering data into an autocomplete, the data was not actually entered into the autocomplete when the test was executed but the test step was marked as successfully executed. Other tests for other similar autocompletes appeared to execute as expected. This was due to a mismatch between the sequences of events that are fired in the Google Chrome and Firefox browsers: the system is listening for a mousedown event to record a new step, but the browser-specific behavior is different. Google Chrome: mousedown focus click change Firefox: mousedown focus mousedown change As this difference in events order is browser behavior, code has been added that will handle the specific Firefox case where mousedown triggers on invalid target elements related to dropdown and autocomplete controls. |
User Experience |
SR-D47344 | 519891 | Single quotes escaped in RTE title field value | A JSON parse error was caused by single quotes not being escaped in the RTE title field value. This has been corrected. | User Experience |
SR-D47689 | 520829 | EvaluateConditions properly sets context for refresh section | Rule Not Found and Unresolved Assembly Errors were seen in production logs after upgrade. Investigation showed that the method context used by pzpega_ui_changetracker.js in "evaluateConditionsOnXThread" was not reset correctly, causing the refresh section response for the Recents List to not be properly updated. This has been resolved by updating the evaluateConditionsOnXThread method to set the proper context after evaluateClientConditions is run. | User Experience |
SR-D47886 | 514779 | Home icon retains correct color after refresh | By default, the home icon is a svg tag with dark or white filling (based whether it is selected or not), however if another tab was selected and the page refreshed, the icon went black and became a svg img tag. This has been corrected. | User Experience |
SR-D48544 | 530851 | Corrected null-pointer exception for Expression Builder launch from data join | A null pointer exception error seen when attempting to open the Expression Builder from a data join strategy component was traced to a code comment that overran the line length and was rendered incorrectly during JS compacting. This has been corrected. | User Experience |
SR-D49076 | 523172 | Modified section auto-call to pagination refresh | When the pulse gadget had at least one pulse note, Page error messages were flashing and not displayed permanently. This was traced to a custom error section: if a request was sent in one context/page, while getting the response the system also fetched a new error section for that context/page. That meant "pyFeedInner" was called to refresh, and that function includes "pzKeepPageMessages" as false. The reload call was originating from pagination that was happening automatically even when the current index was less than the page size. To resolve this, the system has been updated to not send a new request when current index is less than the page size. | User Experience |
SR-D49305 SR-D53488 |
519364 520014 |
Tab layout group handling improved | A difference in scrolling speeds between left and right arrows and an issue with the cursor correctly being redirected to mandatory fields were traced to errors in the tab layout group handling. The right scrolling issue was due to the calculation for right tab movement being incorrect in certain resolutions with relatively positioned elements, and has been corrected. The cursor redirect was caused by an error in the layoutgroup focus when used inside a screen flow where the first focus goes to the screenflow navigation on load, and has been resolved by adding a try catch for an invalid selector in case of a div error. | User Experience |
SR-D50208 | 517232 | Corrected layout of sort and filter icons for grid tables | The sort and filter icons in a table grid were almost overlapping, and in some cases the sort icon was so small that it was almost not visible unless the width of the specific text was enlarged to see it. This was traced to a CSS snippet present in one of the override files that forced the width of the name column grid header to 100%, and has been corrected by ensuring the sort column is left aligned next to the column header. | User Experience |
SR-D50311 | 516351 | Testautomation API documentation updated | The documentation explaining how to create, run and edit scenario tests has been updated with the following information: 1. Scenario tests cannot be run from the Actions > Run menu of the service rule form. 2. Run option from the test case rule form is removed in the latest releases. https://community1.pega.com/community/pega-support/question/scenario-te… |
User Experience |
SR-D51776 | 531984 | Check added to resolve Ajax Container instantiation error in log | When using the Microsoft Internet Explorer or Edge browsers, manually launching a Service Intent and clicking the F5 refresh button properly refreshed the screen, but the PegaRULES log file contained the error "(DynamicContainerDataModel) Error occurred while instantiating tab for the thread index." This issue / exception was observed only when pzCustomDCTabHeader was configured (pyEnableCustomTabHeaders) and when there was a AjaxContainer configured in the document. Because the CustomTabHeader recreation (DynamicContainerDataModel.updateCustomTabHeader) should be skipped for AjaxContainer, as CustomTabHeader is applicable only to the top level DC document and not to the AjaxContainer document, a check has been added to resolve this issue. | User Experience |
SR-D52630 | 519229 | Ad hoc task time validation done on correct thread | The validation on a time value was not working correctly when two cases of the same type were open at the same time. For every ad hoc task, there is some validation on the time property. After submitting a value in a second ad hoc task, the validation was triggered but used the property from the first ad hoc task and showed the error in the second ad hoc task tab. This was traced to the datepicker taking the reference from the previous MDC when it needs to take it from the active MDC. To correct this, the control_datepicker has been upadted to use pega.ctx.getElemById. | User Experience |
SR-D53260 | 524751 | Added check for section refresh when files are attached offline | After attaching files in offline mode, the files intermittently did not show up in the "recent attachments" list when performing any action on the attachments section. This was traced to the asynchronous reload of sections, and has been resolved by adding a condition in the sectionRefreshCallback() to check if the response matches with the correct reload element. | User Experience |
SR-D53725 | 516829 | Corrected column alignment for TextExtraction model in IE | When using the Microsoft Internet Explorer browser, vertical alignment problems were seen in the TextExtraction Model: 'Entity type' column. This was related to recent changes made to support Flex, and has been resolved. | User Experience |
SR-D54034 | 520008 | Check added to only show active popover | After selecting the autocomplete value and going to calendar field to select the date value, scrolling on the calendar field caused the calendar popup to reappear but it was not possible to select a date value.This was traced to the DOM using _popOversContainer ID for both the fields, autocomplete and date calendar. Removing the autocomplete caused the behavior to work as expected. To resolve this, the isActive() check in popover.js has been modified to reposition and show a popup only when it is active. | User Experience |
SR-D54068 | 518160 | Calendar edit properly disabled when set to no text entry | Clicking the input box of a date control used as Date+calendar popped up the calendar even when the calendar control was disabled and "Allow text entry" was set to No. If "Allow text entry" was set to yes, the entire calendar was disabled. To resolve this, the system has been updated to disable calendar control when 'Allow text entry' is selected to No in the presentation tab. | User Experience |
SR-D54594 | 521634 | Enhancement added to customize the clearing of error messages when performing modal actions | Opening any modal dialog, for example adding a row in Table/Grid layout, cleared any existing validation error messages on UI screen. In order to make this behavior customizable, a flag has been introduced to control the clearing of error messages from primary pages on grid actions. Updates have been made in the ui_grid, ui_grid_dragdrop and ui_repeatlayout JS files to include this flag in activity parameters and the pzdoGridAction activity has been modified to consider the flag. | User Experience |
SR-D54785 | 524803 | Corrected grey area seen when dragging tabbed layout Smartinfo scroll | When using Show Smartinfo in a tabbed layout group, a grey area was seen in the harness while scrolling. Scrolling up so that Smartinfo was out of view port caused another scroll bar to seen: one scrollbar was attached to the workarea div and the other to the body, and the gray area issue was only reproducible when explicitly dragging the (second) scrollbar attached to the body. To resolve this, if the popup is below the viewport using Smartinfo and the height calculated is negative, then the popup's height will be set to 0px. | User Experience |
SR-D54920 | 518273 | Extra checks added for pasting Excel content to RTE | Copying content from Excel into RTE pasted an image of the content either instead of the actual content or in addition to the actual content. This was traced to the handling of the isHTML flag: the flag should be set to true when there is HTML content in the datatransfer item or while pasting images (!isHTML is the condition in if). However, the sequence of the data items in the datatransfer can change depending on the browser/OS, causing isHTML to sometimes not be set to true before it is used in the condition while pasting images. To resolve this, changes have been made to the pasteHandler in the pzpega_ckeditor_extras file so proper checks are made to figure out the type of data from the clipboard that is being pasted. | User Experience |
SR-D55233 | 520720 | AJAX container handling updated to use Harness context API | After creating a service case and adding a task to the case, a button configured to refresh the section on a condition worked correctly the first time but did not respond to a second click. This was traced to the tasks being located in two different Ajax containers: in this usecase the condition evaluation logic related to actions was still using the regular DOM API and using the context from the first AJAX container. To resolve this, the system has been updated to use the harness context API pega.ctx.dom.getElementsByName instead of DOM API to resolve the necessary elements from the correct AJAX container. | User Experience |
SR-D55295 | 518360 | ISO country codes updated | Support has been added for two letter ISO 3166 country codes, and the list has been updated. | User Experience |
SR-D55781 | 523204 | Corrected Microsoft Internet Explorer 11 view for Data-Corr-Letter attachments | When opening an attachment of type “Data-Corr-Letter”, the document showed correctly in Google Chrome but in Microsoft Internet Explorer 11 was displayed in a small frame that did not allow viewing the entire content. This was traced to a legacy HTML rule with an IE8 emulation meta tag to support OCX, and has been resolved by adding a 'when' condition for the meta tag. | User Experience |
SR-D55972 | 518644 | SmartInfo disappears if cell clicked | After configuring a smart info on a table cell on hover where the table cell was also clickable to open a case, the smart info remained on the screen when the cell was clicked until the mouse was moved. This was opposite of the expectation that the smart info would disappear on click in this scenario. Analysis showed that the overlay event was not being dismissed if its associated element was removed/hidden, and this has been corrected. | User Experience |
SR-D56038 | 518032 | Corrected top row focus on scroll up for paginated table | When loading results in a table with progressive pagination, scrolling down and waiting for data to load and then scrolling back up resulted in the focus being set on the second row instead of the first as expected. This was due to an incorrect calculation for Scrolltop, which has been corrected. | User Experience |
SR-D56373 | 518884 | Mutiselect can localize "Use" | Localization has been added for the value "Use" in the multiselect control. | User Experience |
SR-D56723 | 523837 | Added check to resolve blank screen for embedded Ajax container with tabs | When an Ajax container was within another section with a tab group, trying to open a perform harness resulted in a blank screen. This has been resolved by adding a check to ensure this.headers[this._active] exists before trying to retrieve variables from it. | User Experience |
SR-D57164 | 531134 | Multi Select Control panel search by word fixed for Microsoft Internet Explorer | Multiselect search by word functionality was not working in Microsoft Internet Explorer 11: clicking on the down arrow resulted in the selection panel opening up for 1 or 2 seconds and then disappearing. It is working fine in chrome. Investigation showed that focushandler was getting called after popover open, which caused it to hide. The multiselect search worked in Google Chrome because in that case focushandler was called first and then popover was opened. The issue with Microsoft Internet Explorer has been resolved by updating the event handling. | User Experience |
SR-D57358 | 519791 | Scrollbar added to dynamic content overlay | An enhancement has been added to support dynamic content in overlay with a scrollbar. | User Experience |
SR-D57928 | 526008 | Special characters in field value display as expected | After configuring a text input with a helper text (Help Icon with overlay on hover) that pointed to a Field Value, and the Field Value pointed to a property from the clipboard {.HelperText1} that had a value like (Some text here), in runtime the text in helper was printed with the HTML ASCII number and the text instead of the parentheses around the text. This has been resolved by escaping the special characters so they are displayed as expected. | User Experience |
SR-D58779 | 524348 | Mashup will not load automation scripts | After creating a mashup with Portal Type harness where a header menu item controlled navigation to each tab, loading different harnesses did not work using Ajax/Dynamic containers due to access denied / cross origin errors. This was traced to the use of pz_pega_ui_automation_scripts, which should not directly access the window.top or window.parent object because mashup provides a gateway-less implementation that leverages PostMessage browser API. This has been resolved by adding a 'when' condition in the pzHarnessStaticScripts HTML fragment rule to not load the automation scripts in this scenario. | User Experience |
SR-D58868 | 531799 | Check added for unicode calendar values | After creating a repeating grid section for work report definition with enabled filter option, running the section and giving the filter value in unicode calendar form such as 2019/11/12 did not pass validation. This has been resolved by adding a check for unicode values | User Experience |
SR-D59003 | 522037 | Cross-site scripting security added to RWClasses | Cross-site scripting protections have been added to the RWClasses parameter. | User Experience |
SR-D61122 | 522497 | Multi-select in drop down displays subset of a value | In a multi-select drop down, choosing a value (say EMEA-Interior) and then choosing a subset of that value as the second choice (ex, Interior), the second value was not getting selected. If the selection was performed the other way around (Interior first and then EMEA-Interior), it worked as expected. Analysis showed that patterns with similar names did not have the necessary differentiation in the system, and a comma has been added to the generated ID to identify similar values in multiselect capsules. | User Experience |
SR-D62361 | 534809 | Read-Only harness takes precedence over editable section with when condition | Given a harness which was marked as Read Only and contained sections which were configured as editable based on some conditions, when the condition became true, the section became editable and ignored the read only conditions applied on the harness. Investigation showed that when a read-only 'when' rule evaluated to false, it rendered the layout in Edit mode instead of falling back to the read-only status of parent. This has been corrected by ensuring that when read-only evaluates to false, the system will fall back to the parent read-only status. | User Experience |
SR-D62436 | 527201 | Datetime control with Display details readonly works with Edit input | After upgrade, a date time control was being reformatted incorrectly when it was set with Display details as read-only with an Edit input rule configured on the property to convert the date entered (ex, 112019 to 01/01/2019). To resolve this, a data-editinput attribute has been added in the control markup to support this configuration. | User Experience |
SR-D63416 | 526522 | Multi-select list control properly sets error message for server-side validation | When using the Multi-select list control, client-side validation was working as expected but server-side validation was creating the Property-Set-Message error at Form level rather than Field level. This has been corrected. | User Experience |
SR-D64244 | 532982 | Support added for recording with sIngle-option radio button inside a repeating grid | Recording a test case was not working when a single option radio button (i.e., radio button control with property of type boolean) was configured inside a repeating grid. In this case, it was found that the Radio button markup did not have a data-test-id attribute for non-template single option; this has been added. | User Experience |
SR-D64667 | 531806 | Cursor issue resolved for tab within expandable row | When pressing the “Tab” key on an expanded row, the cursor was not moving inside the expanded part. This has been fixed by adding a check to get the correct first focusable element. | User Experience |
SR-D64694 | 533961 | Check added for Turkish locale in Firefox | When using Firefox in the Turkish locale, attempting to open worklist subsets or edit tables in a modal dialogue caused the browser to hang. This was traced to the character conversion process in the browser and has been resolved with the addition of a check. | User Experience |
SR-D64945 | 534323 | Accessibility enhanced for multiselect | Aria attributes for multiselect items and container have been added to enhance accessibility. | User Experience |
SR-D65034 | 529565 | Check added for malformed query on F5 refresh | A 500 Internal Server Error occurred when F5 was clicked to refresh the screen. This was traced to a malformed URL that was missing the '?' before the query parameters, and has been resolved by adding a check in the pzpega_ui_dynamicContainer_lite js file replaceHistory method that will insert the question mark if it is not present. | User Experience |
SR-D65086 | 526596 | Harness context will be stored to handle on click executed outside of the Ajax Container | An exception was generated in the interaction portal on execution of a post-value action for the on-change event on a text-box in the service case: "Failed to find instance Work-Interaction-Research.EmailBodyRTE of type Rule-HTML-Section". This was traced to a condition where clicking outside of the Ajax Container context to trigger the change caused the Events code to execute the event in the active context when the active context had already been changed by clicking outside of the AC. To avoid this, the system will store the harness context in the event object using pega.ctxmgr.getContextByTarget(target) API. Additional changes were also made to handle the context switching in case of post value when the blur triggers a change in context. | User Experience |
SR-D65917 | 529627 | Cross-site scripting protection added to ClientDynamicData | Cross-site scripting protection has been added to various parameters in the pzClientDynamicData HTML rule. | User Experience |
SR-D66095 | 529706 | Cross-site scripting security added to Richtext Editor | A scenario where HTML objects could be copied and pasted into CKEditor and the click action modified to perform different actions was traced to Pega event attributes present in the rich-text editor content. This has been corrected by blacklisting Pega event attributes like data-click, etc. In | User Experience |
SR-D66436 | 529671 | Correct Value shown for Helper Text controls with labels | Helper Text sourced from a field value was displaying the field value's 'Translate From' value rather than the 'Translate to' value. Analysis showed that the 'title' attribute of the corresponding icon on the DOM was being populated differently depending on whether it was a control with labels (not working) or a caption on a checkbox control (worked as expected). To address this, a check has been added for datetime and checkbox controls to send fieldname as pyCaption and pyActionPrompt respectively instead of pyTooltip to resolve the value. | User Experience |
SR-D68277 | 541815 | Added logoff check for requestors | After upgrade, the error "java.lang.InterruptedException. Requester has been destroyed" was appearing in the logs. Investigation showed this was related to unregister requests being submitted after logoff, and has been resolved by updating the system to check for logout before sending unregister requests. | User Experience |
SR-D68311 | 535986 | Corrected table row highlighting on iPad | A table row was highlighted when clicked on an iPad in landscape view, but when the device was rotated to portrait view the row was not highlighted. This was traced to the background CSS overriding the selected style, and has been corrected by modifying py-responsive-overrides.css. | User Experience |
SR-D68776 | 535467 | Improved Timezone sync between operator setting and server | When the operator timezone was empty, it defaulted to America/New_York in client side code. To better sync client and server, changes have been made so that when an empty timezone is seen, the system will retrieve the timezone from the server configuration. | User Experience |
SR-D69818 | 533164 | Corrected Smart Info popup handling for hover away | The Smart Info pop up was intermittently not closing automatically on hover away. When it happened, a "box" appeared around the the smart info pop up and the "notch" was missing. This was caused by a timing issue in the javascript, and has been corrected by adding a time delay to attach the listener properly in smartinfojs. | User Experience |
SR-D71105 SR-D82298 |
532189 544631 |
Corrected error when using CharCounter in non-template mode | An error message was generated when trying to save a section with the TextArea's Display CharCounter set to True. This was traced to an error in the remaining character count span generation for non template mode and has been corrected. | User Experience |
SR-D71202 | 535408 | Corrected autocomplete results for parameterized RD in grid | An autocomplete included in a grid and configured with results display as 'List' where the source for the autocomplete was a parameterized report definition and the RD parameter was an associated property of autocomplete did not show any results. If the results display was changed from 'List' to 'Grid', it worked as expected. This has been resolved by adding a null check on rowdetail in the "replaceParamsTokens" method for autocomplete. | User Experience |
SR-D71355 | 537008 | Support added for dynamic CSS class reference in optimized grid | When using the property pyStatusWork in an optimized grid, it was not possible to set a color code for different work statuses. This worked on an unoptimized grid. This has been resolved with the introduction of a dynamic CSS feature. This control can be changed to an autogenerated control like "Formatted text" and apply color coding through classes. To use this, a property value must be specified in cell classes in the presentation tab of the table cell, and then populate each result of a data page with that property which contains some class value appropriate for status value. CSS must be written for the different classes (class name is stamped on <td> in markup). | User Experience |
SR-D71402 | 532331 | Localization added for Pega Call Login screen | Localization has been added to the label "Value can not be blank" on the Pega Call Login screen. | User Experience |
SR-D71450 SR-D76085 |
538101 541525 |
Corrected display of ">" in multiselect control | When using a Multiselect Property configured with a data page as a source, any value with symbol ">" displayed as > in the list the first time but displayed correctly after being selected. This was traced to the conversions being handled in the sectionResultMarkup of pzpega_control_multiselect for Cross-site scripting protection, and has been corrected. | User Experience |
SR-D71522 | 539323 | Radio button error resolved for scenario testing | When creating a scenario test case that selected a radio button and navigated the screen, it worked to complete a case and save the scenario test case in a rule set. However, attempting to then run the scenario test case stopped with the error message "Value cannot be blank" for the radio button even though the value "No" was captured for the button. This was traced to the firing of the change event, and the system has been updated so 'pega.u.d.setProperty' will only fire a click event on a selected radio button option. | User Experience |
SR-D71756 SR-D78019 |
533549 541193 |
Thread Cleanup error resolved | After upgrade, intermittent exception errors were being generated by the FreeClipboard activity when switching between applications. This was traced to specific use-case issues with Thread Cleanup, and has been resolved. | User Experience |
SR-D71944 | 543730 | Resolved data page loop in templatized UI | A Layout Group was configured with six dropdowns sourced to Parameterized datapages with "disable automatic refresh" unchecked; every next dropdown depended upon the previous property, and the previous property was sourced as parameter, and so on until last dropdown. When the value in the dropdowns changed, the section kept refreshing and the portal became unresponsive. This was traced to the combination of a Datapage as the source to the dropdown with "disable automatic refresh" unchecked and expression evaluation as well. Templatized UI has 'visible when' expressions for all the properties inside the top level page. Changing the first one fired refresh on the next one, and the next one's refresh fired the other drop down refresh until it became recursive. This did not occur in non-templatized UI as it does not have expression IDs and there are no recursive calls. This issue has been corrected by modifying how the temporary mapping is populated by the reloadCells API in Expression Evaluator to prevent unwanted cell refreshes. |
User Experience |
SR-D72121 | 536409 | Currency Control accepts value on PostValue action set | Currency control in the section was sourced by a decimal property. Irrespective of the value entered, the validation triggered the message "entered value is not a decimal value" and did not allow user to proceed. Investigation showed than on getting the server response for post value action, the target element was updated with the response value when it should be skipped for currency control. To resolve this, an additional check for attribute: data-formatting has been added to the textInput control so when action PostValue is configured on Currency control and there is a change of value, the system will skip replacing the value with formatted value. | User Experience |
SR-D73260 | 536890 | Multiselect control support for offline-enabled iOS app | After a custom mobile application for iOS was built and was running on iPad for an offline-enabled user adding a multiselect control into a section as part a flow caused the screen to hang when a save or submit was performed. This has been resolved by enhancing support for offline multiselect submit with the addition of pzpega_ui_template_multiselect_capsule to offline static bundle. | User Experience |
SR-D73510 SR-D80223 |
538663 542922 |
Cross-site scripting filtering for ActionStringID | Cross-site scripting filter logic has been added to the ActionStringID function. | User Experience |
SR-D73847 | 536162 | Added exception handler for URL decode error | After logging in to Pega Deployment Manager, clicking Users -> People in the left navigation panel resulted ArrayIndexOutOfBoundsException. This was traced to an incomplete trailing escape (%) pattern and has been resolved by adding checks and exception handling for incomplete data from the browser. | User Experience |
SR-D74057 | 540060 | Updated aria handling for Dynamic Layout Group 'Accordion' | The Dynamic Layout Group display type 'Accordion' was not getting initialized properly on the browser developer inspector. This was traced to the aria-selected attribute set to always be true, and has been resolved by adding logic to set and unset aria- selected only on the active tab. When the tab is not active, then aria-selected will be false. | User Experience |
SR-D74165 | 537513 | DateRange clear button localized | Localization has been added to the 'clear' button in DateRange. | User Experience |
SR-D74704 | 535941 | Section and navigation rule localization added | Localization has been added for sections and navigation rules that include some of the out-of-the-box rules like Locked and Get help. | User Experience |
SR-D75205 | 543566 | Refresh with DT or pre-activity added to dirty pop up check | Given a button which when clicked launched a data transform to set a few properties on the UI followed by a section refresh, a dirty warning popup did not appear when closing the work object even though the property changed via the refresh section. This has been resolved with an additional condition in the dirty pop up check to handle a refresh section using a DT or pre-activity. | User Experience |
SR-D76826 | 543095 | Corrected SmartInfo header text overlap with close icon | SmartInfo header text was not consistent in being wrapped to the next line, and when it did not wrap it was overlapping with the close icon. This was traced to the method used for applying the inline style to SmartInfo's header div by getting the body div's offsetWidth. In working scenarios, the body div's width has fractional portion (ex. 368.188px) and offsetWidth returns a rounded number like 368px in this case. This resulted in the header content not fitting in single line because it exceeded the space it was given, and wrapping resulted. In the non-working scenario, the body div's width did not have a fractional portion and therefore matched offsetWidth, meaning the header content fit to single line and overlapped the close icon. To resolve this, SmartInfo Header Div has been updated to be always be slightly less than the SmartInfo Body div. | User Experience |
SR-D80462 | 542512 | SmartInfo styling retained | After configuring some text in the paragraph rule for Smart Info, Header text and Dismiss on Mouse Out check box configurations were not retained when the configuration was reopened. This has been corrected. | User Experience |
SR-D81779 | 543856 | Logic added to prevent refresh on enter when no action is configured | After configuring a text input followed by an icon with display SmartInfo for click action, switching focus to the text input again after displaying the SmartInfo and hitting enter invoked the refresh harness even though no action was configured for the text input. This has been resolved by updating 'pzpega_ui_events.js' -> keyDownHandler() with logic to call preventDefault() based on certain conditions. | User Experience |