Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.3.6 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-161463 | 638000 | Case Dependency corrected for different access groups | Creating a queue item as part of the case dependency was not working as expected when the access groups of the dependent cases were different. Investigation showed that in this scenario, the logic was looping differently and the DependencyList page in pxCheckFlowDependencies was getting removed. To resolve this, the DependencyList page has been moved so it is processed inside the DependencyList.pxResults loop. | Case Management |
INC-163154 | 638097 | Code updated for bulk actions buttons | After upgrade, hovering over the "Filter case" button in pzBullkUpdate and the "Create" and "Clear" buttons in pzBulkAddActions caused them to disappear. The warning "This button generates markup that was used to support the older browsers. It is recommended that you update it to the newer markup" was shown, and an update code button appeared. Some custom rules exhibited the same behavior initially, but worked as expected after updating the code and saving them. This has been resolved by updating the buttons in pzBulkUpdate and pzAddBulkActions with the latest UI technologies used for button control codes. | Case Management |
INC-164413 | 636125 | Updated timestamp handling for duplicate key issue with PyCompleteAutomation | Occasionally a robot failed to complete a case due to a duplicate key exception. This was an issue with the History record creation due to duplicate key erlated to the timestamp, and has been resolved by updating the timestamp handling so that the REST API will use 'getCurrentTimeStampUnique' and for other cases 'pxGetCurrentTimeStampThreadUnique' will be used. | Case Management |
INC-172485 | 649053 | Check added for WorkParty property to catch changes | After configuring a send email shape to send email to work parties, proceeding through the flow without work parties and then triggering the send email shape and creating the Fix correspondence assignment worked as expected. If the work party details were later updated and the send email shape was triggered again for the Fix correspondence assignment, the error message "No role defined to work object" appeared. This was an issue with the handling of the email flow the second time through: PyCorrPage.pyCorrPartyRole did not have the work object party details which were added to the work object after the fix correspondence assignment was created, and SendSimpleEmail was not designed to handle the email that needs to be retried during the FixCorrespondence flow call. To resolve this, the system will check whether the pyWorkParty property exists prior to calling the PartyCorrPreferences HTML rule. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.3.6
Conversational Channels
8.3.6 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-147654 | 642186 | Updates to displaying embedded images in cases | Sending an email with an embedded image to the email ID associated with the email listener successfully created the interaction case, but the embedded image was not displayed when the case was opened from the work-basket. A rule-not found exception was seen in the tracer for pyGetImageDisplay, the rule responsible for displaying the images in the ET pane. Investigation showed that when URLObfuscation was turned on, the decryption of the URL was not successful because "&" had been encoded to '& amp;'. This has been resolved by calling the activity pyGetImageForDisplay using URLMapping instead. An additional issue was seen with displaying images in the email interaction pane where the additional empty new lines moved the image outside the intended place. This was traced to a customization for the reply area which used the pyHighlightedMessage property and converted newlines to br tags even in HTML mode. To resolve this, pyHighlightedMessage has ben modified to convert newlines to br tags only if the mode is plain text. | Conversational Channels |
INC-152776 | 621243 | Check added for HTML and linefeed combined in email | In the Interaction right hand pane Email triage widget, additional line breaks were seen when displaying email message data that contained table tags. This was a missed use case for email which contains both HTML and '\n', which resulted in the system replacing '\n' with < / br >. This has been resolved by adding a check whether the content has HTML tags which will avoid the replacement. | Conversational Channels |
INC-165188 | 635774 | Third-party links allowed to pass target attribute in anchor | Attempting to connect to Docusign, a third party application, via Email in an interaction portal was not working, and the error "account.docusign.com refused to connect" appeared. This was caused by the HTML data being sanitized so the attribute 'target' was not allowed to pass and the application could not open in a new tab. To resolve this, an update has been made that will allow the target attribute for an anchor tag. | Conversational Channels |
Data Integration
8.3.6 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-142831 | 605475 | Corrected Outlook web inline image handling | Outlook web was not able to render inline images and instead added them as external attachments. Investigation showed inline images were not being rendered properly in Outlook web due to the disposition not being set. This has been corrected. | Data Integration |
INC-143668 | 617486 | Performance improvements for Attachment Migration Utility | The Attachment Migration Utility was showing a zero count for attachments in the Pega Database. This was traced to the underlying report definition that retrieves data for the Attachment Migration Utility timing out, and has been resolved by updating the activities to improve performance for applications having a large number of attachments without customization. | Data Integration |
INC-143908 | 606548 | Data Page Save correct in batch mode | After configuring a List type savable Data Page with save activity in Code-Pega-List, the save data page was triggered from utility of flow from the queue processor to handle queueing 10k data items and creating 10k work objects. When this was run, a field dpClassName was being changed by different threads in DataPageSaverImpl.java. This has been resolved by making the class DataPageSaverImpl.java stateless to ensure thread safety. | Data Integration |
INC-144387 | 605341 | Support added for allow list for LaxRedirectStrategy | When using Connect REST with POST to access a third-party service deployed on multiple nodes, the load balancer sometimes replied 302 with Location header. The ability to allow the REST connector to automatically follow these redirects even in the case of POST messages is supported by Apache http client via LaxRedirectStrategy, but REST Connectors need both rule and engine enhancements to allow for this. To support this use, an allow list has been implemted for hostnames. This will allow the connector to be configured to follow the LaxRedirectStrategy only when the hostname of the redirect location is in the allow list. The default will continue to block the redirect. | Data Integration |
INC-144913 | 607993 | Handling added for unknown ProducerID exception | An "UnknownProducerIdException" was seen in the PegaRULES and Kafka broker logs for Stream services. This exception is raised by the broker if it can not locate the producer metadata associated with the producerId in question. This could happen if, for example, the producer's records were deleted because their retention time had elapsed. Once the last records of the producerId are removed, the producer's metadata is removed from the broker and future attempts to append additional metadata will return this exception. To resolve this, a new producer will be used if the old one is unknown. | Data Integration |
INC-145756 INC-149187 |
619292 622484 |
Logging for MultiNodeSynchronize lock attempts changed from error to warn | The File Listener was logging numerous errors stating "Unable to establish MultiNodeSynchronize lock while trying to determine if listener is enabled for this node". Handling has been previously established for error cases when the Listener is unable to establish a MultiNodeSynchronize lock, but this condition continued to be logged as an error even though it was not related to any failures in functionality. To resolve the logging issue, the logger level has been changed from ERROR to WARN. | Data Integration |
INC-146610 | 614421 | MimeTypeHandler added for cloud downloads on mobile | When using the Pega cloud storage repository (Application -> Integration -> Content Storage) with the Google Chrome browser on an android device, it was possible to upload attachments but re-downloading the attachments failed. Investigation showed that this was due to the content-type appearing as application/* so Chrome on mobile was not able to identify the file type. This was a missed use-case for returnFileForDownload(), and has been resolved by setting the system to use MimeTypeHandler for getting the content type. | Data Integration |
INC-150038 | 614827 | Data Type local data storage snapshot history updated | When a History Class Data object was created, two snapshots were made - one with value and another with no value. This was traced to a 'when' condition that evaluated whether to add history when deleting a record from records editor, and this issue has been addressed by removing the condition as the history-add step takes care of checking if there is a dedicated table or not. | Data Integration |
INC-150610 | 627426 | Argument number exception handled for SERVICES-PAL log configuration | An issue with being unable to configure the SERVICES-PAL log file has been resolved by adding handling for an unlogged "wrong number of arguments" exception. | Data Integration |
INC-152057 | 621209 | S3 attachment migration handles LInk-Attachment with multiple instances | After S3 attachment migration, some attachments were intermittently not opening and displaying an error relating to being unable to load the file. Investigation showed that the attachments that failed to open did not have a pxStorageType tag in the XML of the work item. After the migration is done, the corresponding Data-WorkAttach-File and Link-Attachment instances are updated to point them to the repository. In this case, multiple LInk-Attachment instances were pointing to the same Data-WorkAttach-File instances, so only one Link-Attachment was updated and all of the other instances pointing to the same Data-WorkAttach-File instance were rendered unusable. While there was a workaround of manually updating the storage type in the database, this has been resolved by updating "pzgetattachmentcontent","pzupdatesourcereferences", and "pzuploadcontenttoexternalstorage" to check whether attachment is already migrated or not using the boolean parameter "isAttachmentAlreadyMigrated" to ensure all of the other Link-Attachment instances for a particular attachment are updated. If a migration was done and all Data-WorkAttach-File instances are pointing to a repository with some Link-Attachment instances not updated, those will be updated by running the migration again. | Data Integration |
INC-155732 | 619482 | REST connector creation errors resolved | Attempting to create REST Connectors via the dev studio wizard using live endpoint invocation as "Add a REST response" was failing with a java.util.LinkedList error. This had a workaround of either running the REST wizard with file upload samples or configuring them directly on the rule form. In addition, REST Connectors were not executing if both the DEBUG level logging was turned on and the request had no headers, which had a workaround of using any other logging level (INFO, ERROR). These issues have been resolved by updating the system such that pyResponseHeaders are populated appropriately, and if there are no headers in the request, the system will not try to remove the trailing comma that would have been introduced in the oLog message. | Data Integration |
INC-157691 | 630398 | Traffic handling added for offline pod condition | If one of the pods in a cluster went down and failed to restart by itself due to Hazelcast Cluster rejoining issues, there were intermittent issues of non-availability of the system. Investigation showed this was due to traffic being routed to the broken pod because the health check returned a false positive. This has been resolved by adding an update to return failed status when the exception "java.lang.IllegalStateException: Cluster has not started or is not fully initialized." is encountered. | Data Integration |
INC-158045 INC-168334 INC-155822 |
6464808 648372 618267 |
Locking added to avoid null pointer error for auto-populate property | After configuring the auto populate property "OrgProduct" which referred to a data page, the system experiencing heavy load led to the property not getting properly initialized. This resulted in a WrongModeException and NullPointerException. To resolve this, the system has been updated to lock the requestor when Queue Processors execute their activity. This will prevent race conditions and concurrent modifications if other threads are accessing the same requestor. | Data Integration |
INC-161952 | 645671 | Race condition resolved for input/output pipe streams | Writing to S3 using file data set was failing with the error "Exception occurred while uploading file". The system was relying on PipedInputStream for getting the data from the file while uploading, which needs to be connected to PipedOutputStream which holds the data to be uploaded. Investigation showed a race condition was occurring where for some use cases the reading of inputStream was happening before the connection of I/P and O/P streams, resulting in a "Pipe not connected" error. This has been resolved. | Data Integration |
INC-162987 | 641749 | XSS protections updated for SOAP WSDL | XSS protections have been updated for reading WSDL nodes. | Data Integration |
INC-163469 | 645952 | Agent Schedule "Processed On" updated to allow extended schedule dates | When scheduling or creating a queue entry in System-Queue-DefaultEntry using the Queue-For-Agent method in an activity, setting a value for "MinimumAgeForProcessing" of more than 24 days was passed as '2.074e+9' (the value in milliseconds). Because the parameter is interpreted as an integer value, this number caused an overflow Integer.MAX_VALUE error that then returned the incorrect value of 0 and events ended up scheduled for the current day. The queue item was created correctly when "MinimumAgeForProcessing" was less than or equal to 24 days. This has been resolved by updating the logic for reading the value. | Data Integration |
INC-163863 | 632425 | Monthly agents run correctly on non-English locales | Nodes with non-English locales were not starting when using an Agent with a monthly execution pattern. This was due to incorrect handling of the user locale, and has been resolved. | Data Integration |
INC-164472 | 635112 | Performance improvements for archiving and purging | Archiving and purging jobs were not working in Prod. Investigation showed this was caused by the system timing out. To resolve this, improvements have been made to purging by batching the deletions and refactoring the Where condition to simplify the complex expression queries that determine the cases to be archived. | Data Integration |
INC-166498 | 637350 | Locking and classmap improvements | Threads were getting stuck inside classMap and tableInformationMap, causing nodes to go down. This was traced to issues with class map performance and locking, and has been resolved by replacing the lock library with a newer version and refactoring the tableInformationMapImpl class to use a concurrent hashmap instead. | Data Integration |
INC-166498 | 637054 | Performance improvements for sites with a large number of tables | Performance impacts were seen when there were a very large number of tables in the database and the cluster/node persistence jobs were running. This was traced to the volume of metadata / schema introspection queries fired from the pyPersistNodeState and pyPersistClusterState jobs along with the Classmap cache invalidation / lookup queries, and has been resolved by improving the code to avoid database introspection when the current number of tables is greater than a maximum value. | Data Integration |
INC-166631 | 637021 | Optimizing helper class enhanced to handle external databases | Running a BIX extract that included a manifest for a target database was resulting in a null pointer exception for the manifest extraction. Attempting to generate the DDL for the manifest table also failed. This was traced to an issue with the helper class using a hardcoded default database for forming the queries, causing it to ignore the DB config/DADN/prconfig for the Oracle database and form a query using the PegaRules' database credentials. This only occurred when trying to do external database operations on a different DB platform; Oracle PegaRules worked as expected with an Oracle external DB and Postgres Pegarules worked with a Postgres external DB, but mixing Postgres PegaRules and an Oracle external DB would result in the null pointer error. To resolve this, the helper class has been enhanced to work with external databases by passing the database name as a parameter so it will properly calculate the query based on the type of target. The default for 'database/oracle/allowOptimization' is set to false: additional database privileges must be added or some configurations must be updated to provide the information needed in lieu of the privileges before making use of these optimizations. In addition, an error in the name of the class has also been corrected and is now available as PerformanceHelper rather than the previous "PerformaneHelper". | Data Integration |
INC-169764 | 645803 | Decision table query performance improvements | Severe latency was seen after upgrade, and it was not possible to save business rule changes. This was traced to an issue with the decision rule being treated as a custom rule, and has been resolved by inserting a check. In addition, optimization has been added for queries on the pr_sys_decchg table. | Data Integration |
INC-170841 | 646186 | Resolved PRQueueLockException | A Class Queue not found exception resulted when an SLA was deleted on the same transaction where it was created when deferred save was used. This was an inadvertent side effect of work done on the QueueManager implementation to invalidate previously deferred operations for item and schedule removal, and has been resolved by clearing the processing state for PRQueueLockException when an item reservation fails. | Data Integration |
Decision Management
8.3.6 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-143121 | 610732 | Timeout for loading predictors made configurable | When using an extremely large number of predictors, the Report definition pzADMPredictorsFilter was suffering timeouts due to the time for loading predictors from the database exceeding the time threshold allowed. This has been resolved by marking the rule as editable to allow custom setting of the threshold according to need. | Decision Management |
INC-148899 | 615702 | Adaptive models update correctly | Some models had the recorded responses column updated, but the models (number of Positive, Negative and Processed Responses) were not updated. Investigation showed that deleting the modelRuleConfiguration through the stateManager/client did not delete modelFactories related to the configuration. If a new configuration came in with a different algorithm, the update issue occurred. This has been resolved by reseting the configuration according to its factory in that specific case. | Decision Management |
INC-157629 | 626633 | Duplicate key exception resolved for adaptive model | During the model snapshot update, a DuplicateKeyException was generated while trying to insert a record in to the predictor table. This did not affect the model's learning, but did appear ion the model monitoring report. This was traced to a local scenario of having the same outcome values defined on the model with different cases (Accept and accept). All predictors used in an Adaptive model are inserted into the model monitoring tables as a part of the monitoring job: because the monitoring tables are not case sensitive, this lead to a unique constraint exception since there were multiple IH predictors with the same name. To resolve this, validation has been added which will skip adding duplicates from new responses. | Decision Management |
INC-160331 | 628710 | ML model continue tag error changed to debug logging | Log entries were seen indicating "The continue tag is found without a start tag for window Line1 1234567890 in text". This appeared to be coming from the MLCommand java class. Investigation showed this occurred when the ML model believed a portion of the text (token) was a continuation of the entity because it has not found the starting part of the entity. This situation is not currently treated as a valid output, so an update has been made to change the logging level from error to debug for this case. | Decision Management |
Low-Code Application Development
8.3.6 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-146098 | 633722 | Keyboard shortcuts work in Decision Trees | Keyboard short cuts in Decision Trees used to copy/paste by holding ctrl button in Decision Trees were not working. This was an unintended side effect related to changing non-auto grid to an auto-generated hierarchical table to make the Decision tree rule form multi-browser compatible, and has been resolved by adding cut/copy/paste/insert-after/insert-before functionality to the decision tree context menu. | Low-code app development |
INC-151662 | 626576 | Handling added for application which includes production ruleset | When creating the Email channel or Webchat channel, the Text Analyzer and its respective class (Data-Decision-Request-MCP-WebChat-xxxxx) was being saved in the ruleset of the built-on application while there were rulesets open in the top application. This was a missed use case, and has been resolved by updating the logic to account for the scenario where an application includes a production ruleset. |
Low-code app development |
INC-164944 | 636290 | Logic updated to handle decision trees over 64k | An exception was thrown when decision trees reached the 64K size limit. This has been resolved by modifying the logic in the DecisiontableMethodBody Rule-Utility-Function where the split size PropRowLimit is based on the number of columns. | Low-code app development |
INC-169112 | 647080 | Decision Trees refresh after updating a new row | Updating a decision tree row did not display the updated data until after save and refresh. This was traced to the first row not meeting the condition for refresh on change because the first row was created as part of the decision tree creation, so the data was not persisted and the update was not registered as a change. This has been resolved by adding explicit handling for the first row to persist its expression string and show the data as entered. | Low-code app development |
Mobile
8.3.6 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-143036 | 599191 | SurveyPage loads when ruleset is locked | When the ruleset containing the survey rules was locked D_pzSurveyPage did not load and errors were generated. Investigation showed that if the flow was in a locked version, the PopulateShapeNodesFromFlowData activity did not call EvaluateConnectorState, causing the mapping of the transitions for connectors to fail in the activity MapBranchShapeConnectors. This has been resolved. | Mobile |
INC-153805 | 627967 | Mobile app language remains consistent after data sync | When using a Field Service Mobile App where the locale of all workers was set to nl_NL, the UI was intermittently flipping from NL to EN and and back again. This was traced to the locale of the requestor (field worker) being lost during synchronization of the mobile app data to the server, causing the UI to fall back to the default value of EN. This has been resolved by ensuring the requestor always uses the chosen locale for the operator. | Mobile |
INC-155752 | 622771 | Hidden Question pages and answers will be saved to database | After a question page was shown and some values were entered, going back to the question and reverting an option caused the question page to not be visible, but the answer values persisted in the clipboard and were eventually saved into the database. This was a missed use case for Question page smart shapes, and has been resolved by updating the pzSetQuestionPageParams data transform so that whenever a question page is evaluated to either to show/hide, when the question page visibility is set to false and the pyClearAnswerValuesWhenQPHidden 'when' rule is overridden, the corresponding values will be wiped from the clipboard and only the required values will be saved to the database. However, please note this is not supported for branching logic and visibility conditions should be used instead. | Mobile |
INC-157217 | 631969 | Field Service mobile refresh timing updated | A configuration in the Field Service mobile app used to select and map data from a modal section to a wrapper section used "pega.fsm.mobileutil.reloadSection" to refresh the wrapper section and make the data visible after the mapping. If the refresh was performed after the initial login, the refresh was done on only a portion of the screen and resulted in incorrect data being shown to the user. However, continuing to fill in the section and then saving and reopening the task displayed the correct results. The issue was reproducible only on the first attempt after clearing cache/date: subsequent uses refreshed properly. This was traced to the timing of the configured actions, which caused the refreshSection action to be triggered before the runDataTransform action execution was completed. This has been resolved by adding code that will pause the action queue until the runDataTransform action completed. | Mobile |
INC-168935 | 645393 | CalendarGadget updated to display events in Saudi locale | When using the pxCalendar section with the locale setting ar_SA, the calendar was correctly converted to a Saudi calendar but the events which were showing in the English version of the calendar were not showing up in in the Saudi Calendar. This was caused by the CalendarGadget page not populating properly due to the localized Hijri calendar failing a datetime check that was looking for a Gregorian calendar with time in GMT format, and has been resolved by updating the when rule "pzShouldDisplayEvent" to use the proper function for the localized calendar. | Mobile |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.3.6
Reporting
8.3.6 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-135719 | 580692 | Corrected reference exception for filter on a grid sourced from a parameterized report definition | An Invalid Reference Exception was thrown after attempting to apply a filter on a grid sourced from a parameterized report definition. This was traced to work done to allow cross-scripting filters to allow filters to contain special characters, and has been resolved. | Reporting |
INC-149143 | 613140 | Report category error messages made accessible | In order to improve accessibility while creating new reports, labels have been added to the error messages on the category name field. | Reporting |
INC-151568 | 610219 | Handling added for comma value in FusionCharts XML | After creating a Summary Report through the report browser and adding that report to the Dashboard, clicking on the report to drill down generated the error "Can't open the rule with the specified keys". Investigation showed that if a category or series in a Report Definition chart contained a comma, the drilldown would not work because of an incorrect pyclassname being passed. This was traced to the use of XML to configure the chart: the FusionCharts third-party library parses the link XML incorrectly and splits JS arguments at any comma. This was a missed use case for having a comma in the name, and has been resolved by adding encoding for the comma value in pzMultiSeriesData FusionCharts XML rule. Then this will be decoded in the drilldown JS APIs pzPega_chart_legacydrilldown and pega_report_summary. | Reporting |
INC-152800 | 611747 | Reports filtering made accessible | In order to ensure accessibility, titles and helper texts have been added to the text fields and checkboxes that appear in the Edit Filter non-modal window after a 'Filtered By' value is selected on the My Reports page. | Reporting |
INC-157974 | 621964 | Summary Report collapsible sections made accessible | In order to improve accessibility, the rules 'RRDataSummaryGeneration' and 'pzDisplayGroupNodeVertical' have been updated so the clickable expand icons in summary reports will append the value of the current group when setting the text "Click to expand or collapse". This will allow JAWS to uniquely identify exactly what will be expanded or collapsed. | Reporting |
INC-158473 | 626276 | BLOB decryption API updated for greater flexibility | A BIX extraction issue occurred after the class had enabled BLOB Encryption. The errors indicated the BLOB had been persisted in an incorrect stage, causing the extraction of the single item to never complete even though some CSV file was created. This was traced to the API used to read the encrypted BLOB, DatabaseUtilsCommonImpl.getStreamBytes, which had the limitation of decrypting only when a Site-specific cipher existed. To resolve this, the system has been modified to use a different API which works for all encryption modes, PageDatabaseMapperImpl.getStreamBytes(). | Reporting |
INC-162649 | 639397 | DSS added for handling missing attachments | When an S3 repository was configured as storage, some cases were not coming up in search and exception errors were seen in logs for a deleted attachment after every system restart/re-indexing of the search. Investigation showed these case objects were in the broken queue for pyFTSIncrementalIndexer due to a null pointer error encountered when indexing the attachment, and that the attachments were available in the repository but could not be read from the attachment repository during indexing. To resolve this, a new DSS setting has been added which allows selecting one of two behaviors: - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = true : broken item is generated, but with a meaningful error message. This is the default behavior - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = false: case is indexed, but without the problematic attachment. Error message is printed out to the logs. |
Reporting |
INC-162968 | 632476 | Extra Text seen in edit removed from Report Browser | Extra Text reading 'BBBBBC' was appearing when editing Reports within Report Browser. This was due to extraneous test text input present within 'RRDataListHeader' HTML Rule, and this has now been removed. | Reporting |
INC-163160 | 631476 | Updated filter logic for filtering on a DateTime column | When a class join was used in a report definition, the error "The Filter Logic used in the report is invalid" appeared while filtering rows of a report definition results on a DateTime column. This was a missed use case, and has been resolved by modifying pzGridSortPaginate to convert the data type value into the proper casing. | Reporting |
INC-169055 | 646670 | Performance improvements for database queries and archiving | In order to improve the performance of database queries, repetitive unnecessary database calls have been removed, archival queries have been simplified, and diagnostic metrics were added. Optional batch requestors have been added to all archival services with their own DSS settings to allow processing more cases in parallel. It is recommended to create 2 additional indexes to help with the archival process. The indexes will be on: pegadata.pr_metadata (pyisparent, pyobjclass, pyarchivestatus) INCLUDE (pyinskey); pegadata.pr_metadata (pyisparent, pyarchivestatus) INCLUDE (pyinskey); |
Reporting |
SR-D91660 | 555722 | Updated document ID handling for deleting indexes | When trying to delete a document for index name "work*", intermittent errors were seen indicating an invalid index name or index does not exist value. This has been resolved by updating the handling for delete by ID. | Reporting |
Security
8.3.6 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-155276 | 622816 | Null check added for step page | After creating and adding new Access Roles and application 'Access When' to the privileges instead of Production level, during run time the error "runtime.IndeterminateConditionalException: Trying to evaluate Rule-Access-When conditions L:IsProdAccess when there is no page to evaluate them against" appeared for the specific privileges. This was traced to a missed use case where the system falls back to the step page if the page for evaluating the 'when' condition is null, which did not account for scenarios where the step page can be null. To resolve this, a null check has been added which will fetch the primary page if the step page for the access 'when' condition is null. | Security |
INC-156647 | 626293 | Improved disconnected requestor cleanup for FieldService | A large number of requestors from FieldService with the status as 'Disconnected' were accumulating and causing performance issues. This was traced to the requestors not getting passivated due to users not logging out and new requestors being created for the same users next time, and was caused by the value of the DSS Initialization/PersistRequestor being set as "OnTimeout". When the DSS prconfig/timeout/browser/default is not configured, the default browser requestor timeout is 60 minutes. In this scenario, requestors were not passivating as the requestor passivation timeout was set to the refresh token lifetime for mobile users, which was very large and overwrote the DSS value. This has been resolved by removing the code which set the passivation timeout to the OAuth2 refresh token lifetime. | Security |
System Administration
8.3.6 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-167311 | 646477 | Updated upgrade handling for migrating work objects | After upgrading from Pega 6.2 to 8.3, the work migrated work objects were missing SLAs due to missed entries in the assignment tables (PC_ASSIGN_WORKLIST/ PC_ASSIGN_WORKBASKET) . The SLA was firing, but the processing failed due to the fact the runtime could not resolve a 'AddHistoryPage' library function. In this case, multiple upgrades of the application dating back to Pega 4 resulted in the runtime context containing older ruleset versions in higher ruleset versions, hiding the underlying Pega 8 version of the rule. For releases prior to Pega 7.3, Rule-Application was stored in pr4_rule and will be migrated to pr4_rule_application during upgrades. However, since Context Upgrade is run before Optimize Newly Exposed Columns, the pyDependsOnName won't always be populated. To resolve this, the system will filter based on the value in the blob rather than the exposed column so there will be a value regardless of the upgrade-from version. | System Administration |
INC-172675 | 649451 | Configuration added for extending queue processor timeout | Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds. | System Administration |
User Experience
8.3.6 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-136563 | 607417 | Tenant Switching updated | When working on new “tenant switching” implementations in a multi-tenant environment, the API itself seemed to be working as expected (case details from another tenant were shown correctly in review mode), but clicking on the assignment unexpectedly opened the case in a new window that contained the same review view of the case rather than the perform view. Clicking the assignment link again caused yet another review window to open with the same issue, over and over. This has been resolved by adding a UI-side update to send the requests on proper sub-domain URL instead of using the parent domain, and by ensuring the document threads are properly deleted for multitenant usecases. | User Experience |
INC-137875 | 608101 | Update for special characters in operator name | Handling has been added for encoding an operator full name field which contains special characters. | User Experience |
INC-139966 | 606840 | JAWS announces popup error message | When a form is submitted without giving value to required field, a browser pop up appears. The expected behavior is that the screen reader (JAWS) should move the focus to the field that has error and read the error message However, JAWS was not announcing the error "Value cannot be blank". This was traced to a scenario where if pega.u.d.fieldErrorType === "ERRORTEXT" is true, the class on the span within the error div will be set to "inputSpans", and this resulted in the return of an empty array for document.querySelectorAll("span.iconError.dynamic-icon-error"). To resolve this, support has been added for the "inputSpans" class. | User Experience |
INC-144522 | 612320 | Portal primarythread copied to workprocessing thread to establish proper class | Attempting to add a new item/row in a table configured in a modal dialog in the home page of the Cosmos portal was not working, and the error "Section 'TestSection' execution error on page 'pyWorkPage' of class 'CosmosApp-Work-TestCaseType'. : For input string: "" appeared. This was a missed use case for pyPortalHarness, and was caused by the primarypage not getting copied to the workprocessing thread which led to some actions failing as classless. This has been resolved. | User Experience |
INC-145170 | 625176 | Screenflow returns in perform mode when validation fails | After upgrade within v8.3, a screen flow with a customized harness saved-as from a TabbedScreenFlow harness and configured with client side validation disabled was displaying a blank white screen if validations failed when moving from one tab to another tab. This was traced to a try catch block in FormNavigation Rule, and has been resolved by adding a reset mode. | User Experience |
INC-147245 | 612865 | Expand Pane icon responds to enter key when using JAWS | In an Operator ID rule in Dev Studio, pressing the Enter key when focused on an Access Group expand icon caused the focus on the page to move to the top of the Contact Information frame (top left corner of the Frame). The only way to use the enter key to expand the pane without the refocus was to tab to the arrow icon and then tab a second time before pressing enter. This was traced to the expand caret icon being focussed twice due to the tabIndex for both the TD and SPAN elements holding the caret icon: TD had a focus element for accessibility of the grid, and SPAN had it for the expand pane accessibility. This has been resolved by adding a check condition before adding tabIndex to the first cell in the Grid. | User Experience |
INC-150074 | 613069 | Corrected sorting icon accessibility when grid size is not fixed | After configuring a table and checking the boxes for Filtering and Sorting and unchecking the fixed (pixel) size grid box, tabbing in to the grid/table using the keyboard did not bring the focus to the sorting icon /header, but instead the focus went to the filter icon. If filter was unchecked and sorting was checked, the focus went to the first row of the table. This was traced to the column headers missing the tabindex attribute when the column headers were not fixed. When the column headers were fixed, tabindex =0 was present for the column header and the sort icon was accessible. This was traced to the Freeze Header value not being updated according to Fixed Size value because it was not a fixed size grid. To resolve this, an extra condition has been added in GenerateCellContent Rule-Utility-Function to be used while checking the Freeze Header. | User Experience |
INC-150872 | 613077 | JAWS reads the tab name and the close icon details seperately | By default, all currently opened Work Objects Close icons have the label "Close Tab", but when moving across tabs while using the JAWS screen reader, reaching a work object tab caused JAWS to read the entire tab header as "S-123 close tab". In order to improve accessibility, aria-labels will be added while setting label to the tab so the header and close icon will be read separately. | User Experience |
INC-152283 | 626398 | Added handling for switching table context in a section | After configuring multiple tables in a section with row-editing on master-detail, opening the detail section of one of the tables and clicking inside it and then trying to open the details of another table generated the error "Can not render section'. The section would render correctly if the browser was refreshed. Investigation showed this was due to the new section opening in the wrong context, and the system has been updated to support this use case. | User Experience |
INC-152340 | 610908 | Scrollbar consistent on switching between grids in tabs | On switching between two grid tabs configured in a layout group of tabs, the scrollbars intermittently disappeared or doubled. This was traced to the initscrollbars function being called multiple times and adding hScrolldiv and vScrolldiv each time. To resolve this, the logic has been updated to recalculate the position style. | User Experience |
INC-154458 | 620210 | Calendar picker placement corrected for Ajax container | When using inline edit and clicking date picker, the calendar popover was displayed in a blank space away from the position of the date picker. This was due to a popover inside a screenlayout having scrolltop and scrollleft values added to the popover position; in the case of an Ajax container these values resulted in incorrect position of a popover. To resolve this, adding the scrolltop and scrollleft will be bypassed if the element where the popover is attached is inside a Ajax Container. | User Experience |
INC-154564 | 617349 | JAWS reads the table header and filter options separately | When table headers for a non-optimized table with filter options received focus in Google Chrome, JAWS read the header, sort and filter options all run together. This was due to a difference in the way JAWS reads headers in Chrome from the way it reads them in Microsoft Internet Explorer, and has been resolved. | User Experience |
INC-156826 | 625437 | Logic updated for adding new child/sibling to hierarchical paginated tree/grid | When using a hierarchical table with pagination enabled, navigating to the last page and attempting to add a new child or sibling produced unexpected results. Navigating to the last row, selecting child, and clicking 'add sibling' caused a new row to be added. Adding a child caused the child elements to be added on top instead of at the bottom. This was a missed use case for adding a child/sibling when using a paginated tree/tree grid, and has been resolved. | User Experience |
INC-156912 | 627486 | Updated accessibility for Rich Text Editor navigation in a modal dialog | When navigating through a Rich Text Editor while in a modal dialog, it was expected that once focus was brought to the RTE Toolbar (Alt+F10), pressing Escape on the keyboard would bring the focus back into the RTE text area and the cursor would appear. However, when this RTE was within a modal dialog, pressing Escape closed the modal dialog entirely. This has been resolved by updating the code to stop the Escape key event propagation from the RTE toolbar when in a modal dialog. | User Experience |
INC-157353 | 624010 | Handling added for autoclose of assignment in tabbed MDC | After configuring an Ajax container in a section using tabs and max doc defined as 8 with 'doClose' set after processing has been completed, finishing the assignment caused the work item tab to stop working. Checking the console showed a script error was being thrown. Investigation showed that when the doClose action was triggered and tried to find the activeTabs in MDC, the target element being fired was null. This has been resolved by adding a condition for the doClose to handle the combination of autoclose and tabbed MDC that will close the current Ajax container div before proceeding. | User Experience |
INC-157662 | 631998 | Accessibility updates added for images and icon controls | In order to improve accessibility, aria-hidden has been added to button and link controls for decorative images, and the alt attribute will be generated by the icon control only when the icon source is Image. The icon control has also been updated to set accessibility roles based the following: if actions are configured -> role=button if no actions are configured -> role=img if type is url/phone/email -> role=link |
User Experience |
INC-157737 | 631687 | Added ability to support multiple domains for users | Previously, the DSS setting MultiTenant/CrossTenant/DomainName supported just a single domain. In order to support multiple domains for internal and external users, an enhancement has been adde so that given two domain values provided as comma-separated values in “MultiTenant/CrossTenant/DomainName” DSS setting, pzSetCrossTenantDomain will determine the correct domain value using pxRequestor.pxReqServer. | User Experience |
INC-157776 | 633239 | Corrected layout issues with Dynamic Group layout | After loading a large number of tabs in Dynamic Group Layout (default), navigating to the last tab caused the right icon to be disabled on any of the 20+ tabs and the margin-top value increased from 0 to 24px. This has been resolved. | User Experience |
INC-157795 | 624671 | DateTime dropdown control will retain entry on validation error | For a Date Time control with display mode as dropdownlist, choosing just a month or a day from the dropdown and refreshing the section resulted in an invalid date validation and the field being set to the current date. Choosing the date from the calendar icon or filling in all three drop downs worked as expected. This has been resolved by updating the datetime control so that if a dropdown mode with property as type DATE has a validation error on refresh action, the user-entered data will show in the dropdown instead of the current date/time. | User Experience |
INC-157860 | 633946 | Corrected error message display in right-to-left locales | When using the standard report definition view in the Arabic (ar_AR) locale, error messages for a filter condition were displayed with an incorrect extended horizontal scroll bar with white space. This was traced to the legacy popover styling causing an issue with locales that display text from right to left, and has been resolved by setting the default overlay left to 0PX for these locales. | User Experience |
INC-159008 | 634767 | Resolved unregistered request for Dev Studio clipboard viewer | After upgrade, running a report in Dev Studio and then clicking to start the tracer or clipboard did not open, but instead generated the error "Unregistered request encountered." This has been resolved by adding a pySecureFeatures check in step1. | User Experience |
INC-164924 | 638913 | Serbia added to country codes list | The CountryCode for Serbia (SRB) has been added to the existing country codes. | User Experience |
INC-165468 | 642241 | Live UI option works with embedded iframe objects | When the LinkedIn gadget was enabled in utility or a YouTube video was embedded in an iframe, the live UI button was not working. This has been resolved by updating the implementation to use getFrameList to loop through frames and check the frameElement. | User Experience |
INC-167471 | 638870 | Resolved focus for new s-case | After creating an s-case by using the keyboard, the focus jumped to add task instead of newly added s-case page. This was traced to the 'if' condition in focusFirstElement method becoming true for all touchable devices including desktop with touch enabled, causing the focus method on the first element to not be executed. This has been resolved by adding an additional conditional to check whether the device has touch enabled and is a mobile device. | User Experience |
INC-167471 | 639257 | Touch Modal gets focus to be read by JAWS | A Modal on a touchscreen device was not being read by JAWS. This was an issue with the accessibility focus combined with the touch elements, and has been resolved by fixed by adding a check for touchable devices. | User Experience |