Pega Infinity™ includes an industry-standard release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.5 Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-119754 | 561522 | Corrected 'when' rule context for GetCaseDetails | The Pega REST API Get Method /cases{CaseID} failed if the Child Case was set with Manual instantiation using a 'when' rule. This was traced to the 'when' rule being resolved using @baseclass instead of the class of the case type, and has been resolved by updating the pzGetCaseDetails activity to evaluate the 'when' rule on the case page. | Case Management |
INC-120608 INC-128087 INC-129982 |
573000 572451 574345 |
Temporary case creation from Cosmos resolved | Creating a temporary case in Cosmos Portal was not working. Investigation showed that the pySkipCreateHarness and pyCreatesTemporaryObject properties were not populating properly on the D_StartingFlows data page, which was traced to the way openSelectedColumns API handles non-exposed columns. To resolve this, the system has been updated to use the openEngine API for opening starting flows if the pySkipNewHarness or pyCreatesTemporaryObject property values are null. | Case Management |
INC-121435 SR-D69081 |
563876 532301 |
Handling added for null requiredskillcount on assignment | If the property pxRequiredSkillCount was blank on an assignment when moved to a workbasket, it was never presented for Get Next Work. To resolve this, handling has been added which will change the null to 0 so the assignment is properly queued. | Case Management |
INC-122149 | 562784 | Corrected approval step task message | When a case progressed to the approval step, the task name did not properly appear as part of the "Please approve or reject this" message. In another scenario, a portal which supported locale switching was not translating "Please approve or reject this" when the locale was switched, but instead displayed the message in the original language. Investigation traced this to the pzInstructionsForApproval data transform storing the localized field value, causing it to persist inappropriately. This has been resolved. | Case Management |
INC-125610 SR-D84754 |
566497 548164 |
Resolved erroneous problem assignment error | If a user processed a work item while the SLA agent was also attempting to process it, it sometimes resulted in an assignment with the error: "Error: Flow Not At Task." In this scenario, an error message was displayed stating that "Assignment already completed" even though the assignment was not yet finished, causing confusion. Investigation showed that in cases where the success indicator was -28, the assignment was marked as problem assignment even though it was processed. To resolve this, the system has been updated to skip marking the assignment as a problem when the success indicator is -28. | Case Management |
INC-128921 | 571864 | Updated End User portal XSS handling | Additional XSS handling has been added to the End User portal. | Case Management |
INC-131025 | 573112 | CheckStorageForDuplicateFiles validation added | When two files were attached to case, attempting to delete one file and download the other one resulted in the error "Unable to get file from repository. There was a problem setting/connecting the file path or repository”, and an exception related to "There was an issue creating stream for the file.: Cannot find S3 object at Container" was generated. As repositories are not allowing file versioning, validation was not happening when multiple files with the same file name were uploaded. To resolve this, an enhancement has been made to perform validation in the pzCheckStorageForDuplicateFiles activity. | Case Management |
INC-131296 INC-131931 |
569577 573030 |
Updated duplicate file name handling for drag and drop | When files with the same name were attached with drag and drop, the files were being overridden and became visible to non-authorized users. This has been resolved by using the AppendUniqueIdToFileName parameter when using the pzMultiFilePath control which will append a unique ID to the fileName and pass it in the request along with the file data. | Case Management |
INC-131385 | 573452 | Swagger APIs updated | The Swagger File APIs have been updated to ensure swagger document files generated meet specifications for editor.swagger.io | Case Management |
SR-D64506 | 529334 | 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 | 533277 | 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-D68235 | 534782 | Stale WorkSearchPreference data cleared when switching apps | The D_pyWorkSearchPreferences data page data was not refreshing while switching between apps, causing stale data to be populated under the case search dropdown for all the applications after switching the application from one to another. This has been resolved by removing the D_pyWorkSearchPreferences data page as part of pzProcessApplicationSwitch. | Case Management |
SR-D72456 | 561118 | Added duplicate page handling for Bulk actions | Trying to resolve cases using Bulk Actions and Bulk Resolve resulted in the exception "Trying to save an invalid page. The cover open count is incorrect; it is -1". This was traced to duplicate pages available on the clipboard with same the insHandle. To resolve this, the pzUpdateAndDeleteAssignments activity has been updated to check for duplicate pages, then pick the right page which is not being served by the findPageByHandle engine API. | Case Management |
SR-D73536 | 538402 | FetchApplicationLogo modified to Filter by rule resolution | It was observed that the Report Definition rule "pzFetchApplicationLogo", referenced by Activity rule "pzLoadApplicationLogo", always returned the older version of the Binary File "webwb • pyapp-logo • svg" because it had been set to retrieve a maximum of one record and in this case the results were sorted in an order where the oldest record was at the top. As the Report Definition did not indicate any sorting, most DBMS were returning the results in no particular or predictable order. To resolve this, "Filter by rule resolution" has now been enabled for RD pzFetchApplicationLogo. | Case Management |
SR-D76291 | 547841 | Updated retry logic for S3 AddAttachmentFromEmail | When using the AddAttachmentFromEmail activity with S3 repositories, performing an obj-save on the data-workattach-file page executes a deferred save while also saving the file into the repository. if the data was inserted into S3 successfully but encountered an issue when saving the related data-work-attach-file page, the system was trying to call the save operation again. This tried to insert the duplicate attachment again to S3, causing an error on that side of the process. To resolve this, the duplicate Obj-Save functionality in AddAttachmentFromMail Activity has been removed. | Case Management |
SR-D79113 | 543722 | Updated DisplayAttachment to handle SIngleClick download from Case Worker portal | On using the script "pega.ui.HarnessActions.doAttachmentSingleClick" in the Worker portal to download attachments displayed within a screen flow, the entire application was hanging and no action was invoked even on clicking the Continue or Finish buttons of the screen flow. Whenever an attachment is downloaded using the script function pega.ui.HarnessActions.doAttachmentSingleClick() , an iframe is used and changetracker is called to communicate data between different iframes. However, the case worker portal is a single thread model while the manager and admin portals are multi threaded, which resulted in changetracker freezing on the worker portal. To resolve this, the DisplayAttachment HTML rule has been updated to build the necessary changeTrackerMap for the worker portal. | Case Management |
SR-D79805 | 547152 | Check added to set class for inheritance if Work- is not present | Bulk Action transfer was not working for Assignments from Data class. Investigation showed that when the interest page class inheritance did not contain Work-, flow action pyTransferAssignment was not able to render as it is present in Work- layer. To resolve this, a check has been added to the pyGetRelevantActions so that if the interest page class inheritance doesn't contain Work-, the case class will be set from the workobj page. | Case Management |
SR-D84480 | 546188 | FilterHistory decision tree used for audit log status | Attempting to use the “FilterHistory” decision tree in the work class to return value “false” for “pyCloseOpenAssignmentsOnResolution” to hide the “pyCloseOpenAssignmentsOnResolution” field value (“Unfinished assignments were cleaned up by the system after the completion.. ”) from history was not working as expected, and still returned the audit message. This was due to the system setting this AuditNote parameter within the “pzProcessResolutionStage” activity, where Param.UpdateHistory was set to true always. In order to support more flexibility, the Param.updateHistory paramter in step3 of the pzProcessResolutionStage activity will be set based on the FilterHistory decision tree. When set to false in FilterHistory decision tree, pyCloseOpenAssignmentsOnResolution will be set as false and audit will not be logged. | Case Management |
SR-D85664 | 559011 | Added handling for flow Status values over 32 characters | After upgrade, flows were throwing exceptions due to the 32 character limit for the Status field, causing issues for flows where the status on the case is determined dynamically based on value from expression builder. To resolve this, the limit has been removed on the property and a validate rule has been added that will only use the 32 character limit to check static plain text. | Case Management |
SR-D87898 | 552589 | SaveAttachment Activity in Data-WorkAttach-URL updated | A 'when' condition was not properly evaluated for Activity SaveAttachment (CL:Data-WorkAttach-URL ), causing the Next assignment screen to not be displayed. This has been resolved by modifying the handling of Page Names used as activity parameters to remove the use of the specific PageName "pyAttachmentPage" in the operation and make it generic to Primary in the SaveAttachment Activity of CL: Data-WorkAttach-URL. | Case Management |
SR-D88141 | 550009 | TemplateButton field correctly set read-only | When a control was added to a section using the DX API, a pyTemplateButton field was added to the XML definition of the section with read-only set to 'false'. This has been corrected so the pyTemplate Button field does not allow input. | Case Management |
SR-D92352 | 553617 | Completed onChange will reset FileInput value to null | When attaching a file using the "Select File" button, it was not possible to attach the same file after deleting it. Re-attaching the file worked as expected when using Drag and Drop. Investigation showed that the onchange event occurred only when the value of an element was changed, so in this case trying to attach the same file did not change the value of the element and did not fire the onchange. To resolve this, the value of FileInput in pzMultiFilePath Control will be set to null at the end of the onChange event so that an onChange event will be triggered next time even if the same file is added. | Case Management |
SR-D96254 | 555276 | ViewID parameter passed as part of DX API response payload for all application levels | When application level was set to '5' (Production), the DX API was configured to skip passing 'ViewID' parameter as part of response payload. This only applied to application level '5' and not to other levels. In order to support enhanced customization, the system has been modified to not consider production level and always pass 'viewID' parameter as part of DX API response payload. | Case Management |
SR-D97673 | 561503 | Assignment opens correctly in tabbed AJAX container | When opening a case in review mode and then clicking the assignment link, the assignment opened in a new browser window instead of opening in the tabbed AJAX container. This was due to the AJAX container being stateless: directly opening the assignment with href replaced the entire document. To resolve this, the "pega.desktop.openassignmnet" API will be used. | Case Management |
SR-D98336 | 558993 | V1 DX API response now includes "Label" or "Header Title" | When FlatList was opted to 'Full', the GET and PUT calls made to get the JSON response for an action did not return the header object information of that group. This has now been modified so the labels are returned in the V1 API response. | Case Management |
Cloud Services
There were no 8.5 Resolved Issues for Cloud Services
Conversational Channels
8.5 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-127591 | 564819 | isAuthenticated checks trimmed for Performance Improvement | In order to improve performance, a duplicate check of pxIsRepositoryAuthenticated has been removed from the Function Rule. | Conversational Channels |
INC-127859 | 564620 | Email image retrieval switched to Lazy Load | In email, multiple images being loaded at once resulted in a performance impact. To resolve this, the fetching of inline images has been modified to use Lazy Load optimization which will retrieve file content from S3 storage on a need basis. | Conversational Channels |
INC-127891 | 564727 | Added check for redirects when getting images from S3 | When retrieving images from S3 storage, a 303 redirect status response code was shown. Investigation showed that using a public URL caused the redirects, and this has been resolved by adding an AG hash while fetching images via an activity. | Conversational Channels |
INC-128164 | 567429 | Resolved CommitError when trying to send email | An error related to email was intermittently encountered while working on a case. This was traced to a local setting for Rule-ObJ class that set a read-only privilege, which appeared to have conflicted with the expected permissions around email template saving. This was an unexpected use case, and has been resolved. | Conversational Channels |
INC-129764 | 577933 | Interaction case closing updated | Utility nodes were reporting the error "Unable to close interaction case WORK-CHANNEL-INTERACTION - XXXXX." This was caused by the pxCloseExpiredInteractions activity used in ProcessEngine agent throwing a null pointer error when the Data-Channel-User has reference to a deleted interaction case. The handling for CloseExpiredInteractions has been updated to resolve this issue. | Conversational Channels |
SR-D54120 SR-D75636 |
541352 549348 |
Improved handling for attachments not using UTF-8 encoding | When an email was received that used a charset encoding other than UTF-8, special characters in the HTML body were not displayed and instead the replacement character was shown. To resolve this, the system will read the encoding from the email rather than use the meta tag, and will add the attachment's HTML encoding information in Data-WorkAttach-File so that the same can be used to process and display the original HTML properly. | Conversational Channels |
SR-D63638 SR-D90459 |
544017 552662 |
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 |
SR-D87188 | 551350 | Mentioned user in Pulse correctly converted to hyperlink | In the Interaction portal, mentioning a user in Pulse using @ was not converting the name to the user name with hyperlink for Email Interactions. @ mentions were working as as expected in Phone Interactions. This problem was introduced as part of using OWASP to sanitize HTML user input in Rich Text support, and was due to OWASP converting @ to an HTML entity. To resolve this, the @ will be excepted from HTML conversion. | Conversational Channels |
SR-D87412 | 563228 | Support added for multi-language email parsing | Parsing an email body for different languages was causing performance issues. To resolve this, an enhancement has been added to support email IVA in seven languages; to use this, override the Work-Channel-Triage.pyParseReplyMail activity and add the required languages in the given parameter. | Conversational Channels |
SR-D92688 | 551341 | Optional feature to improve pxETReport performance | Poor performance was seen when using pxETReport. This was caused by the system loading the recent cases widget by looking up all the ET cases within last 30 days, opening each ET case to check if it is from the same pyFrom email address, and then if yes, opening its related service case. On a complex system, this was potentially a slow process. To improve performance, the "Related cases" feature can now be disabled through an overridable 'when' rule. | Conversational Channels |
SR-D93031 | 555676 | Calendar fields maintained after refresh | Calendar fields were not displaying in PegaChat after the browser was refreshed. This has been resolved. | Conversational Channels |
Data Integration
8.5 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-112001 INC-132531 |
556977 572825 |
Corrected REST resource parameter mapping | After upgrading, the PUT rest service was not working correctly. This was traced to a handling issue in the value calculation for a new variable(offset) recently introduced to keep track of next resource parameter in order to replace it with the runtime token and collect resource parameters and their respective runtime values. This has been resolved by updating the system to recalculate the value of offset as soon as the design time resource parameter token is replaced with the runtime token. | Data Integration |
INC-118926 INC-125458 |
563807 562535 |
ArtifactoryStorage URL construction with port updated | After configuring a repository as a JFROG artifactory with a ruleform that provided a URL / port number and repository name, test connectivity worked as expected, but deploying the codeset using pipeline or importing the codeset using the import functionality generated the error "Unable to construct artifactory url due to invalid file path". The root cause of the issue was traced to the ArtifactoryStorage java class, which did not accept the port number in the format provided due to changes in the API. If there was no portNumber in the URL, the issue did not occur. To resolve this, the constructor has been changed to properly build the URI per https://docs.oracle.com/javase/8/docs/api/java/net/URI.html. |
Data Integration |
INC-119646 | 563695 | RemovePrivateBlockedAndWithdrawnRAQs updated to avoid exception | If the method removePrivateBlockedAndWithdrawnRAQs() (present on the AgentRuleUtils.java class) had both the "ignore personal rulesets containing checked out files" and "ignore "Blocked or Withdrawn agent" conditions set, raqsItr.remove(); ran twice and resulted in a java.lang.IllegalStateException. This could lead to undesired outcomes such as agents not showing up properly. To correct this, the code has been refactored to avoid running raqsItr.remove(); more than the necessary number of times. | Data Integration |
INC-119678 | 564201 | Improved timing for node tracing termination | The tracer stopped tracing after tracing a certain number of events. This was due to communication timing issues for tracer events from one node to another node in a multi-node cluster environment, caused by the Tracer Client using the pzMaxEvent property which limited the maximum number of events fetched at a time to 200. Any leftover Events should have been fetched in the next request, but when the consuming node's service ended after the 200 events, the system removed the service requester entry from the distributed Map and disabled remote node tracing as part of cleanup of the service execution. To resolve this, an update has been made so the node tracing will not be terminated until the service execution ends and there are no more events to process. | Data Integration |
INC-120223 INC-122076 INC-121249 INC-134171 |
565747 569819 570418 576431 |
Enhancements added to S3 repository implementation | The following changes have been made to avoid redundant/unnecessary S3 SDK calls to look-up metadata for files/folders related to integrated S3 Repository API implementation: Provided storage/AWSSDK/enableSDKMetrics DASS to enable AWS SDK metrics for S3 repositories system-wide to troubleshoot performance issues Added timers for Pega platform repository APIs. To see these timers in Pega application log, set log level to WARN for the log category pxIntegration.Repository.S3 and set log level to DEBUG for the logger com.amazonaws.latency Optimized FileS3Adapter.getMetadata() by avoiding object-metadata lookup for directories and caching rootpath directory metadata for 5 mins Handled exceptions while uploading file to S3 bucket and convey appropriate error message to RepositoryManager.createFile() API consumer Refined DEBUG logging and introduced new loggers to emit stacktraces Enhanced RepositoryManager.initCache() and FileStorageManager.registerStorageClasses() to maintain non-overridable repositories (that are initialized based on DASS/DNode settings on node start-up) and to prohibit overriding the same. |
Data Integration |
INC-120356 INC-131416 SR-D83424 SR-D91894 SR-D94689 |
560224 575450 552722 557221 555422 |
Class Loader cache values wrapped with WeakReference for improved cleanup | Out Of Memory exceptions due to Metaspace were observed on Web tier instances running with a max Metaspace size of 2GB. Investigation showed that in PRClassLoaderDB, mLoaderCache values were wrapped with a SoftReference. To resolve this, the Class Loader cache values will be wrapped with a WeakReference, allowing the cache to free memory when it is no longer needed. JVM options has also been added to switch types of References being used if there is a preference. | Data Integration |
INC-120600 | 565197 | Handling added to avoid primary key exception in pxExtractDataWithArgs | While running the activity pxExtractDataWithArgs with -c, the "Error while getting the sequenceNumberERROR: duplicate key value violates unique constraint pr_log_pk" occurred if both Parent and Child classes were pointing to different table and extraction started from the child class. In this case, because the Parent and Child classes were pointing to different tables while extracting with the -c option, the class list order caused a primary key constraint violation exception while generating the process sequence number. To resolve this, while adding the classes to the instance map, the order will be changed to parent followed by child classes. | Data Integration |
INC-121359 INC-129143 |
571025 567708 |
Resolved sync error for offline workorder | After logging on to the mobile app and then switching to off-line mode before opening a workorder from the worklist and processing the full workorder from end to end in offline mode, reconnecting resulted in the work order being moved to the [email protected] work basket with “Sync-Failed” status. Investigation showed that this was a caused by the DateTime properties being an empty string or null despite being created with a valid string. This was traced to the datetime conversion handling, and has been resolved. | Data Integration |
INC-121474 | 561063 | Handling added for SAP WSDL with names containing unexpected characters | When running the Create SAP Integration Wizard and importing SAP WSDL, import failed with the error "The Flow Action post-processing activity pxGenerateRules failed: The reference ORDERS.ORDERS05._-GLB_-OGTORDERS05_04 is not valid. Reason: unexpected character". This was due to the operation name containing the "-" character, and handling has now been added to normalize operation names to match Pega standards. | Data Integration |
INC-125480 | 562489 | Resolved Agile Workbench video recording timeout | Using the Record Video option thru Agile Workbench to create an Agile Studio item was either taking an excessively long time to finish or was hanging. Research showed that this scenario could arise when the input parameter value crossed more than 50 characters and triggered the interaction threshold for an alert, and has been resolved by updating the system so that query parameters with size more than 50 are not encoded and added to alert logs. | Data Integration |
INC-126662 SR-D94258 |
561314 560795 |
Thread context updated to supply steppage | After upgrade, Server Startup was failing with the error "PEGA Rules Server not available". Investigation traced this to missing steppage information while invoking RUF (from declare trigger when rule) during startup, which was caused by the thread calling the declare trigger, which was different from the thread running WhenRule, not being properly initialized during startup. To resolve this, the thread context has been changed to gThread, which contains the necessary steppage information. | Data Integration |
INC-126857 SR-D70522 SR-D91789 SR-D95626 |
564595 559227 562235 563584 |
Added handling for download of attachment with special characters | If the name of an uploaded attachment contained a non-ascii character, the upload was successful but the downloaded file had the wrong name without any suffix. This was an issue on WAS or JBoss servers where filenames contained non-ascii characters, and the filename parameter in the content disposition header also contained these characters. To resolve this, the filename parameter in the content disposition header will be encoded as well along with the filename* parameter to handle non-ascii characters in the filename. | Data Integration |
INC-127229 | 568095 | HTTPClient updated to match Apache's ConnectionRequestTimeout changes | Connect Rest services were not timing out at the expected 60 second mark, but were instead running for 120 or even 200 seconds. This bug arose as a result of Apache's refactoring of their HTTPClient in version 4.3. This refactoring split ConnectionTimeout into two variables, ConnectionTimeout and ConnectionRequestTimeout, in order to give users more granular control over client timeout behavior. The implementations of HTTPClient have now been amended so that all HTTP Client configurations set ConnectionRequestTimeout appropriately. | Data Integration |
INC-127635 | 570055 | Handling added for BIX count mismatch in manifest and extracted CSV data | A mismatch in the counts in the manifest file when compared to the data extracted in the CSV files was traced to a corrupted or wrong pzinskey in the source database. If the BLOB is corrupted while extracting to output type and manifest type to CSV, an invalidstream exception was generated and resulted in the manifest file and extracted CSV file total instance count mismatch. This has been resolved by adding handling to balance the counts. | Data Integration |
INC-127775 | 567262 | Added handling to resolve missing Pega 7 schema objects error on upgrade | After upgrade, running post-upgrade activities reported the index table 'pr4_rule_vw_idx1' was listed as missing in the PEGA_RULES schema even though the index was present on pr4_vw_idx1. This was caused by formatting differences between Pega 7 and Pega 8.4 intended to make the columns unique. The pxObjClass column was removed from that index in 8.4 but this made it equivalent to the vw_updateDateTime index. As a result the code that performs the DDL upgrade ignored the new definition for pr4_rule_vw_idx1 because vw_updateDateTime already existed. It was safe to ignore this 'missing' index as the correct form exists as vw_updateDateTime, but to avoid issues the pXObjClass column has been added back to index pr4_rule_vw_idx1, but as a second column in the index. | Data Integration |
INC-127804 | 566399 | DASS switch added for use with older Connect Rest passing encoded inputs | As of Pega 8.2, an EmbedURL configuration in the REST connector was made available to provide flexibility to choose URL-encoding on an as-needed basis. In order to support connectors created prior to Pega 8.2, a configuration has been added to support usecases that pass encoded inputs to the connector execution. This is available by way of a connect/DisablePathDecoding DASS switch in the REST connector resource path parameters handling. | Data Integration |
INC-128213 SR-D83329 SR-D85956 |
563895 546659 547952 |
AWS S3 client SDK upgraded | The com.amazonaws group has been updated to version 1.11.740 . | Data Integration |
INC-128250 | 571241 | Validations and rules tuning | Issues relating to an extra row being added to auto-populated properties, adding a 'when' visibility to a picklist property, and errors saving nested properties have been resolved, and performance of the overall system has been improved. | Data Integration |
INC-128654 | 567409 | Queue processor handling updated | After upgrade, the queue processors were not processing all the items in the queue, however the value under the 'number of items processed in the last hour' in the Admin studio showed the value was equal to the total number of items in the queue. This was traced to the an incorrect offset kept by the queue processor in the data table (Data-QueueProcessor-Run-Partition). Because the incoming messages from Kafka have a lower offset than the one kept by the queue processor, messages were treated as duplicates and not processed. This has been resolved by adding a partitions-validation mechanism on QP startup. To assist in proper handling, any messages identified as potentially already processed will be moved to the broken messages queue. | Data Integration |
INC-129171 | 566576 | Field added to configure jFrog artifactory context root | After configuring a JFrog repository rule and successfully testing the connection (from the rule configuration page), attempting to browse the remote repository from the "File Storage" landing page did not work. Investigation showed that ArtifactoryStorage.java was automatically appending "/artifactory" to the host name of any artifactory repo instance, causing a mismatch with the configured URL. There was a workaround of configuring the hostname with a context root, but this issue has been resolved with an additional ruleform field to specify the context root. Leaving this field blank will create the url using strictly what is contained within the host name field, while populating it will construct the url as follows: url + contextRoot + "/artifactory" This field will default to "/artifactory" to help preserve backwards compatibility. |
Data Integration |
INC-129400 | 567402 | Data page form displaying activity parameters from 'when' rules | While displaying the parameters list for source activity in data page rule form, an icon was displayed. This was traced to the visibility condition being an expression but mentioned as a 'when' rule, causing the parameter dialog to not load. This has been resolved by updating the pzActivityParamList activity to change the visibility condition as expression from a 'when' rule. | Data Integration |
INC-129729 INC-126091 SR-D85480 SR-D85653 SR-D90051 SR-D90505 SR-D96107 |
568728 561825 546649 548600 549493 550990 556298 |
Repaired Tracer use with Chrome | After running Tracer while using Chrome, closing it and trying to run another resulted in an error indicating "Cannot Launch multiple tracer sessions for a requestor". This was identified as a bug with Google Chrome Versions greater than 70 and was caused by Chrome deprecating the use of sync XHR on page dismissal, and has been resolved by modifying the system to use a beacon API instead. | Data Integration |
INC-130176 | 576483 | Improved Pagelist size cache cleanup | After converting the XML content returned from the end user into the clipboard page using the ParseXML rule and post conversion, it was not possible to remove all the records from the specific page list and then keep a single record in it. This was caused by the Pagelist size cache not being properly cleared on prDelete, which had the downstream effect of the parse XML rule not properly removing the pagelist. To resolve this, the code has been updated to ensure that when removing a pageList property, its size is removed from the size-specific cache as well. | Data Integration |
INC-131518 | 575753 | PegaURLBuilder API updated to handle authentication alias | The fragment '/app/ApplicationName' was getting appended to the Document URL whenever a sharable link was generated for the document attached in the spaces, causing the link to fail. This was traced to previous assumptions that a public link URL would not have an authentication alias. Now that an authentication alias can be added to the public link URL, an update has been made to the PegaURLBuilder API: the last URL component in the public link URL will be retrieved then verified with the existing authentication aliases. If it matches, then the authentication alias will be injected to the URL in the appropriate location. | Data Integration |
INC-132769 | 573197 | ArrayList constructor added to jarList initialization | During the Switch Schema and Rolling Restart phase of an upgrade, failure occurred on the all the tiers with the error "PRRuntimeException: Method Invocation exception". This was traced to the method used to implement list initialization from an array, and has been resolved by adding an ArrayList constructor for jarList initialization. | Data Integration |
INC-96275 | 553403 | Attachment Migration tool updated for improved node crash handling | During attachment migration from PegaDB to the S3 repository, a stream node crashed and left queue items in the queue. When the node restarted, these items were migrated successfully to S3. However, a manual restart of the attachment migration tool then ended up duplicating the items already successfully migrated. As part of handling the duplicate attachments, files with 0 bytes were created in S3 and the zero byte link was updated to the Data-WorkAttach-File instance. In order to handle this scenario, an enhancement has been added that will skip migrating attachments already migrated to repository or those having an empty attachment name. | Data Integration |
SR-D36826 | 550271 | LastAccessTime returned for MDB listeners | The lastAccess time for the JMS listener was not being updated. Investigation showed that lastAccessTime was correctly updated whenever isStopping() was called, but isStopping() was not called for MDB listeners because the MDB listeners' state is managed by the app server. This caused accessTime to be empty. To resolve this, ListenerStateImpl has been modified to return mRequestTime as the lastAccessTime if the listener is of type MDB. | Data Integration |
SR-D40785 | 548939 | WorkPageName preserved during passivation so attachments are correctly tracked | When a work object was left open but inactive for a period, using the delete button in the pyAttachFieldRequired section caused the deletion of the Attachment Links for the 500 most recent attachments in the system with the same value for the AttachmentFieldName, regardless of which work object they were attached to. This was due to the delete attachments activity being executed with missing parameters: since data page loading was disabled and read-only data pages are not passivated, the value for the autopopulate property 'WorkPageName' was passed as empty. This has been resolved. | Data Integration |
SR-D50664 | 531688 | Support added for tracing PageList during automations | When using the out-of-the-box email reply on an email triage case, an exception was observed in the tracer stating "com.pega.pegarules.pub.clipboard.WrongModeException: The property To.pxResults was of mode Page List while com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getObjectValue() was expecting Java Object mode." This has been resolved by adding support for tracing PageList during automations. | Data Integration |
SR-D59158 | 534820 | CMIS Update Request corrected for single Value List property | After upgrade, following the process of searching Documents by connecting to CMIS and getting the results, then selecting the document, editing it, and resubmitting the document to the CMIS repository by clicking on the update button worked when passing a multi row of values to the Value list property but failed when passing a single row of value to the Value List property. An error was generated with the message "pega.pegarules.pub.services.InboundMappingException: Failed to process CMIS service 'updateProperties' ". In 7.2, updateProperties CMIS functionality uses the Apache API opencmis.commons.spi.ObjectService#updateProperties() whereas in 8.3 it is refactored to use the API opencmis.client.api.CmisObject#updateProperties() and this API allows multi-valued property to be updated with multiple values only. To resolve this, the CMIS connector has been modified to update the properties implementation such that it will pass-on the property update value to Apache OpenCMIS API as either List or Scalar based on the property definition (whether Property is configured as multi-valued or not). | Data Integration |
SR-D60206 | 529327 | Resolved null pointer on Reference Helper startup | An issue with the system failing to start and generating a NullPointerException on RUFReferenceHelper.java has been resolved by modifying some RUF code to better handle threads that are not completely initiaized yet but still running rules. | Data Integration |
SR-D60284 | 550559 | Delete Requestor method updated for use with CMT | JMS MDB Listeners with Container Managed Transaction (CMT) enabled in Websphere 8.5 had global transactions fail. To initialize a JMS-MDB listener, a requestor of type APP is used. Upon the service being fully initialized, the requestor is removed by executing a delete operation followed by a COMMIT. However, in this scenario, the initialization operation is running within a CMT context and a SQLException was raised indicating that the commit was not allowed. To resolve this, the delete requestor method has been refactored to take into account the CMT context so the commit is not executed if the transaction is managed by the container. | Data Integration |
SR-D60830 | 533030 | Logic update for classloading synchronization | The synchronization logic for classloading has been updated to resolve intermittent deadlocking seen when two DataFlow threads are executing a distribution test. | Data Integration |
SR-D61199 | 533479 | 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-D61971 | 529608 | 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-D62840 | 534125 | 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-D63255 | 531384 | 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-D63774 | 540507 | 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-D63912 SR-D69836 |
531205 529729 |
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-D64083 SR-D87093 |
542886 548145 |
Compilation logic error corrected | A compilation failure on upgraded systems using the JDK 11 compilation of libraries that include Pega 7 functions that have INCLUDE statements that are not supported in JDK 11 was traced to a logic error added when enhancing debug logging. This has been corrected. | Data Integration |
SR-D64197 | 536589 | Handling added for passivated file upload and attach | When storage type repository was configured and any file type other than image was uploaded while pyIsStreamBasedUpload was set as true, uploading a file and keeping it idle for 15 minutes before clicking on attach caused pyattachInputStream to become null on the DragDropFileUpload pagelist. This caused an activityterminateException in tracer and the assignment was not submitted. This exception was due to a check in attachFile activity that calls terminateactivity when streambasedupload is true and attachinputstream is null. To resolve this, a validation rule has been added to check if the page exists, streambasedupload is true, and pyattachinputstream is null or has a value. If it is NULL, a message will be displayed about reattaching the file(s). | Data Integration |
SR-D64558 | 531165 | 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-D65112 | 541149 | 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 | 536242 | 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-D66674 | 538972 | DSS added for fall back to legacy decision table format | After upgrade and switch to IL, non-working decision tables created in one class had pyWorkPage mapped to another class. In the column, the properties were mentioned as "pyWorkPage.xxxxx", but at runtime when the non-working decision tables ran as standalone, the system did not ask for values to be entered to evaluate the result. Tracer showed the error as "Goal seek requires missing input property pyWorkPage.All_Offln_Trans_In on page pyWorkPage; details: (unknown)". Investigation showed that the Legacy assembly for the decision table used the lazy evaluation pattern to resolve the expression in the column header in the generated Java code. This resulted in the property for the column header only being read when it was used. However, for IL-based decision tables all properties are read immediately before any rows are evaluated, which requires the property already be present on the page. This missing property from the lazy assembly then resulted in the exception. To resolve this, Executable.generateOrCompileSource and Virtual tableassemblyHandler.useIL() have been modified to fall back to legacy decision table format if the DSS InternalLanguage/disableIlBasedDecisionTable is enabled. | Data Integration |
SR-D66986 | 539414 | 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-D67028 | 533272 | Encoded and unencoded tenant URLs validate as expected | Tenants created in Pega 8.3.1 were unable to process REST service requests, and an exception was seen in the logs. Investigation showed that while validating the incoming REST request, the system was relying on pathinfo instead of requestURI but pathInfo was always in un-encoded form. To resolve this, the design time URL will be constructed with an un-encoded tenant part, and both encoded and un-encoded request URLs will be validated. | Data Integration |
SR-D67142 | 548642 | Enhanced CMIS connector logging | Additional diagnostic logging has been added to enhance investigating CMIS connector health. | Data Integration |
SR-D67232 | 530009 | 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-D67308 | 552344 | fetchWSDLDocument rule withdrawn | The fetchWSDLDocument rule has been marked as withdrawn. | Data Integration |
SR-D68204 | 530035 | 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-D70890 | 542871 | Enhanced diagnostic logging for automatic search re-index | To better analyze an out of memory error, enhanced diagnostic logging has been enabled for the below classes to get more information regarding re-index triggered automatically after search index is complete. PegaSearch.SearchManager.SearchInitlizationUtils PegaSearch.SearchManager.BuildIndicesTask Rule_Obj_Activity.pzLPFTSManagerRunBuildIndex.Pega_Search_Manager.Action PegaSearch.Indexer.AbstractIndexer |
Data Integration |
SR-D71041 | 537896 | 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-D71145 | 536369 | PropertySet will iterate over changeList 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-D71369 | 559179 | Resolved NullPointerException during passivation | NullPointerExceptions were seen in the logs. This was traced to the BLOB becoming corrupted during passivation, and the code has been updated to resolve this issue. | Data Integration |
SR-D71977 | 535602 | 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-D72389 | 541947 | Handling added for JSON with top level array | When using serialize mode in a JSON data transform where the Top element structure was Array and the “For JSON only” relation was selected for relation mode, the result had an incorrect JSON structure. In order to support this configuration, generatePropertyAsJSON has been amended to set isTopLevelPageList to true in instances where automap is off, the top level is an array, and the JSON context is updated within the first step. In addition, generatePageAsJSON has been updated to check this flag when processing mappings in order to ensure these context changes are processed, and updates have been made to generatePropertyAsJSON to ensure that the context is popped when appropriate. | Data Integration |
SR-D72886 SR-D76291 |
543755 541015 |
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. | Data Integration |
SR-D74376 | 552259 | Check added for string vs boolean for pzscan JSON | When calling the CloudRemoteMaintenance/Work-/pzscan API, the response JSON had boolean values in the form of String which caused the JSON parsing to fail. The system was using ClipboardProperty.toStringValue() while generating outbound JSON from the clipboard page, which did not correctly interpret a boolean value. To resolve this, a check has been added that will assess the value and invoke ClipboardPage.toBoolean() when needed so that the value is converted as per type before generating the JSON. | Data Integration |
SR-D74534 | 538945 | 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-D74921 | 551788 | Error condition will close WebSocket connection | An async listener has been added that will close the WebSocket connection when an error condition is encountered. | Data Integration |
SR-D75053 | 540913 | 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. | Data Integration |
SR-D75945 | 541083 | Data transform updated to remove @java references | The usage of @java expressions in data transform rules has been deprecated. The pyProcessDocumentCompletedEvent data transform was given as an extensible data transform intended to be overridden by customers to have their own processing logic of document completion event, however this caused confusion and when used in the out-of-the-box form it resulted in an error when saved at design time. To resolve this, the shipped data transform has been updated to call to a RUF to return the file's base name, and the @java references have been removed. | Data Integration |
SR-D76150 | 539454 | 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-D78531 | 542001 | 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-D81124 | 543394 | Added null check for agent on restart | After restart, multiple IndeterminateConditionalException errors were generated from FUAUtil. This was due to a missed "if" condition to check for a null agent, and has been addressed by refactoring the code and adding a null check. | Data Integration |
SR-D81496 | 547170 | Data Social tag class FTS index query improvements | A query intended to select from the link tag table to see if any cases were linked to the tag in question and then index the tag change was causing performance issues. Investigation showed that checking tag associations during FTS indexing fetched all matching rows from the table even though one was sufficient. To resolve this, the query will be created with max result count = 1, fetching up to 2 rows from the table. | Data Integration |
SR-D81651 | 545238 | Added check for signed-data in encrypted email | Numerous java.lang.UnsupportedOperationException messages were seen in the logs. Investigation showed that signed email which arrived as encapsulated within another email with header content-type = "application/pkcs7-mime; smime-type=signed-data; name="smime.p7m" caused the exception. This was due to a missed check for 'signed-data' while parsing the email and checking for encryption, and has been resolved. | Data Integration |
SR-D81673 | 546396 | ClipboardToJSON Serializer enhanced | After creating a JSON data transform with the top level structure set to Object and a step that mapped a Pagelist in clipboard to an Array of Objects in JSON, calling the data transform in Serialize mode resulted in a JSON mapping exception. This was a missed usecase for using the JSON serializer with nested pagelists in page, and has been resolved by adding pagegroup support for data transform serialization and skipping pagegroup serialization when automapped. | Data Integration |
SR-D81911 | 553094 | Reference property copying updated | An error appeared on screen when performing the local action "NonProceed case" after upgrading. This was traced to the way copying reference properties was handled as part of pxDeleteAssignmentsForWork, and has been corrected. | Data Integration |
SR-D82490 | 547365 | Invoke Connect-SAP method of IDoc type repaired | Attempting to implement SAP connection via IDoc type connector failed and an empty error message was shown. This has been resolved with modifications to the SAP Connector functionality. | Data Integration |
SR-D82695 | 546539 | Correct tenant ID set in execution of SLA Agent | An incorrect tenant ID was set in the execution of service level agent, causing the SLA Queue item to fail with the error "You are not authorized to open instance SYSTEM-QUEUE-SERVICELEVEL." This was traced to an incorrect access group which was set in QueueProcessor for a processed item and not restored correctly, and has been resolved by populating the access group on the security tab of the relevant standard agent with the value “PRPC:Agents”. | Data Integration |
SR-D83023 | 549688 | Apache Commons Compress library upgraded | The Apache Commons Compress library has been upgraded to v1.19. | Data Integration |
SR-D84122 | 547967 | Added min INT comparison for BrowseByKeys | Running the dataset with the Browse option worked as expected, but running it using BrowseByKeys operation and giving a negative value caused results to not be populated. To resolve this, a minimum INT value comparison has been added. | Data Integration |
SR-D84768 | 551050 | Updated log message for invalid email Content-Disposition value | In order to improve logging communications, if the EmailListener aborts the processing of an email when that email has an invalid value for the Content-Disposition header for an attachment, the log message displayed will indicate "Message has a part that has invalid Content-Disposition." | Data Integration |
SR-D84876 | 547690 | Performance improvement for Oracle 12c queries | In order to compensate for a known issue with Oracle 12c that can cause repeated queries at certain times to cause database contention, Oracle pre/post processing steps have been added to improve performance in this environment. | Data Integration |
SR-D84880 | 546891 | Null check added to resolve addmapcasetomap error | Using a createcase flow shape to create child cases by looping on a page list on the parent case resulted in pzaddmapcasetomap throwing an exception related to the activity pzLoadCaseHierarchyWrapper in step 5. This was traced to a page being removed after the list of pages was received in findPageByHandle, and has been resolved by adding a null check. | Data Integration |
SR-D85410 | 549569 | Improved queue processor tracing | After starting to trace the queue processor, the message "waiting up to 1 minute for queue processor, <<Name>> to start processing an item" was displayed as expected, but if the tracer was closed and then there was another attempt to trace the queue processor, the message "Trace request with the current requestor is already registered. Multiple trace requests from same requestor are not allowed." appeared. Research showed that this was related to the implementation around canceling a background task, and has been resolved by adding code to handle the scenario of terminating an on-going trace request on window close and then beginning another trace request with the same requestor. | Data Integration |
SR-D85699 | 548663 | DASS given for overriding boolean transformation to true/false | In order to ensure greater backwards compatibility, support has been added for not converting boolean values in the DOM-based Parse XML assembler based on the DASS as below : Pega-IntegrationEngine • ParseXML/DOM/DoNotConvertBooleanValues This will maintain values as 0/1 and override the default of transforming them to true/false which was enabled as of v8.3. |
Data Integration |
SR-D85839 | 550938 | Support added for custom Kafka connection properties | An enhancement has been added to allow specifying custom Kafka connection properties in the Data-Admin-Kafka data instance to allow connections to external Kafka through the common client configs, ssl configs, and sasl configs. | Data Integration |
SR-D87605 | 547297 | Indexes and tables updated to improve purge query performance | Due to work done previously, purge queries to clean up the application ruleset index and application hierarchy_flat tables were running slowly or not returning the expected results. This has been resolved. | Data Integration |
SR-D87870 | 548773 | Resolved putting JMS Message through JMS Listener interface | When using MS Listener integrated into Pega running on WebSphere Liberty, the listener was running correctly and able to consume JMS Messages. The JMS Listener ruleform provided options to browse and put JMS messages. However, when attempting to put a message into the destination queue, an error occurred. Investigation showed that if the resource lookup was using 'Resource references' on JMS Listener, the naming context was initialized with a null hashtable. This has been corrected by modifying AddJMSMessage and GenericViewJMSMessage to initialize the naming context with the default constructor RefreshJMSMessages to set JNDIServerName and pass the current parameter page when calling GenericViewJMSMessage. | Data Integration |
SR-D88376 | 548335 | SQL query handling added for case-sensitive DBs | An Email Listener in RUNNING state was not picking up the emails as expected. This was traced to the column names (pr_log_service_email) being defined in lower case for native SQL queries: since MS SQL server db is case sensitive, it was not able to detect these column names and therefore failed to save the message stub. This has been resolved by adding the necessary handling. | Data Integration |
SR-D88813 | 555856 | Resolved getDatabaseIndices release | While retrieving the indexes of the DB, the result sets were not closed, leaving the cursors open as well. Eventually the number of open cursors exceeded the database max, preventing any further database operations. This has been resolved by appropriately releasing the cursors after finishing with them, preventing the failure. | Data Integration |
SR-D88997 | 548896 | Improved accessibility for labels and instructions | In order to improve accessibility, a label has been added to the delegation filter input and a search input box has been added to pzRecordsEditorWrapper along with the ability to use the 'Cell read-write classes' option to hide it in the UI. | Data Integration |
SR-D89144 | 565219 | Email attachment linefeed formats preserved between Oss | When MIME attachments were stored in Data-WorkAttach-File instances and then later attached to outgoing email sent by Outlook, text files that originally had the Unix linefeeds (LF) had those changed to the Windows CRLF line endings when the Content-Transfer-Encoding is set to 7bit. To resolve this, the java mail DSS email/encodeEolStrict now defaults to true to preserve line endings in outbound email. | Data Integration |
SR-D89835 | 554302 | Updated padding character handling for access group hash | While generating an access group hash from an access group name, Pega was using the '(' character as padding. However, Siteminder blocks the '(' character, causing requests to be rejected. To resolve this, the padding character will be removed while encoding and decoding will handle hashes both with and without the padding character. | Data Integration |
SR-D90311 | 549728 | Parse Delimiter rule updated for special character handling | Attempting to run a Parse Delimiter rule with a CSV file was failing with a 400 bad request and the message "Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986." Inspecting the HTTP request showed this was an issue with the \ character value being present in the FilePath property. To resolve this, encodeURIComponent() has been implemented to ensure the FilePath parameter of the HTTP Request meets Tomcat restrictions. | Data Integration |
SR-D90400 | 563186 | Explicit parent added for descendants in subreport to correct summary | When using a Report Definition with a Summarize column and a subreport with join class, it was not considering implementation class work objects. As a result, the prepared values were only partially computed. This was traced to the SubReport in SetQuery not having reference to a parent for the descendants classes, and has been resolved by explicitly setting the parent value. | Data Integration |
SR-D91362 | 556047 | Updated handling for redirect location header | After upgrade, browser refresh/reload was not working, instead displaying a grey screen with no error in Chrome and a 404 message in IE11. Investigation showed this was due to a redirect request being sent without location header; this was caused by the pageToCopy thread being reused in the redirect even though it was null, resulting in the location header not being populated in the requestor page. To resolve this, the system has been updated to skip copying the pages and set then location header if the thread is the same. | Data Integration |
SR-D91949 | 552172 | Improved search for instances with null property values | OneOf filters for a newly introduced property were failing when applied to elasticsearch query. Investigation showed that because a property is created only when the system encounters an instance with a non-empty value for the first time, none of the instances had a value for this property and hence mapping was not generated in elasticsearch. To facilitate searches, an update has been made that will populate a value in one of the instances belonging to the class type so that elasticsearch mapping is generated during indexing of the instance. | Data Integration |
SR-D92054 | 559067 | Resolved passivation issues with Operator Preference records | Blue screen errors were reported for several operators during Launch portal. This was traced to corruption of the BLOB during passivation, and has been resolved. | Data Integration |
SR-D93460 | 558018 | 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-D93560 | 555446 | Tomcat DBCP updated | The tomcat-dbcp jar has been updated from 9.0.22 to 9.0.33 . | Data Integration |
SR-D93561 | 558674 | Report Definition now searches encrypted properties | When using a section in table sourced from a report definition where one of the filter condition properties used was an encrypted property, running the report gave the correct result based on the filter condition but running the case and passing the encrypted property as a parameter to search did not produce the correct result. No data was displayed in the table sourced from the report definition. Because the encryption was done on the parameter string but not the value referenced by parameter, when a report definition is used as a data source for a table, the filter applied on an encrypted property is dropped in the final SQL statement that's generated, leading to incomplete or wrong results to the report. This has been resolved by moving the encryption logic to RuntimeResolver. | Data Integration |
SR-D94019 | 553784 | Alerting features added for Listeners | An enhancement has been added for Email Listener alerts. At the end of each listener's processing cycle, the system will determine the average processing time per message, the total processing time of the listener, the total unread messages count, and total number of messages processed. In each AESRemote agent run, this data will be published to the PDC, where it will be analyzed and any necessary alerts raised. | Data Integration |
SR-D94505 | 553017 | Toggles added to allow file listener performance improvement | In order to offer flexibility in improving the performance of file listener CPU usage while processing intake files, rsf.setSaveIntermediateState( true ) has been replaced with rsf.setSaveIntermediateState( listener.getListenerProperties().getAttemptRecovery() ) in FileActionImpl. This change allows the option of not selecting the setting for attempting recovery on the file listener rule-form, which then would skip the intermediate save state normally performed per record/per file in case recovery is needed, thereby speeding up the processing. A toggle has also been added to see whether the system should bypass the ListenerState check at the end of each record. To use this, set the Dynamic System Setting "listener/skipListenerStateCheck" in the "Pega-IntegrationEngine" ruleset to true. Additional Installation Instructions Please create/set the Dynamic System Setting "listener/skipListenerStateCheck" in the "Pega-IntegrationEngine" ruleset as true. |
Data Integration |
SR-D95074 | 566432 | Updated logging to avoid unnecessary errors | Errors were seen in the Pega rules log when a service case was launched from an email interaction case. This has been resolved by updating the system to avoid error logging for a configuration not supported for declaratives, such as named page references in 'when' rules. | Data Integration |
SR-D95353 | 557042 | Null check and enhanced logging added to Update Existing Application | While performing "Update Existing Application" step as part of post upgrade activities, errors were seen about hidden or circumstanced rules relating to "prprivate-exec.jar:?". Investigation indicated that rulesets were being iterated and compared, but it was not clear which ruleset might be causing the issue. The root cause was code that used an integer type in the comparison, leading to a null pointer error when it was null. To resolve this, a check has been added that will assign a value of 0 if the value is null in the comparison, and infoForced logging will be used to tell what caused the null. | Data Integration |
SR-D95495 | 561464 | Revised query to resolve VTable initialization error | While running an import in a multi-tenant environment, latency and VTable initialization exceptions were seen. This has been resolved by updating the query with a JOIN clause when the SQL query is being built that will allow the import process to run without causing any issues. | Data Integration |
SR-D95511 | 557291 | Decision table testConsistency updated to include duplicate columns | Show Conflicts incorrectly reported unreachable conditions for a decision table and there was a red severe warning ribbon on the top of the rule after saving when in actuality the conditions were unique and the execution was correct, with the runtime execution of each row in the table giving the correct results. This was traced to the use of a property as the column header for multiple columns: testConsistency marked the columns other than the first as duplicates and excluded them from the consistency check. As a result, when a decision table had 3+ rows with a value in the first row and empty values for the rest of the rows and used an operator such as >, all rows starting with the 3rd row became unreachable because the first row covered values > 1 and the second covered the rest, therefore the third was unreachable. To resolve this, the system has been updated to involve all duplicate columns in the consistency check. | Data Integration |
SR-D98736 | 563545 | RD returns ElasticSearch with parameter in the filter | When using a parameter reference in the filter of a Report Definition with a datapage sourced by a Report Definition, ElasticSearch did not return any results if the checkbox "use null if empty" was selected for the filter, but unchecking this checkbox caused a severe warning. Investigation showed that when the checkbox was selected and there was no default value provided for the parameter in the RD, the query formed had no check for a parameter value and the value in the datapage was ignored. This was traced to the operator in the RD filter being overridden during the RD save with the operator type changing from EQUALTO to ISNULL. This has been resolved by adding code changes to verify whether the RD is in validation mode before applying changes. | Data Integration |
Decision Management
8.5 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-121460 | 569117 | IH Summaries correctly loads aggregated count | After the IH Aggregated DataFlow has processed more than 34 million records from an Oracle database, the IH Fact table contained only ~120,000 records. Running a browse on the pxInteractionHistory DS resulted in an infinite loop. Investigation showed that this was caused by the handling of Oracle timestamps: using Pega DateTime in query parameters generated Oracle DATE instead of TIMESTAMP, causing all query parameters to be rounded to the second and interfering with the IH pre-aggregation. This has been resolved by updating the handling. | Decision Management |
INC-122180 | 563269 | Null check added for Entity Extraction result | Training data for an Entity Extraction model was not getting distributed correctly, as per the given % data. This was due to the result of the Entity Extraction result being null, and has been resolved by adding a check that will consider detected types as primary candidate for grouping if the result column is null. | Decision Management |
INC-126129 | 569665 | PropertyToColumnMap made more robust | The DF_ProcessEmails dataflow was intermittently failing with a StageException error. This was traced to schema changes being propagated asynchronously by system pulse, which seem to have caused PropertyToColumnMap to cache stale schema. To resolve this, if the property mapping is not found the first time, the system will make a second attempt to get the mapping. Additional logging has also been added for better diagnostics. | Decision Management |
INC-126750 INC-131700 |
564151 570972 |
DSS added to configure Dataset-Execute page handling | When Kafka Data Set pages were saved to a data set with the Dataset-Execute method, there was is feedback if any of the pages were not successfully saved. Instead, the step always completes as successful. In addition, if any properties are added or modified by the save operation itself, those changes are not visible. This is due to the data set execute save operation saving pages as DSM pages to the data set. Due to the conversion of the pages, copies of the pages are used which do not reflect back any changes on the input pages. DSM pages are used by default because they are more lightweight than regular clipboard pages and therefore have potentially better performance. In order to allow the use of DSM pages to be customized, a new Dynamic System Setting: dataset/execute/save/statusFailOnError has been added. This can be enabled by setting it to true; it is disabled by default for greater backwards compatibility. By removing the DSM page conversion in the generated save code, changes to input pages will be reflected back if any are performed by the data set save operation, and the system will report back which pages are saved or failed by adding messages to the pages that failed to save. Performance may be affected with this change as regular clipboard pages are in general slower than DSM pages, however, that may be offset by removing the conversion to DSM pages process and will depend on the site configuration. | Decision Management |
INC-126796 | 561535 | Modifications to getFunctionalServiceNodes process | The count of the Interaction History write related threads was increasing rapidly and a stack trace indicated "waiting on condition" and "java.lang.Thread.State: WAITING (parking)" errors. Investigation showed that this was due to getFunctionalServiceNodes using Hazelcast to determine node status by making a service request on an installation with a very large number of nodes, causing thread locking. To resolve this, the implementation has been updated to avoid calling getFunctionalServiceNodes on save of Interaction History, instead using Cassandra and only calling getFunctionalServiceNodes on the master node, not on all nodes. | Decision Management |
INC-128385 | 564520 | Behavior made consistent between SSA and legacy engines | There was a behavioral disparity between the legacy execution engine and the SSA engine where the latter was not creating a new page when the index was one above the size of the page list. This has now been corrected in order to make the SSA behavior fully backward compatible with the legacy engine, i.e. a new blank page will be added to the list if the index is one above the size of the list. | Decision Management |
INC-128898 | 564691 | Updated precondition checks for Tumbling Time data in event strategies | Tumbling Time data keys in event strategies were not being properly executed when certain window configurations were used. This was has been resolved by turning off the optimalization of Cassandra reads for small windows when window size is not known upfront and set dynamically (set size by property). | Decision Management |
INC-130037 | 570958 | Corrected caching sync for proposition filter | Unit testing or a manual run of the generated strategy through next best designer was not giving the result, but instead was throwing a stale thread error. Investigation showed that the PegaAPI reference was cached in proposition filter at first execution and the filter was trying to use same reference for other further executions. This has been resolved by ensuring the cached reference is properly synced. | Decision Management |
INC-130471 | 569669 | Null handling added for SSA parsing | Strategy save was failing for the FormatDateTime expressions such as FormatDateTime(@addToDate(@getCurrentTimeStamp(),3,0,0,0),"yyyy",null,null) FormatDateTime(@addToDate(@getCurrentTimeStamp(),3,0,0,0),"MMM",null,null) FormatDateTime(@addToDate(@getCurrentTimeStamp(),3,0,0,0),"yyyyMM",null,null) This was due to the SSA engine not considering NULL to be a valid type-safe optimizable expression. To resolve this, the parsing process has been updated so that unsupported IL nodes (such as the node representing literal null) will cause the expression to fall back to legacy instead of failing. |
Decision Management |
INC-130757 | 571420 | Migration data pipeline import activity updated | The migration data pipeline was not working in the DevOps environment when moving data from Production to Simulation environments. This has been resolved by updating the activity used to generate file data set for configuring the datetime, date and time formats and inserting a check so that if a format for a type is empty, parsing properties of this type will be skipped. | Decision Management |
INC-131260 | 571785 | Handling added for runs using Completed state | After upgrade, creating a data flow rule and the batch Data flow run using the Dataflow-Execute method in the activity resulted in the exception "Could not start run DataFlowRunConfig" when executing. This was a missed use case in the new architecture of data flow engine introduced in 8.4, causing DataFlow-Execute to not work properly for existing runs in COMPLETED state. This has been resolved with the addition of a branch of execution in DataFlow-Execute.Start to correctly handle completed runs. | Decision Management |
INC-131340 | 573927 | Added handling for single case data flows run on a web node | After making NBA and Capture Response calls using the OOTB APIs, the Latest Response was not updated in the landing page even though the models were updated. This was a missed use case for single case data flows run on a web node, and has been resolved by removing the filtering of data flow nodes while sending messages for last responses. | Decision Management |
INC-132164 | 575345 | Updated Email Listener sentence detector logic | When the Email Listener encountered a specific XLSM attachment, it became hung up in Running state. The email was marked as read in the email box, but the Email Triage case was not created and the Listener did not process subsequent emails. If the Listener was stopped, it would not restart. Investigation showed that multiple numbers of \n followed by a repeating sentence in the document caused the pointer to lag behind and create multiple annotations pointing to the same offsets. This in turn caused the further analysis to run in a really large loop, causing the slowdown. This has been resolved by updating the logic of the post processing for the sentence detector so that the duplicate annotations are not created. | Decision Management |
INC-132532 | 576413 | Strategy Exclusion Component naming conflict resolved | After upgrade, modifying the RHS of Exclusions shape in Strategy "ExclusionTest" resulted in compilation issues during the save of the Rule. Investigation showed there was a compile time error related to a use case around shapes with exclusion in both sides using an expression provided that does more than just property value access, and which resulted in a naming conflict in the generated code. This has been resolved. | Decision Management |
SR-D66397 | 530333 | 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-D71621 | 533296 | 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 | 539462 | 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-D75519 | 536718 | Corrected calculating propensities | Several PMML models designed to compare the outcomes to a control dataset experienced an issue where the probability scores in Pega did not match the original control dataset. The PMML model was also tested using KNIME; those results matched Pega but not the original control dataset. Investigation showed that the JPMML evaluator contained outdated code, and the incorrect calculations have been resolved. | Decision Management |
SR-D75583 | 547300 | JMX access enhancement | An enhancement has been added to JMX access that provides two new prconfigs, "dnode/cassandra_jmx_username" and "dnode/cassandra_jmx_password". These allow adding credential requirements to local JMX. | Decision Management |
SR-D77157 | 544472 | DataSet preview will use date instead of datetime | While using a DataSet preview functionality, the date appeared as reduced by one day. This has been resolved by parsing date as 'date' instead of 'datetime' to avoid issues with timezone interactions. | Decision Management |
SR-D78940 | 542927 | Dataflow monitoring enhanced | Enhanced monitoring and healthchecks have been added for dataflow and alerts. | Decision Management |
SR-D79145 | 543054 | Added tokenizer for KeyWord-Based Topic Detection phrases | KeyWord-Based Topic Detection was not Working for "Enrollment/Re-Enrollment" as a word, for example a categorization model with the text 'This is an email related to Enrollment/Re-Enrollment'. To facilitate this use, a tokenizer has been added to break 'should',' must', and 'and' words into components for a taxonomy match. | Decision Management |
SR-D81328 | 542959 | Kafka Disk Space auto cleanup improvements | High disk space consumption was seen when using a custom QueueProcessor and standard retention policies. To resolve this, an enhancement has been added which will allow consumed QueueProcessor messages to be removed from the stream as soon as they are processed to avoid out of space issues. This will ignore partitions with undefined positions. | Decision Management |
SR-D82150 | 546531 | Properties persist after revision import | When properties were added to a form, they sometimes disappeared after revision import even though the properties always remained visible in a strategy. Investigation showed that the Form changes made in a DD rule were not properly updated in the pyEditElement section. To correct this, logic has been added to handle the form changes in the DD in the following activities: Data-Rule-Summary.pyMergePropositions Data-Rule-Summary.pyRemoveDDRules Data-Rule-Summary.pyWithdrawDDChanges Data-Rule-Summary.pyRemoveRestoreDDRule |
Decision Management |
SR-D82727 | 547724 | Improved management for table pr_log_dataflow_events | The Lifecycle event table was sometimes growing too large. This additional strain of database transaction volume caused poor performance on the Dataflow tier and lead to cluster instability and time-consuming cluster restarts. Due to problems in one of the Pulse tasks, the Pulse thread was not processing single case metrics properly and causing the unbounded queue for single case to grow. This has been addressed by switching to a fixed queue size, which is configurable with the DSS: dnode/single_case_queue_size. The default value of the DSS is 4000, and if changed a system restart is required. An error will be logged each 1000 queue misses, and metrics will be dropped if the queue is full. In addition, the Pulse task frequency has been improved and managed to prevent interference with other Pulse tasks and will be triggered only if a run is system-paused for a long interval. Rebalances now have a failsafe if something unexpected happens during the Pausing of the run, and If the cluster becomes unstable, the life cycle events logs may be disabled with dataflow/run/events/persist . | Decision Management |
SR-D85095 | 546341 | Updated COUNT logic for strategies with ssavm set to true | An error was seen when attempting to save a strategy after setting ssavm to true, indicating an issue in the “COUNT” method in Group By shape. Since the source field is not used and does not need to be evaluated here, the system has been updated to ignore the source field if the operation is COUNT. | Decision Management |
SR-D85558 | 548286 | Handling added for prolonged Heartbeat Update Queries | After restart, the pyFTSIncrementalIndexer queue size had hundreds of thousands of entries even though it was empty prior to the restart. Investigation traced this to a job scheduler that checked all the database connections everyday at 1 EST by using a list that contained some connections which did not exist. Checking those invalid connections caused other update queries to queue and wait, resulting in the update heartbeat query taking longer than its default beat. This caused a Split Brain issue wherein other nodes considered the long-executing node to be dead and triggered a rebalance while the node itself continued to execute partitions thinking that it was healthy. This caused duplicate processing of records. To resolve this, a fail safe has been added: while updating heartbeat in Service Registry, nodes will enter safe mode when the update query is taking longer than the default beat. |
Decision Management |
SR-D86469 | 551896 | Performance improvements for Test Strategy data flow | In the Test Strategy panel under Single case -> "Settings", selecting the "Data flow" option and choosing CustomerData dataflow was taking an excessive amount of time to run on a system with an extremely large database. To improve performance, two areas have been addressed: 1) the default behavior for record key suggestions in the test panel has been modified to collect only the ID as the additional data is not necessary at that time; 2) a DSS has been added that will opt out of reading and collecting the customer IDs in order to minimize data stored on the clipboard. | Decision Management |
SR-D89012 | 550800 | DelegatedRules refresh icon made accessible | When using Accessibility, the refresh icon in pzDelegatedRules was being read as "Link". This has been corrected by adding text for the refresh icon. | Decision Management |
SR-D89428 | 550392 | Data Flow StartTime uses locale timezone | The start time of the dataflow was displayed in GMT instead of the operator locale timezone. This has been corrected. | Decision Management |
SR-D89643 | 548292 | Old Tumbling Time data in event strategies given TTL for cleanup | Old Tumbling Time data keys in event strategies were not being cleaned up, causing Cassandra timeouts after the dataflow run had been running for several months. The longer the dataflow was running using standard compaction, the more the data was potentially spread out across SSTables and the slower it became. This has been resolved by adding a 'time to live' value for tumbling time windows, and event strategies has been switched to use leveled compaction by default. | Decision Management |
SR-D90367 | 556687 | Cleanup enhanced for long pyEditElement names | A pyEditElement error relating to decision data was seen multiple times in a stack trace. Research showed that while the utility worked as expected for decision data rules with names of less than 30 characters, the pyEditElement section was truncated the name for the decision data. This meant that decision data with the name SampleIssueandSampleGroupTwosalkdjkightntbmkblffvfvfv would be saved as SampleIssueandSampleGroupT for the pyEditElement section. Because of this, the utility failed the match and did not clean up the pyEditElement section. To resolve this, the cleanup utility has been updated to handle pyEditElement sections of decision data with longer names. Additional logging has also been added to improve debugging. | Decision Management |
SR-D90779 | 556914 | Resolved error when using IHSummary as a predictor | After configuring the adaptive model and implementing delayed learning with IHSummary as a predictor, the exception "dataflow.StageException" appeared when the strategy was executed as part of the dataflow run. This has been resolved by implementing a cache expiry of 5 minutes. | Decision Management |
SR-D91767 | 559625 | VBD planner supports URL encryption | When using the VBD planner chart, using configure->Decision->monitoring->Visual Business Director-Datasource and then clicking on actuals generated a popup that did not have any values, and the chart was not loaded. Investigation showed that when the DSS prconfig/initialization/urlencryption/default was set to true, the Pega UI flags for encryption were not visible to code being executed by the VBD planner, resulting in the URLs not getting encrypted. To resolve this, an update has been made to set bEncryptURLs & pega.ctx.bEncryptURLs to true in VBD planner, if URL encryption is enabled. | Decision Management |
SR-D92734 | 553411 | Simulation can take Data flow type as destination | Support has been added for Data flow functionality as simulation target and data transform in simulation input. | Decision Management |
SR-D93777 | 565691 | Handling added for Oracle Aggregate IH Summaries | When using using (Non Materialized) IH Summaries to aggregate IH data, the data returned by the IH summary did not include all the expected records. If the same criteria was executed on the DB via SQL or by using a strategy to process raw IH data then the results were as expected. This was due to a difference in handling of Oracle vs postgres which causes an order by clause not to be generated in the query: the postgres column name is lower case, while in Oracle it is upper case. This has been resolved by updating the system to get the column name correctly from the propertytocolumn map so IH records are returned in correct order by Browse By Keys operation. | Decision Management |
SR-D94409 | 553303 | Strategy Explain message includes Component ID | The Component ID has been restored to the Explain mode message for strategy results. | Decision Management |
SR-D96836 | 555749 | Refinements made to MarkerNode memory use | Significant memory usage can be observed when data join in strategies are missing the join conditions. E.g., when the primary source in the strategy can have up to 300 or even more propositions, the join without the join condition would perform a cartesian product with possibly up to 400 or even more records returned. This may cause performance degradation. To guard against this, an update has been made that seeks to prevent repetitive markers being accumulated under a MarkerNode while trying not to rely on any implementation of equality and hashCode for individual marker implementations. | Decision Management |
SR-D96847 | 556987 | Unneeded MBean startup warning removed | After upgrade, Catalina logs indicated the error "WARN com.pega.dsm.dnode.api.prpc.service.monitoring.MBeanDSMService - Service DataFlow doesn't implement Monitoring operation". This was due to a flaw in the way the data flow DSM service was initialized in client mode. The exception itself was not a problem and did not impact functionality, but the client initialization has been modified to remove the warning. |
Decision Management |
Low-Code Application Development
8.5 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-118751 SR-D79831 |
562805 562801 |
Access Deny working as expected for Offers | It was possible to Save-As an offer in PegaMKT-Work-Offer after encountering an access deny rule. The record was not created in Dev Studio, however, and an expected denial of access was not registered at runtime. This was due to Access deny rules not being considered as a part of validation, and has been resolved by adding the necessary permission validation to the new harness that will produce the error message informing the user that they are missing a permission. Additional work has also been done to pass the 'pzKeepPageMessages' parameter as true so that page level error messages are correctly displayed. | Low-code App Development |
INC-120472 | 571435 | BUG-571435 | Reports which have visible date and Date time properties or values displayed correctly when viewed in PEGA, but when the data was exported to Excel the values were converted to GMT time. Due to this the date fields (with no time stamp) were showing the date less by one day in Excel. This has been corrected. | Low-code App Development |
INC-125803 | 568660 | XSS updated for pzTransformAndRun | Additional XSS work has been done on the pzTransformAndRun activity. | Low-code App Development |
INC-125822 | 566311 | Agile Studio correctly embedding attachments | Attachments were not being included in Agile Studio documents for backlogs and sprints as expected. This was traced to the third-party jar "jsoup", which was converting the parameter PegaDocumentObject to pegadocumentobject, causing a mismatch. This has been resolved by adding a check that will replace the converted name with the correct one. | Low-code App Development |
INC-126813 | 565863 | Handling added for Decision Table test case with "call" | Clicking on the Convert to test button to launch a Test Case rule form did not load all of the options to create the UTCs, and the screen seemed stuck on the message “Loading..”. This was a corner case that happened when the decision table's return value had "Call" in it: the table believed there was the need to call another decision table, which was traced to "Call" being present on the RUT's label values. To resolve this as avoid regressions, quotes have been added to the returned value so that the value is picked instead of trying to call another decision table. | Low-code App Development |
INC-131175 | 571609 | Branch rule deletion updated | When two branches, for example Test1 and Test_1, were created and the rules were saved, deleting the Test1 branch also deleted the rules in Test_1, resulting in the remaining branch Test_1 not having any rules. This was traced to the Obj-List method in activity DeleteRuleset fetching the incorrect results, and has been resolved by replacing it with a report definition created in Data-Rule-Summary. | Low-code App Development |
INC-133213 | 572532 | Merge group size decreased to match SQL list limits | Duplicate rules were seen and the error "maximum number of expressions in a list is 1000" was generated after performing a ProvAuditFW merge. Before merge there was a property populated with a comma-separated list of instances to be merged: this was used later as the source of a report definition. This was presented as a value list because of the limitations of datapages to accept very large 'when' clauses. This comma separated list was split up into batches of 200 to keep the length of this 'where' clause low. However, the SQL that was generated exceeded the limit of 1000 items in a list, causing the error and duplicates. To resolve this, the group size has been decreased so that limit will not be hit. | Low-code App Development |
INC-78420 | 566791 | Documentation clarified for pxGenerateExcelFile with template values | Using Export to Excel created the document, but pxGenerateExcelFile was not replacing template values in the generated output file. To improve the clarity of the necessary configuration, the documentation for pxGenerateExcelFile has been updated to include an example of the usage: This can be used anywhere in platform to export excel file. E.g. - export stories, specifications, requirements etc.Example Usage of properties in template: {.pagelist().property input}\n{.property input} |
Low-code App Development |
SR-D52138 | 537506 | 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-D61681 | 532561 | 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-D63307 | 542770 | Unneeded class name filter removed from GetRelevantPropertiesForDataType | Given one class with a set of properties and another class inherited from the first class containing a relevant records set for class 2, then a new harness did not show the base class fields. Investigation showed that the fields present in the parent class and marked relevant in the case were not being fetched due to pzGetRelevantPropertiesForDataType having a class name filter along with filter by rule resolution. To resolve this, the class name filter has been removed as it is not required due to the report already filtering by rule resolution and relevant class through a join. | Low-code App Development |
SR-D67316 | 541205 | XSS protection for PegaRULESMove_Skimming_Query | XSS protection has been added for input parameter toRSV of the activity PegaRULESMove_Skimming_Query. | Low-code App Development |
SR-D69927 SR-D76409 SR-D78045 |
537480 540301 539893 |
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. | Low-code App Development |
SR-D71475 | 538721 | Check added to apply values of newAssignPage.pxFormName | After upgrade, trying to open existing assignments resulted in a different harness being opened. This was traced to changes in how the property newAssignPage.pxFormName was used, and has been resolved by checking whether the harnesspurpose is dynamic before setting the pxFormName. If formname is already present, the system will proceed with picking the harness from the shape. | Low-code App Development |
SR-D72141 | 542663 | 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 | 536389 | 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-D76492 | 549969 | Added check for test case creation when XSS security enabled | Test case creation was failing. Investigation showed that when the "Cross-Site Request Forgery" security setting was enabled, the CSRF token and Browser fingerprint were not included in AJAX calls, and the Ruleinskey was not getting passed. This has been resolved by adding a check to evaluate whether security measures are included or not when making a server call from AJAX, and including the tokens required when appropriate. | Low-code App Development |
SR-D78467 | 542318 | Component rule check added to suppress unnecessary guardrail warnings | After creating a component application using Configure > Application > Components, guardrail warnings were seen when saving the component. The component application allowed adding rulesets or other applications, but did not have all the tabs found in a normal application, so there was no option for adding the associated classes to define the UI class, Integration class and data class in the component application. As component is mostly a part of (or embedded inside) an application, this function was not given options to justify or suppress guardrail warnings like Rule-Application. To resolve this, a check has been added for component rule before generating guardrail warnings for Empty UI page, Empty Integration class, and Empty Data class. | Low-code App Development |
SR-D79397 | 546416 | RUF references updated with library information | The "changeSystemName” operation failed. This was traced to the function “getLocalizedValue” (RUF) being saved into the PegaFS library due to runtime resolution based on the function signature even though the actual RUF from “Pega-Rules” ruleset needed to be picked in this case. To ensure the correct ruleset is picked, RUF references have been updated with library information to resolve the resolution collision scenario. | Low-code App Development |
SR-D80539 SR-D88451 |
544794 550849 |
Testcases are not available for 'access when' rules | Attempting to create test cases for access when rules resulted in guardrail warnings about the need to create a test case. Because Test Cases are not available for the Access When rule type as per Pega expected behavior, the guardrail warnings are not valid and have been removed. | Low-code App Development |
SR-D85111 | 549197 | Paging method updated for Select All in Broken Queue | After clicking the 'Select All' box in Broken Queue In Admin Studio, scrolling up and down rapidly caused the checkboxes to be unselected. This was traced to the use of progressing paging in this scenario, and has been resolved by removing progressive paging and replacing it with the out of the box '1 of X' paging method. | Low-code App Development |
SR-D87671 SR-D88605 |
547573 548603 |
PegaCESvcsIntegrator security updated | Security updates have been made which now require authentication to consume the services from the PegaCESvcsIntegrator package. | Low-code App Development |
SR-D90520 SR-D90572 |
552018 554968 |
REST parameters updated for SauceLabs compatibility | After configuring a call to SauceLabs testing through Deployment manager, the REST call was timing out. Investigation traced the issue to SauceLabs changing its parameter name from "browser" to "browsername", and the Pega parameter names have now been updated to reflect that change. | Low-code App Development |
SR-D90544 | 550807 | Corrected row focus for deleting in App Studio case model | When attempting to delete a row of properties from the 2nd page of the data model of a case type while using App Studio, clicking on the delete icon brought up a dialog box asking for confirmation for deletion but at the same time the screen went back to the first page of the data model instead of remaining on the second page. Because of this, clicking on the OK button to confirm the deletion caused a random property from the first page to be deleted instead of the targeted row of the second page as expected. This was due to the refresh being triggered immediately within overlay UI actions, and has been resolved by updating the first trash icon action set for the section pzExpressFieldActions to be a modal instead of an overlay when launching local action. | Low-code App Development |
SR-D91834 | 554425 | Related cases of different types properly linked in Case Worker Portal | After creating a case of type1 in the Case Worker portal, creating a case of type2 from the first case showed the case ID of the second case in the Related Work section as expected. However, after clicking on the link of the case ID of the second case from the related work section, the second case opened but the case ID of the first case was not shown in the Related work. The cases were correctly associated when the Case Manager portal was used instead. This was traced to the Case Worker clipboard continuing to hold the previous case ID thread, and has been resolved. | Low-code App Development |
SR-D93112 | 554908 | Added backwards compatibility for migrated when rules | After upgrading from v6 to v8, the 'when' rules were replaced with "" in a custom decision tree. In 7.2 and earlier releases, the Rule-Obj-When function alias had its param name as "strName"; this was changed to "blockName" in later versions of Pega. To handle backwards compatibility, the pzEmbedUpgradeToHarnessBased activity has been modified to read the strWhen param value from pyCallParams and set it to blockName params correctly under pyFunctionData.pyParameters data model, conditionally only for Rule-Obj-When function alias. | Low-code App Development |
SR-D93181 | 555468 | Pega Org Structure Tools added | An enhancement has been added to simplify working with large organizational structures with additional support for having more than 3,333 organizations. This allows choosing an Org, Div and Unit in the Operator ID and Application ruleforms using auto-completes rather than a tree, and can now handle up to 10,000 Organizations, 10,000 Divisions per organization, and 10,000 Units per Division. Installations exceeding those numbers will still be able to enter the name without validation problems, and a link to the Organization Chart landing page will be available for browsing that data in a tree. | Low-code App Development |
SR-D95797 | 556764 | Branch Preference now considered for TestCase rule | Setting branch preference from top right worked for all rule types and new rule dialog rightly set the branch, but when attempting to use this configuration for a test case, it only displayed the first branch in the app and did not follow the branch preference. This was due to the system using a separate save modal dialog for test case creation which did not consider this use, and has been resolved by implementing the branch preferences use case to show the direct preferred branch if present. | Low-code App Development |
Mobile
8.5 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-126114 | 562177 | Spaces member count method updated | When a space contained more than 50 members, it always displayed the count as 50 even though the Spaces section showed the correct count. This was due to a pagination setting that had a maximum of 50 records set, and has been resolved by using the GroupMemberCount DP instead of AllMembers to retrieve an accurate count. | Mobile |
INC-133749 | 573810 | Nested MergeDefinition logic revised | When processing a workorder on a mobile app, editing the data of the workorder and related tasks that contained page list properties while offline worked as expected, but when the data was synchronized to the server changes in the page list properties disappeared. This was traced to a logic issue related to merging multiple-level complex nested pagelists, and has been resolved. | Mobile |
SR-D56148 SR-D74839 |
537405 537322 |
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-D66095 | 529711 | XSS 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 RTE content. This has been corrected by blacklisting Pega event attributes like data-click, etc. In | Mobile |
SR-D67150 | 532023 | Resolved attachments when using Mobile page message setting | When using page-level error messages for a work object, trying to add an attachment to that work object resulted in an error and the attachment failed. This has been resolved by adding an error check in the pzAttachContentFile activity. | Mobile |
SR-D67667 | 533265 | Corrected unexpected Survey button toggling | After configuring the radio buttons so that on click of YES a new section should be displayed, clicking on the radio buttons in Pega Survey was toggling the buttons automatically. Investigation showed that on click, both refresh section and run activity were executed asynchronously, triggering the property mapping refresh before answers were clicked. To correct this, the clearSelection function call in pzsurvey_ui_userscript JS file has been modified, and questionPageName has an added 'if' condition. | Mobile |
SR-D68572 | 543004 | Added check for duplicate attachment names with S3 | S3 Storage does not allow duplicate file names, but the AttachContent function was allowing duplicate file attachments. Due to this, the sync was failing to attach on the server and the message was never communicated to the client. This has been resolved by adding a check for duplicate file names when the storage is repository. | Mobile |
SR-D73237 | 539126 | 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 | 543726 | 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-D76620 SR-D85551 |
544577 548076 |
Resolved touch events issue with updated Chrome | After upgrading Chrome, touch events on a flow action under the Action Button in a case or on the application under "Launch web interface" were not reacting and the flow actions were not accessed. Investigation showed that Chrome's latest upgrade (79.0.3945.130) removed the ontouchstart property in the window, causing the isTouchable capability identification method to fail. This has been resolved by adding a check for navigator.maxTouchPoints to identify for Chrome whether the device involved has a touchscreen. | Mobile |
SR-D76927 | 541423 | VirusCheck added to all Pulse uploads | The upload file activity has been updated to invoke VirusCheckActivity for all Pulse uploads. | Mobile |
SR-D77580 | 550094 | Corrected Survey button refresh issue | After implementing a Pega Survey question page with dynamic / reflexive questions (Answer to Question 1 determines Question 2 and so on) where every answer pick caused a refresh, picking various radio buttons quickly caused an unexpected busy indicator. Investigation showed that on click, both refresh section and run activity were executed asynchronously, triggering the property mapping refresh before answers were clicked. To correct this, the clearSelection function call in pzsurvey_ui_userscript JS file has been modified, and questionPageName has an added 'if' condition. | Mobile |
SR-D78306 SR-D91846 |
542741 550790 |
Complex question checkbox labels displayed | Checkbox labels were not shown when a survey was rendered in read-only mode. This has been resolved by updating pzComplexQuestionCheckBoxTemplateRowDetails and ComplexQuestionCheckboxTemplate section to show labels and icons for check boxes when a complex checkbox question is displayed in read-only mode. | Mobile |
SR-D80886 | 547290 | Improved usability for long Pulse notes | After a Pulse message exceeded 32 lines, the window scrolled to the top of the screen after each keypress, obscuring the typing. This was traced to the CSS on the textarea span, and has been resolved by modifying create-new-pulse to display:inline-flex; in pzpega_social CSS. | Mobile |
SR-D81859 | 543765 | Maps and signatures inside layout groups scroll correctly | A map configured in the screen was getting grayed out while scrolling horizontally. Analysis showed that when an address map is inside a layout group, the layout group swipe was triggered instead of scrolling. To resolve this, the target parent now has the data attribute "data-nogestures" = true so the layout group swipe will not be triggered. This will also prevent swipe on signature while scrolling horizontally. | Mobile |
SR-D83630 | 546143 | IsQuestionHidden property added to skip validating hidden questions | After configuring a simple question which had a validation rule defined on it and a display 'when' rule configured to show or hide it based on another question condition validation was still being fired on the hidden question and it was not possible to proceed. This has been resolved by adding code to skip validations for a question if it is hidden, based on the pzIsQuestionHidden property. | Mobile |
SR-D85780 | 547814 | Corrected iosVersion handling for getDirections | When opening the map function in the iPhone app, it first navigated to Google maps but clicking on 'get directions' opened Apple maps. This was traced to pzpega_control_actions_getDirections. When using the getMapURL function the value being assigned for iosVersion dictates the behavior: If the iosVersion is greater than 8 it opens Google maps, else Apple maps. However, an error caused the value to be sent as string instead of integer, causing the iosVersion check to fail. This has been corrected. | Mobile |
SR-D90279 | 554391 | Data sync updated for use with DeferWrite | After upgrade, attempting a data sync from the client mobile application worked for the first object submission, but the second object failed and stayed in the list. This was traced to finish assignments running back to back when deferWrite was enabled and svcPerformFlow failed to find the assignment. To resolve this, the assignmentHandle will be passed to the activity when calling the pzSetDeferWrite activity from FinishAssignmentActionProcessor. | Mobile |
SR-D91532 | 556405 | Resolved Clear Cache error for mobile client | When attempting to clear local storage while logged into the Mobile Client, the error message "You need to be able to connect to the server in order to clear the storage" appeared. This was traced to the application being configured to disable a user's web session immediately after log in, and was due to the "Clear Cache" functionality failing while attempting an AJAX request to invoke the server's "pzAmIOnline" activity. While there was a workaround of using the check box "Access group requires a connection for portions of the application", this has been resolved by updating the Settings - Clear Cache functionality in order be able to detect if it's online in a different way. | Mobile |
SR-D95638 | 556965 | Added handling for mobile SharePoint attachments | When an application was using SharePoint to store the attachments, adding an attachment in an offline-enabled mobile app and then synching resulted in the mobile app crashing if the user re-logged in and launched the same work object. This was due to the attachment handling. Attachments are downloaded during synchronization and they are base64 encoded: when a mobile phone processes the synchronization response, it decodes the base64 encoded attachment and saves the data in internal storage. In this scenario, attachments retrieved from SharePoint (REST Service) use a base64 conditional encoding that is different than in case Repositories or Pega Database storage. To resolve this, a check has been added to determine whether the base64 text contains newline characters, and if so the text is merged into one line. | Mobile |
SR-D99536 | 562119 | Page copy in DT working for offline mobile app | A data transform page copy from one page to another page where the destination page was embedded in the page list property was not working for the offline enabled mobile application. This has been corrected. | Mobile |
SR-D99701 | 558963 | Mobile app invalid credential error fixed | The OpenUrl feature did not work correctly on some Samsung devices due to handling differences for onStart and onResume lifecycle events, causing an issue with the credential handling. This has been resolved. | Mobile |
Project Delivery
There were no 8.5 Resolved Issues for Project Delivery
Reporting
8.5 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-118918 | 562154 | Table Pagination elipses display properly for more than 10 pages | When a table layout was configured with a report definition as the Data Source, the Pagination format in the grid header properly showed 'Page 1,2,3 ...' if there were fewer than 10 pages, but if there were more than 10 pages the '...' (elipses) were not appearing. This has been corrected. | Reporting |
INC-119669 | 562587 | Special character handling added to filters for table sourced with parameterized RD | Filters were not working on a table when sourced with a report definition which accepted a parameter value containing special characters (Eg: S&P). This has been resolved by using StringUtils.reversibleCrossScriptingFilter in the pzGetGridColUniqueValues activity to allow filters to contain special characters. | Reporting |
INC-125752 | 566170 | Tab Titles show the correct title on hover of tab name | When clicking on the case stages information from the Dashboard Case Manager to open the stage information in a new tab, hovering on the tab name displays the title of the case stage name. If there are two stages, clicking on the first stage opened it in a new tab and the title of the tabname on hover was correct. However, clicking on the second stage name to open the other stage in the same tab did not display the correct title when hovering on the tab name. This has been corrected by updating the code for the JSON configuration object. | Reporting |
INC-126483 | 566178 | Reports display current format for SUM or Average columns | After upgrade, the currency format showed as expected ($) for non-aggregated columns, but when a column was changed to be an aggregated column using "SUM" or "Average", the currency format was not shown. This was traced to the activity Embed-ReportHtmlProp.pzMergeAutoGenForProp, which determines whether to format the column or not, and this issue has been resolved by adding a check for AVG and SUM before processing. | Reporting |
INC-127085 | 563457 | Arch Chart Min/Max display correctly | The minimum and maximum on the 270 degree arch chart were not working as expected. The minimum value for the LABEL changed, but the actual range of the chart did not. For example, if the chart label for the minimum values showed as 50, the actual range for the chart was still 0-150, and the first segment of the chart did not display the correct color. This has been corrected by updating the functions for handling chart limits. | Reporting |
INC-127680 | 573010 | Extra 'when' check added to visibility of Sort by and Summarize | When changing filter and sort options while viewing a report, two edit filter pop-ups displayed. Neither would close, and further changes to filter options were blocked. The tracer showed that the pzDisplaySummarizeAndSortBy 'when' condition was True, allowing the Sort by drop down to be visible, causing pzReportConfigSections to create the two popups which then caused issues during the on change action. To correct this, an additional check has been added to the 'when' rule for the Visibility of Sort by and Summarize by so that it does not show any longer. | Reporting |
INC-127723 | 569492 | Ad hoc reports saved successfully in private categories | After upgrade, an error was seen when attempting to save an ad hoc report in a private category. Saving in a public category worked as expected. This was traced to the Rule-Shortcut.Validate activity, which attempted to use the Rule-Shortcut's RuleSet to find the Rule-Category. To resolve the saving issue, the Rule-Shortcut.Validate activity has been updated to do an Obj-Open on the Category instead. | Reporting |
INC-128881 | 566521 | Added check for UIInspector privilege to Pega-ScheduledTask-Reporting class | The pyEnableUIInspector 'when' rule in the Pega-ScheduledTask-Reporting class was not evaluating the presence of pxUIInspector privilege, causing the live UI icon to be visible to users who were not intended to see it in the interaction portal while scheduling reports. This was traced to an error in the related Rule for the 'when', and has been resolved by adding an evaluation of the the presence of pxUIInspector privilege to the pyEnableUIInspector 'when' rule in the Pega-ScheduledTask-Reporting class. | Reporting |
SR-D53176 | 541795 | 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-D64231 SR-D86978 SR-D94002 |
539234 549172 553767 |
Export to Excel cell style control added | If a column was 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. | Reporting |
SR-D65327 | 534571 | 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-D69098 | 534042 | Export to Excel works for for report definition with duplicate columns | After adding a date column to a report definition (2nd column in the report), the data displayed correctly in the UI but Export to Excel failed with the error "Section 'pzRDExportWrapper' execution error on page '' of class 'Rule-Obj-Report-Definition'. : The Reference .pyDateValue(2) is not valid." This was traced to an out of bounds exception thrown if there were two or more columns with the same calculation. When preparing for export, the column with the duplicate calculation would not get added to the map of report UI fields. To resolve this, the system has been updated to allow report definition columns with the same calculation to be properly mapped to a UI field. | Reporting |
SR-D69108 | 543846 | Handling added for drag-and-drop with deleted report templates | After adding a new report, an error appeared when trying to use drag-and-drop to add a column (Page List) from the Data Explorer in the report browser. This was traced to refactor work done to use the Record API throughout reporting: the ruleset on new reports was not being reset from a Pega- ruleset to an application ruleset, causing columns the referenced properties defined outside the platform to be rejected. This use case was missed because case types define their own report templates on creation, but in this scenario those had been deleted. To resolve this, the system has been updated to call pxChooseBestRuleset from pxShowReport in order to enable the use of properties defined in the application prior to saving the report. | Reporting |
SR-D71408 | 534934 | DIrty check flag triggered by adding columns and filters | If a report was edited and closed without saving, the dirty check worked as expected. However, if new columns or filters were added and the report closed without saving, the dirty check did not appear. This has been resolved by updating the check logic. | Reporting |
SR-D73777 | 539969 | Logic added for client-side Somaria decoding | When Somaria (an Advanced Data Visualization control) was used with Predictor Performance, the special characters were displayed as ASCII values instead of the actual values in the label. This was traced to Somaria encoding special characters of the visualization data into HTML entities on the server in order to protect against cross-site scripting attacks, but these entities were not being decoded on the client side. To resolve this, logic has been added to decode HTML entities in Somaria data on the client. | Reporting |
SR-D75097 | 539516 | Improved handling against formula injection attacks in Export to ExcelJJ | Every time a possibly vulnerable cell value was found during Export to Excel, the value on that cell was modified to prevent a formula injection attack. If the value was non numeric, it would still render an apostrophe, although it should be hidden. Previous work on this issue involved the addition of a DSS which allowed this security to be disabled if the Excel was going to be consumed by an external tool, but the security implementation used to protect against calculation injection has reworked the ExcelSecurity utility function to allow the ability to change the cell style of a cell that is potentially vulnerable to formula injection attacks. This change no longer changes the cell value but instead applies a new cell style that has quotePrefix enabled. | Reporting |
SR-D75757 | 540639 | ReportBrowser script updated to ensure older version refreshes on creation | When using the old version of the Report Browser, the count at the report category did not update after being saved into a category until logout and login back to the portal. This was a missed use case for the old browser during updates to the UIKit and has been resolved by including the reportbrowser script in the header section pyCMReportBrowserHeader to ensure a refresh. | Reporting |
SR-D80589 | 544841 | Check added before clearing Report definition custom filter section page | When using a Custom Section in the Report Viewer, the Page referred to at the Prefix was getting reset while running the report. Investigation showed the page was being reinitialized in pzCreateCustomFilterPage step 2, and this has been resolved by adding a 'when' rule for clearing the custom filter page. | Reporting |
SR-D83060 | 547919 | Repaired History class report column sorting | Attempting to sort any of the columns in a report using the History class did not render the results and the error "Cannot render the section" appeared. Tracer showed a Fail status for some OOTB activities with the message "java.lang.StringIndexOutOfBoundsException". Investigation showed the logic in pzMergeAutoGenForProp activity was failing because the pyIsFunction property was not set on the UIField pages for function columns. To resolve this, the logic for pzMergeAutoGenForProp has been modified to get pyIsFunction from the field name. | Reporting |
SR-D83373 | 545751 | Fusion Charts upgraded | Fusion has been upgraded to version 3.15.1-sr.1 | Reporting |
SR-D86864 | 548093 | Very long auto-generated index trimmed for use in Report Browser | The creation of a new report via the user report browser failed if there was an index with a long name (over 30 characters). The OOTB method automatically generated the prefix, but the Report editor could not handle the very long declare index name and as a result did not consider properties from the embedded pages. To resolve this, pzUpdateAssociation and pzInsertNewReportColumn have been updated to trim the prefix for the declare index to 30 characters and allow for adding a new column to the report. This work does not cover adding a new filter to the report, as that fix would require substantial changes to reporting logic. | Reporting |
SR-D88419 | 557944 | Corrected date formatting for use as a custom filter | Given a Report Definition with custom filter section, when the custom filter section had a date property which was used under filters, the filter was not shown as a date. The date was shown properly when the custom filter section was not used. This was related to the date conversion for the locale, and has been resolved by modifying the RRFilters_Logic to remove a check for dates ending in GMT and replace it with a check whether the report uses a custom filter section. This runs the correct logic to render the date as expected. | Reporting |
SR-D88500 | 562656 | Eligibility prompt integer values sorted by incremental size | In an Offer rule on the Eligibility tab of the Eligibility Builder, an eligibility row using {integer property} comparator {value} had the list of prompt values sorted alphabetically for integer values rather than incremental size when using Select value -> Existing Values. This has been corrected by revising the logic in addValuesToOutputPage to call Report.sort with different sorting algorithm for numeric values. Logic was also updated to call Report.sort for prompt lists. | Reporting |
SR-D89071 | 569732 | Case status label localized in export to Excel | The Case status(.pyStatusWork) value was not localized in export to Excel. Investigation traced this to Report definitions not passing default parameters specified on the property ruleform for the "default control". Therefore, the first 'when' condition in WorkStatus was evaluating as false, which caused the wrong field value to be used for reports. To resolve this, the first 'when' condition of WorkStatus control has been updated to succeed if the useStatusWorkFieldValue parameter is not passed. The default is true when it is not present. | Reporting |
SR-D90232 | 555781 | Combo charts now support conditional colors | An enhancement has been added to facilitate the use of conditional colors in combination charts. | Reporting |
SR-D91038 | 553165 | Corrected report with combo chart in Case Manager portal | After adding the required columns a report in the report viewer and then adding a combo chart and dropping the summarized column on the y-axes and group by column on X-axis, clicking on "done editing" generated the error "pyUI.pyChart: You must have at least two Aggregate Columns in the chart series .pyUI.pyChart.pyDataAxis(1).pyChartOutputType: A Combo chart requires at least 1 Chart Type be a Column". Investigation showed that the second DataAxis page was getting deleted in the pzCleanChartDataAxis activity, causing the validation to fail. This has been resolved by adding a 'when' rule to "pzChartIsSingleY" that checks for "SingleYAxisClustered" chart and refers the same in pzCleanChartDataAxis to skip the data axis deletion. | Reporting |
Security
8.5 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-130673 |
568040 | RuleSecurityMode enhancements added | Updates and enhancements have been made for RuleSecurityMode. | Security |
INC-118838 SR-D79181 |
560693 551124 |
OKTA receives parameters on logout | When using an OIDC logout endpoint with a parameter set as a data page value, the data page retrieved the ID Token from the DB, but when logout was clicked the datapage name was being displayed in the browser instead of the IDToken. To resolve this, code has been added to support sending ID token parameters for logoff endpoint for OKTA logoff using OpeniD connect. | Security |
INC-118927 | 571491 | Resolved OAuth2 mobile app loop | When a Pega OAuth2 authorize endpoint was invoked and the redirect URI contained "app", a loop was created where the system attempted to fetch the app alias from the state parameter value and was redirected back to itself. This could sometimes result in inconsistent mobile app styling. Investigation showed that a certificate with keyword app that was picked for the redirect URI could have the key word assumed to be the app alias context, so a workaround was to remove the app keyword. To resolve the issue, the system has been updated to look for the app alias only in the state parameter rather than performa a string contains check on the entire query string. | Security |
INC-125095 | 560830 | SAML authreqcontext duplicate key exception logging changed to debug | As part of work done to improve the performance of the pr_data_saml_authreqcontext table during the SAML flow, the duplicate key exception handing was creating a large number of unique constraint log messages while saving sessionInfo to the database during SAML authentication if ADFS was used because the ADFS provider session Info is always blank. This has been resolved by changing the log statement in the duplicate key exception handling to debug. | Security |
INC-126975 | 574804 | BrowserFingerprint generation timing updated | When trying to 'Show Conflicts' on any Circumstance Template with CSRF enabled, there was an error on screen, the requestor was killed, and the PDC Client displayed a 'Browser fingerprint: undefined' error. Investigation showed that at the time the request was fired, the browserfingerprint had not yet been generated and hence was returned as undefined. This has been resolved by adding the code to generate the fingerprint before the request is invoked. | Security |
INC-127900 INC-126640 |
567672 572263 |
Updated LDAP operator authentication handling | After setting up LDAP authentication in an environment using Robotics which runs on Kerberos and configuring LDAP AD integration with a sAMAccountName [specific to Microsoft AD] attribute for the login, two operators were being created for a single user. Investigation showed this was caused by the operator's pyUserIdentifier being mapped in the LDAP service mapping attribute while the operator ID was using a different attribute (userPrincipalName) which was mapped to .pyUserIdentifier because the Kerberos authentication was done via userPrincipalName. For the first login, an operator was created as per the Search filter field. The next time the user logged in with the same ID, another operator was created using the userPrincipalName as per the mapping defined under the mapping tab. This has been resolved by updating LDAP handling. As part of the resolution, a precedence rule has been introduced which will give the highest precedence to a mapped pyUserIDentifier, then logged in operator name. If pyUserIdentifier is not mapped in authservice, the operator name will be the LDAP login operator name. If pyUserIdentifier is mapped in authservice, the operator name will be the LDAP attribute value which is mapped to pyUserIdentifier. If the mapped ldap attribute name is empty, login will fail. In addition, debugging logs have been added to aid in troubleshooting LDAP issues. | Security |
INC-128535 | 566315 | Exception handling updated for getRunTime | After upgrade, a Java step related to API Runtime.getRunTime() was failing to execute UNIX commands in all applications that contained the code. Investigation showed that once the java injection code was detected, the API checkForJavaCodeInjection() reported an exception, but the exception should have been absorbed by the function calling it and was not. This has been resolved by updating the system to not throw the exception for old activities. In addition, an alert was generated for the Pega platform activity SysWebInfo. As this was a false alarm, an update has been made to not report such alerts for Pega platform activities. | Security |
INC-129667 | 571680 | Handling added for KMS keystore configured as datapage | File listener was not starting on all of the nodes if KMS keystore was configured as datapage source. Investigation showed that this was caused by a null pointer error linked to the getAccessGroupFromDataPage method not always returning publicApi. To resolve this, the system has been updated to create the context beforehand and pass that to the getAccessGroupFromDatapage method. | Security |
INC-130359 | 573182 | JARs updated for Azure Key Vault Integration | The Azure SDK jars have been updated to the latest versions to resolve an issue with save errors on the rule form when attempting to add Azure Key Vault as a key store. | Security |
INC-130545 | 573053 | Handling added for samesite cookies with httpOnly | After enabling samesite cookies on Chrome to support Mashup login, intermittent issues were seen with a non-mashup login where entering the OperatorID and password only resulted in a refresh of the login screen. This was traced to a scenario where an httponly cookie attribute was present along with samesite cookie attributes, and has been resolved by adding handling for a condition where samesite is set and httpOnly is enabled. | Security |
INC-130917 | 573427 | Extension point added for customizing MFA | An enhancement has been added to allow MFA to overwrite OTPInputs by offering an extension point for OTP generation and validation. | Security |
INC-131496 | 573369 | Correspondence preview works with non-English character in pzinskey | Attempting to preview a Correspondence with non-English character on the pzinskey displayed the non-ascii characters as a parameter converted to squares. As a result, the correspondence template could not be found in the template list and could not be previewed. Investigation showed that once the URL was decrypted, it was not being decoded. This has been corrected. | Security |
INC-132209 SR-D96395 |
577000 555118 |
CDK key loading modified for better DB compatibility | Users were unable to log on to the system and received the error "There has been an issue; please consult your system administrator." Investigation showed the log errors stating "(dataencryption.DataKeyProvider) ERROR localhost - Could not get CDK from systemKeyManagementCache - System CDK is null". This was an issue specific to the MS SQL Server database when there were 6 or more CDKs in the DB: CDK keys are loaded from DB into Cache using an SQL statement which had the ORDER clause. By default, the ORDER clause treats NULL values differently on different DBs, and this caused MS SQL databases to not load a necessary CDK key. To resolve this, the SQL query has been modified so the result will be the same for all supported daatbases (Oracle, Postgres & MS SQL Server). | Security |
INC-132634 | 573040 | Removed non-functional 'forgot password' link in mobile | On mobile app login, if a user selected 'Forgot Password' then navigated back to the login screen and logged in, the portal loaded in a browser tab instead of the app itself. This was due to 'Forgot password' not yet being supported in mobile even though the link was displayed, and has been resolved by removing the link as it does not initiate any flow. | Security |
INC-134046 SR-D50539 |
575238 529668 |
DB locking improved for login performance | A slowness issue seen when trying to login to my.pega.com was traced to numerous DB locks occurring on the pr_data_saml_authreqcontext table during the SAML flow. Analysis showed that while running Obj-Save on AuthRequestContext with 'OnlyIfNew' as false, the check caused a select query to run on the table to determine if the context was already there and insert it if it was not. To resolve this, the onlyIfNew check will default to true to avoid running the query; if the context is already present it will be overridden. Duplicate key exception handling has also been added to avoid any issues if a resave is done with same key. | Security |
INC-71003 | 555285 | View/Modify Database Schema Wizard updated | Security improvements have been made to the View/Modify Database Schema Wizard. | Security |
SR-D62949 | 526135 | XSS protection added | The CrossScriptingFilter API has been applied to address a potential XSS issue related to stream rule parameters used in the request header. | Security |
SR-D64566 | 547514 | Option added for redirect to SAML IDP on logout | An enhancement has been added which provides a check box to choose to redirect to SAML IDP on logout from Pega. | Security |
SR-D95501 | 557683 | Updated jar supporting SAML login to work with JRE11 | SO authentication was failing with the exception "Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.ssl.TrustMaterial". That class was packaged with Pega via the not-yet-commons-ssl.jar which is no longer being developed and only works with JRE8. This has been resolved by updating the package to the new not-going-to-be-commons-ssl.jar which has been evaluated for all supported JRE versions. | Security |
SR-D95525 | 561832 | CSRF validation update | CSRF validation has been added for non-AJAX get requests which originated from a redirected post request. | Security |
SR-D96368 | 555741 | 10 minute cap added to lockout time interval for failed logins | After a certain number of failed attempts, there is a process that locks out the operator for a time interval. When the interval has expired and the operator is able to try again, the next "lockout" uses a time interval double the prior size. Previously, this was able to grow without any restriction. In order to improve effective requestor management, an upper limit has been added for maximum lockout period. The default has been set at 10 minutes or 600 seconds, but this may be configured using the DSS : authPolicy/delay/maxDelay in the Ruleset: Pega-Engine. The value is set in seconds: if the value specified in the DSS is greater than 600 seconds, then the maximum lockout period will fall back to 600 seconds (10 minutes). | Security |
SR-D98363 | 559113 | Performance improvement for CSPs | After enabling CSP on the application rule to avoid clickjacking attacks, severe slowness was seen in the application. To resolve this, Content Security Policy response headers have been added for direct streaming requests. | Security |
System Administration
8.5 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-120326 INC-133173 |
567447 573439 |
Landing page refresh modified to avoid frequent reloads | Approximately every two weeks, clients were able to login but it was not possible to work as the landing page refreshed constantly until all of the nodes were rebooted and the issue was cleared. Investigation indicated the frequent reloads were related to the cacheing of the operator details, and this has been resolved by updating the datapage reload strategy based on 'when' so frequent reloads will be avoided. | System Administration |
INC-125136 | 575998 | Topic name prefix support added for Kafka | An enhancement has been added to support the use of site-specific standards for the naming of queues. This can be used to add clarification between Kafka Topics created by Pega and those created for internal topics when using a shared Kafka Cluster. This is done using the new setting: <env name=”services/stream/name/pattern” value=”prefix{stream.name}postfix”/> . As an example, if tenant.name is resolved into "myco" and the environment into "prod1", value="{tenant.name}-{environment}-{stream.name}" will result in stream myco-prod1-{stream.name} By default, when stream.provider = EXTERNAL, the default will be “pega-{stream.name}” . |
System Administration |
INC-127460 | 566412 | SQL 'where' clause updated to handle Oracle limits | Due to Oracle only allowing up to 1,000 IN list values in a SQL statement, a query exceeding that limit fails. To resolve this, the 'where' clause of the query has been updated to better handle this limit. The format is: WHERE col_name IN (val1, val2,……,val999) OR col_name IN (val1000, val1001,…) |
System Administration |
INC-128758 INC-132859 SR-D85100 |
569895 573488 556261 |
ProductInfoReader updated to fetch only most recent version information | After upgrade, running Hfix scanner on Pega Marketing 8.2 displayed missed critical Hfixes for Pega Marketing 8.1. This has been resolved by modifying ProductInfoReader.runQuery to fetch only latest version of DAPF instances during a scan. In addition, the 50 result limit on executeRDB has been lifted to accommodate sites with more than 50+ Data-Admin-Product-Frameworks. | System Administration |
SR-D46133 | 534650 | Colon in folder or file name will be replaced with underscore during unzip | After creating a product file (zip), attempting to import the same file into an updated system resulted in an exception. Investigation showed that in this case the zip file was a Product rule form which had applications packaged with a colon(:) in the name of the application, a format that was allowed in 6.x versions. Because Windows machines restrict creating creating any folder or file with : in its name, the zip file could not be inflated as part of the import process. To resolve this, the system has been updated so that a colon(:) will be replaced by underscore(_) during inflate operations. | System Administration |
SR-D48433 | 529856 | 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-D52142 | 532640 | AccessToken cleanup improved | In order to improve performance, an agent has been added to clean up expired accessToken data in pr_data_token and the 'where' clause pzinskey LIKE has been removed and replaced with native SQL to support queries in all databases. | System Administration |
SR-D52604 SR-D64523 |
548061 545671 |
Stream Registration deprecated and replaced | Previously, Stream Registration, which was added as an extra layer of protection during the display of stream rules, automatically registered any streams being used in the context and checked this registry during reloadSection/reloadHarness calls to prevent Broken Access Control attacks. However, only an alert was thrown and no further action was being taken on it. With platform added support for URL Tampering, Stream Registration is no longer required and has been deprecated. The URL Tampering function has the capabilities to register for auto/non-auto rules and configure whether to display warning or reject the request for all the activities, and not just the stream rules. Note that URL Tampering will do registration/validation only when security/rejectTamperedRequests is explicitly set to true. | System Administration |
SR-D54319 | 532528 | 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-D56527 | 538304 | DSS PegaAESREmoteResetTableStats set to false | In order to prevent an issue with resetting table stats that potentially impacts postgres in an unintended fashion, the DSS PegaAESREmoteResetTableStats has been set to false. | System Administration |
SR-D58740 | 538637 | 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-D63727 | 531725 | 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 | 530282 | Stacktrace will be generated for oLog errors | In order to provide improved diagnostics, oLog errors will print stacktraces. | System Administration |
SR-D64608 | 544388 | 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 | 529636 | 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-D67408 | 554899 | Directory traversal blocked in zip import | One of the files contained in a zip archive was not deleted from the system after zip import. This was due to the file being created by a third-party archive that included of a directory traversal character that caused it to be inflated outside of the temp directory. To resolve this, a check has been added to that a file with directory traversal characters in its name will not be inflated. | System Administration |
SR-D67945 | 529719 | PDC JMS Listener accesses conversion of tenant hash to tenant name | A new API method has been added for the PDC JMS listener to access getTenantNameFromTenantHash(). | System Administration |
SR-D70569 | 538509 | 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-D70872 | 545857 | Kerberos authentication parameters propagated for deployment | Attempting to perform a deployment using Kerberos authentication to an Oracle database failed with an authentication error. This was traced to the java system properties (for example, -Dname=value) required by the Oracle JDBC driver for Kerberos authentication intermittently not being set when connections were being made to the database. When they were not being set, the connection would fail due to authentication. This has been resolved by ensuring the java system properties (-D's) that were provided to the 'custom.jvm.properties' property in the collection of deployment related *.properties files are being propagated to every part of the deployment scripts. | System Administration |
SR-D72636 | 536089 | 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-D76861 | 544606 | Job Scheduler will be stopped by node shutdown detection | LifeCycle Job Scheduler was trying to start already stopped background services during node shutdown, causing exceptions to be logged. This has been resolved by stopping Job Scheduler execution when node shutdown is detected. | System Administration |
SR-D77004 | 542348 | View Full History will not include private edits | After upgrade, clicking 'View Full History' and then 'History of All Versions', showed the history of discarded private edits of other users. This was an inadvertent side effect of work done to improve the support for rollback and migration, and has been resolved by updating the system to not save the history when in a personal ruleset (checkouts/private edits). The help documentation has also been updated to note there is no history available for checkouts/private edits. | System Administration |
SR-D78274 | 544093 | Handling added for dual privileges with MSSQL | After setting up dual privileges, the Admin user was able to create a table but the base user received an "insufficient privileges" error. Investigation showed this was an issue when using MSSQL: the generated grant statements used the server login name as the user in the grant statement, instead of the database user. For all other databases, the username passed into the connection is the correct user to use for grants. Only MSSQL has a distinction between this connection user name (the login) and the database user, and since the login did not exist in the user table, the grant failed. To resolve this, when MSSQL is used, the system will fetch the underlying database user when determining the user for grant statement generation. | System Administration |
SR-D79178 SR-D79479 SR-D83053 SR-D90524 SR-D92877 |
543313 543506 544269 549047 551032 |
SameSite cookie setting added for Mashup support in 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; this value automatically includes the “secure” cookie flag, which enforces HTTPS for the Pega server and mashup. For mashups to work, SameSite should be set as None. Create a Dynamic system setting in the Pega-Engine RuleSet with the name “security/csrf/samesitecookieattributevalue” and the value "None" and restart the server. (The SameSite value "None" works only in secure HTTPS connections.) Note: The SameSite cookie may be set to None/Lax/Strict, based on the requirement. For cookie requirements other than mashup, it should be set as either Strict or Lax, depending upon your application. | System Administration |
SR-D79479 | 549779 | SameSite cookie setting updated for pre-authentication | In work done in previous versions to modify the SameSite cookie handling to support Mashups in Chrome v80+, SameSite was set to None only in case of an authenticated Pega-RULES cookie and not for a Pre-authenticated cookie. That caused the Samesite value to not be set when using a pre-authenticated cookie, and the blank value was treated as 'Lax', causing a login challenge. To resolve this, Samesite will be set to 'None' when using pre-authenticated cookie, which will match the way it is being set in authenticated cookie. | System Administration |
SR-D81572 | 551027 | JDBC URL handling added for Oracle over TCPS | While attempting to upgrade an environment over TCPS, the generateDDL.sh script was failing. The same environment ran without issue on Tomcat with the same URL. Investigation showed the JDBC url was not correctly generated while running the upgrade: in a standard scenario, there will be no spaces in the JDBC URL specified. However, because Oracle can send spaces as part of JDBC URL and cause this issue, an update has been made which will quote the JDBC URL argument for the ant target in setupDDL.xml. | System Administration |
SR-D84099 | 547825 | Atmosphere library updated | Multiple setAttribute exceptions were logged related to the Atmosphere component, indicating "The request object has been recycled and is no longer associated with this facade." Investigation showed that since the request object was destroyed, an illegalstateexception was thrown. To resolve this, the Atmosphere library has been updated to version 2.4.5.7 which contains the fix for this error. | System Administration |
SR-D84190 | 547174 | Post-Import Migration Agent query optimized | A Post-Import Migration agent belonging to the Pega-ImportExport Ruleset and set to run every 60 seconds by default triggered the SQL query "select ASTERISK from pegadata.pca_CWT_CXP_Work_Interaction" which ran for an excessive amount of time, caused a utilization spike, and then crashed the utility nodes. Investigation showed the excessive run time and load was caused by the query fetching a very large number of results. To better handle this scenario, the query usage has been updated. | System Administration |
SR-D84364 | 551401 | Check for circular references added to SearchInventoryImpl to prevent recursive call | An out of memory error was traced to SearchInventoryImpl infinitely recursing over a clipboard property, where the child property referenced a parent property and resulted in an endless loop. This has been resolved with the addition of a depth check to ensure that the search does not recurse infinitely. | System Administration |
SR-D84795 | 546203 | Handling added for NOT NULL primary key requirement | The CRMFS application upgrade failed during an upgrade of a Production-clone environment to Pega 8.3.1 with the error "Encountered an issue applying DDL: ALTER TABLE pegadata.pr_History_PegaSAFS_Data_ReasonCode ALTER COLUMN pzinskey DROP NOT NULL: Database-General Problem executing SQL to update database schema ERROR: column "pzinskey" is in a primary key." This occurred because the database had a table column as primary key with a NOT NULL modifier while the archive that needed to be imported had a table column with neither the primary key nor NOT NULL modifier in it. Therefore during import the system was trying to drop the NOT NULL modifier first, resulting in the error as NOT NULL cannot be removed if it is a primary key. To resolve this, handling has been added for the use case of not dropping the NOT NULL requirement for the primary key. | System Administration |
SR-D85745 | 545905 | DASS and DAS associated to the Pega-ProcessCommander Ruleset | An upgrade was failing at the point of Pega Rules Upgrade in the Installer Instance with the error "Encountered database exception when preprocessing deferred operations <insert updatesCache instance DATA-ADMIN-SYSTEM PEGA not only if new>. This node not found in the database - Either the record was never saved or was deleted. Unable to join the cluster." This error occurred because the strategic application import during upgrade manually included a "systemname" DASS instance which had a value other than "prpc". This caused a override of the platform shipped DASS (with value "prpc), which is required by the upgrade. In order to avoid this condition, DASS and DAS have been associated to the Pega-ProcessCommander Ruleset. | System Administration |
SR-D89002 SR-D92837 |
549103 551006 |
SameSite cookie setting updated for pre-authentication | In work done in previous versions to modify the SameSite cookie handling to support Mashups in Chrome v80+, SameSite was set to None only in case of an authenticated Pega-RULES cookie and not for a Pre-authenticated cookie. That caused the Samesite value to not be set when using a pre-authenticated cookie, and the blank value was treated as 'Lax', causing a login challenge. To resolve this, Samesite will be set to 'None' when using pre-authenticated cookie, which will match the way it is being set in authenticated cookie. | System Administration |
SR-D90687 | 560429 | Updated handling for TCP connection close | Frequent "connection reset by peers" exceptions were being generated and broken-pipe exceptions were seen in the logs. Investigation traced the issue to unhanded IOExceptions on the server side that were a result of the client application not always closing the TCP connection gracefully. To resolve this, error handling for IOExceptions has been improved. | System Administration |
SR-D98404 | 558206 | Handling added for hotfix Rule-Application instances | A null pointer error during DL file expansion performed as part of the second phase of a hotfix installation caused the hotfix install to fail. The NPE was thrown because the code, primarily used for export, performed a database lookup of a Rule-Application and assumed the response would be non-null without checking the result. During export the Rule-Application would normally exist because the system would have interacted with it already during the export by identifying it and writing it to the archive. During phased hotfix installation, rules are staged to the database in a different table during the first phase and reconstituted during the second phase. The scenario for this error was a missed corner case specific to the unusual combination of including Rule-Application instances in a platform hotfix. To resolve this and prevent further issues, handling has been added for this use case. | System Administration |
User Experience
8.5 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-B3891 | 525983 | Smart Tip shown as expected on hover | The Smart Tip was not displaying as expected after a section refresh when hovering over a button with Smart Tip configured. Investigation showed the hover event was fired, but the refresh section action had updated the DOM markup and caused the hover event's target to become stale so the Smart Tip was not shown. This was a missed use case in the implementation of the pending queue mechanism for the hover event, and has been resolved by updating the events infrastructure to add mouseover to the descriptors array to help in executing actions when processed from pending events queue. As a result of this, hover events will continue to execute while the mouseover is present. This is a change in behavior from the previous mouseover execution which required moving off the target and moving on again to trigger the action again. | User Experience |
INC-121205 | 560036 | Live UI working on modal dialogue | Live UI was not working with modal dialogue if the modal was present in an embedded iframe on a shared system. This was traced to logic in Live UI that was adding a scrollTop offset to the highlights, shifting them down, and has been resolved by adding getElementDimension() in the Live UI utilities to not add the scroll top offset when in modals. | User Experience |
INC-121210 SR-D96224 |
565369 556781 |
Validation error messages correctly cleared | The error message on a checkbox field, radio button, or text area with a on-change post value was persisting even after the correct input was provided. This occurred when the area had a caption, and was due to an additional wrapper span that caused the error div to be the span's sibling instead of the span itself. In the post value success, the system checked whether the error div was present in the area's parent, i.e. span, and when no div was returned the error msg was not removed. It was possible to add an action 'Refresh this section' on change as a workaround, but this has been corrected by updating the system so that Instead of checking the error div in src.parentNode, it will access the correct parentNode using 'closest' and check for the error div. | User Experience |
INC-122068 | 569608 | Tooltip displayed when menu item not enabled | Tooltip was not being displayed when menu item in the navigation rule was disabled. This was due to the pointer events not being supplied to the CSS selector, and has been resolved. | User Experience |
INC-123112 | 568700 | Check added for multiselect in case of ABACSecurity | A harness was created that had to be launched with 'section include' that contained more than one multiselect along with Dropdown controls sourced with different datapages and each control was visible based on conditions at runtime. When loading the harness with one multiselect based on condition, the clipboard and tracer was loaded with other datapages that were not visible at runtime but were sourced for other controls that were part of the section. When this was run, an error around the mode of the page list was generated. The same error was not observed when the configurations were made in the perform harness. This was traced to getAuthorizationHandle().getABACSecurityPolicyEngine().getPropertyInfoForDisplay, which should only be called for scalar properties, but in cases of multiselect the API was called on a vector property since multiselect uses pagelist as a source. This has been resolved by adding a check for multiselect in case of ABACSecurity. | User Experience |
INC-125093 INC-127399 |
562454 567123 |
Date range filter error resolved | When using different locale settings, an "Invalid date" issue was seen when selecting a value for a date range filter. This has been resolved. | User Experience |
INC-125398 | 564977 | Updated handling for checkboxes configured in the header | After configuring multiple checkboxes where each checkbox had a different property and different DT as action set and then using them as a single column header in the table, the on-change of any one checkbox caused all of the checkboxes to be checked or unchecked in the column header. This was caused by the pega.ui.grid.prototype.checkAllIfInHeader, which selects or unselects all checkboxes present in table (header +. body) based on checkbox status in header. However, the header row should not be part of the iterator during this function, and the necessary update has been made. | User Experience |
INC-126338 | 565555 | Scenario test cases working with radiobutton in grids | Running scenario test cases was not working correctly if the table layout had rows with radiobuttons. When the radio button control is included with a property type of boolean in a grid, radioTable class is not present in DOM. Because the scenario testing tool relies on this class of highlighted element to get the target element, the system was not able to get the proper target element in this case. This has been resolved by updating pzpega_ui_automation_radiogroup to get the proper target element when boolean type radio buttons are included in a grid. | User Experience |
INC-126474 | 567497 | Scrollintoview updated to resolve display in Mobile auto-complete | When browsing MyPega on some mobile devices, interacting with certain autocomplete fields and/or opening/closing embedded tabs caused screen to shift up and obscure the MyPega header and made it difficult or impossible to interact with the "hamburger" menu. Users were unable to scroll up and browser refresh did not fix it. A logout and log back in was required to restore the header. In this scenario, the body of the page scrolling was hidden via overflow: hidden; so scrollIntoView() tried to scroll all of the element's ancestors including the body and the distorted header was the result. This has been resolved by passing options in scrollintoview() that will stop the scrolling of all the ancestors except the immediate parent element. | User Experience |
INC-126878 | 565330 | Unused pageLimit length trimmed from multiselect loadResults | When an application had multiple multi-select dropdown fields, scrolling all the way to the last value on a dropdown list and selecting the last value took a long time for the value to display on UI. This was traced to the logic present in createCapsule API: the system checks for nextRow based on the dataRowID and loops based the pageLimit length, and that limit is a configurable value to display the maximum results in the view. In this scenario, the limit was set to 10000 max results to display while the actual results from the datapage gave only around 400 values, but the logic present in createCapsule still ran the loop 9600 additional times because it was obeying the pageLimit value. To resolve this, a condition has been added to the multiselecct control in the loadResults API that will reduce the page limit to whichever is lower, the set value or the number of returned results. | User Experience |
INC-127087 | 570123 | Resolved cropped tab overflow content | The content of the grid was cropped when a tabbed layout group used the taboverflow class style. This has been resolved by applying overflow-x auto for active layout when the layout tab has tab-overflow. | User Experience |
INC-127365 | 565732 | Harness Navigation links hidden in Report Definition Export to PDF | When using the "Export to PDF" menu item, the generated report contained unnecessary links like "Go to main content", "Go to search bar", and "Go to navigation" at the top. Investigation showed that by default the section pySkipLinksToTarget is included in the left navigation panel of the userportal harness, resulting in it being included while exporting to PDF. To resolve this, CSS has been added which will hide the navigation links when generating the PDF. | User Experience |
INC-127687 | 570010 | Dashboard Queue Widget Sorting triggered | The Dasboard Widget for workqueues was showing a sorting arrow for "created", but this sorting was not triggered for the first load of the widget and only appeared after clicking the "created" label twice. This was traced to a secondary column being loaded that was assuming the first column was already sorted. The icon and its related tool tip indicated 'The column is sorted in descending order....', which was caused by the section XML for the "created" column having "pySortType" set to "DESC" in "pyGridColumnProps", generating the sort icon for the "created" column. This has been corrected | User Experience |
INC-127931 | 568880 | Handling added for activateDocument in Cosmos App Studio | Click events were being multiplied after calling "pega.desktop.activateDocument" in App Studio for a Cosmos-based app. This has been resolved by adding the special handling necessary in for activateDocument, which is similar to that of launched portals. | User Experience |
INC-128025 | 565859 | Stackoverflow handling added for Pulse comments | In Pega Support production application, if a Pulse comment of internal post type (PegaSocial-Message) included a stack trace, the post was not added to Pulse feed, but was saved to he table. If the case was closed and reopened again from recents, the review screen did not render, and then the case could not be opened at all. This has been resolved by modifying the function "pxFormatAdvancedText" to handle the stackoverflow issue. | User Experience |
INC-128340 | 565001 | Resolved Attachment control buttons (modal) scrolling offscreen within mashup | When using a mashup with the addition of style="overflow:auto;width:100%; height: 1200 px;", buttons were going off the screen when the attachment control was used and the frame expanded, and even scrolling through the attachment list itself did not show them. This was traced to there not being a modal resize handler for a modal inside an Ajax container: to handle this scenario, pega.u.d will be used when mashup is loaded independently. | User Experience |
INC-128504 | 564639 | Added handling for repeated fast radio button clicks in IE11 | Fast clicks on the radio button were freezing the portal in IE11, and the browser console showed the error "Unable to get property 'parentNode' of undefined or null reference". Because the radio buttons were configured with postValue and refresh section, clicking the options continuously in IE11 caused the markup to change with each refresh section. Because IE does not save the stale DOM references, this results in null target and processBehaviour() and causes a script error. To resolve this, updates have been made so that if the target is null, the entire event.target and its parent elements are detached from the DOM, and the target and its parent will be handled by accessing them from the new DOM. | User Experience |
INC-128605 | 566558 | Pop-up retains focus from the multiselect list | When selecting from a multiselect list and the list popped-up above the field that it's supposed to populate, it lost focus from the drop-down list. The issue was reproducible only when the popover opened upwards; if the pop-up was below the field that it was supposed to populate, it worked as expected. This has been corrected. | User Experience |
INC-128646 | 566110 | Added check for Past and Future values in Display range for DateTime control | The display range for the Date Time control was defaulting to dates in a 10 year period, leading to an issue with attempting to select dates before 2010. This was an unintended consequence of changes made related to pyNoOfYears that missed checking for values in pyPastNumber and pyFutureNumber. To resolve this, the 'when' condition in DT 'pzSetNoOfYearsForDateTime' has been modified to exit if both pyPastNumber and pyFutureNumber have values present. | User Experience |
INC-129388 | 571373 | Check for mobile added to Pega Client for Windows time control | When attempting to enter time using the out of the box time control in Pega Windows Client application, the control became stuck and continued to show on the UI even when screens were progressed. If the control was marked as a required field, this was a blocker. This was due to the 'validation_validateFromUIEvent' overlay invoking the 'pega.util.Event.getEvent()' function: this function was trying to get the events by traversing all the way to the event initialization, but the process was timing out on mobile/touchable devices and returning the parent event as undefined. Because 'pega.util.Event.getEvent()' was undefined, the validation_validateFromUIEvent caused js errors. To resolve this, a check for mobile has been added to the validation. | User Experience |
INC-129395 | 572136 | Null check added for preActivityDynamicParams | After upgrade, the preactivity did not run when launching a harness in a popup window from a button, and the following error was thrown from Step 2 of DisplayHarnessWithClass: "Exception occurred either while updating preActivity Param or executing preActivity in DisplayHarnessWithClass". Investigation showed that when a show-harness pop up with pre-activity was configured, the pre-activity was failing to run because preActivityDynamicParams was returned as "null" from client side. To resolve this, a null check has been added to the pzpega_control_actions_showHarnessWrapper js file. | User Experience |
INC-129605 | 572462 | Grid displays in tab layout | The Grid height was being reduced to 2 px when used in a tab layout. This was due to the table inside the tabbed layout being registered for runtime calculations, and has been resolved by registering it only when table is hidden on load. | User Experience |
INC-130011 | 571832 | Resolved stale reference error when swapping stages with drag and drop | If user swapped stages (2nd stage to 1st stage) using drag and drop and then added a participant or role in the stage, a Pega blue screen appeared. This was traced to using a grid with reorder and an inner grid in the cell. On drag and drop, the grid reference object was stale and not in sync with the latest table. To resolve this, code has been added to reinitialize the inner grid on drag and drop. | User Experience |
INC-130197 | 570007 | Keyboard works for sorting columns | It was not possible to sort the column of a table using keyboard due to a lack of tabindex on the header cell. This has been resolved by updating the condition to add the tabIndex to all header cells. | User Experience |
INC-130464 | 568333 | Added error recovery handling for case wrap up | When attempting to submit the case wrap up for two service cases in interaction portal, completing the first task and then clicking "cancel this work" on the second caused the application to freeze with the console error "Uncaught TypeError: Cannot read property 'split' of undefined". This was due to AJAXContainer data model corruption, and has been resolved by adding handling for this condition that will first close the previous document and then submit the assignment in next document. | User Experience |
INC-130587 | 574319 | Added handling for refreshing tab not in the view area | Refreshing the tabbed layout current tab was causing it to lose focus, specifically when clicking on one of the tabs in dropdown list of Layout group tab and refreshing its inner section when there were more tabs than could fit in the view area. To resolve this, the logic inside resizeActions and initialiseLGTreatment method has been modified to adjust and display the active tab in the view area. | User Experience |
INC-132187 | 570648 | Null check added for pyModes page | After an upgrade from Pega 6 to Pega 8, the Decision Table execution differed with the same test conditions and caused flow execution errors. An attempt to resolve the issue with the addition of a setting that utilized the Pega 6 behavior of an empty property not being considered as missing led to sections not opening and an exception was generated. Pega 7+ expects there to be a pyModes page for the sections when opening a section rule. This page does not exist in lower Pega versions, causing the section opening to fail after upgrade from Pega 6 to Pega 8. This has been resolved by adding a null check for pyModes page to avoid the exception. | User Experience |
INC-132405 | 574687 | Added check for label property for 'work object already open' popup | When a tab in a tab group was open, attempting to open the same tab again displayed the error message "TestApp case layer is already open" instead of the expected message "Tab1 is already open". This was traced to the label property not being available, and has been resolved by updating the pzpega_ui_dynamiccontainer file showConflictDialog method to check for label property when Label is not available. | User Experience |
INC-133757 | 577056 | XSS filtering updated for PerformFlow | XSS filtering has been updated in the “pzPerformFlow” activity. | User Experience |
INC-134205 | 577700 | Cosmos layout switch works with language packs | When using localization, operators were unable to switch between Details & Pulse layouts: no action was performed on click of the tabs. This was traced to the generated java code in the pzTemplateNav control which fills out the navigation data page with values for "section name" and "label" used for targeting corresponding section in DOM. Because both values were not working in all possible cases, this has been resolved by swapping section targeting from label-based to index-based. | User Experience |
INC-134228 | 576993 | Text area control treats URL encoded string as plain text | The TextArea Read-Only UI control was not able to show the % and numeric data in an encoded URL. This was an unintended consequence of work done to support the use of formatted text in place of a Label in order to display the text, and has been resolved by skipping unescaping the text as part of the encodeHtml function in the template_displaytext js file. | User Experience |
SR-D44769 | 531440 | Resolved non-template harness stale reference for navigation menu | Post upgrade, the navigation menu was initially present but disappeared on click of a menu item. This issue was seen only when the harness was non-template and SPA was enabled on the dynamic container: when launch harness was done on the same harness, change tracker created a new thread object but the client cache was holding the stale reference. When using template harness, mergeBigData adds all the new details into the stale object, preventing this issue. To resolve this issue for non-template harnesses, initChangeTracker in pzpega_ui_doc_lifecycle file has been updated. | User Experience |
SR-D51776 | 531985 | Check added to resolve Ajax Container instantiation error in log | When using the IE 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-D57629 | 532492 | Navigation sub menu shows all options | The switch app menu was running off the bottom of the screen, and using arrow keys to navigate it caused the whole portal to jump up. This was traced to the sub-menu style attribute 'top' being changed to '0' if it was given a negative value. To resolve this, a condition was added to check whether the rendering sub-menu height is greater than viewport, and adjust the top attribute value accordingly. | User Experience |
SR-D58021 | 524962 | Show-stream/html repaired for custom portals | After upgrade, show-stream/html in activity was not getting executed properly on custom portals. ShowDesktop was modified in 8.1 for AssociateRequestor implementation. As part of that, the custom portal step was moved to the new activity pzPopulateRequestor which is invoked from ShowDesktop. The JUMP condition in step is exiting the pzPopulateRequestor activity, but not ShowDesktop as was the case in the previous versions. To resolve this, the JUMP condition (.pyDesktopType=="Custom") has been added in ShowDesktop at the pzPopulateRequestor call step. | User Experience |
SR-D58868 | 531800 | 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-D60367 | 534853 | 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-D61560 | 539474 | Support added for multiselect control with SmartTip for iPad | When using a multiselect list control to a lproperty with Smart Tip configured, choosing one item on an iPad and then trying to tap or drag down the vertical scrollbar caused all listed items to disappear. To resolve this, the multiselect control has been updated to handle the popover exit on smart popover hover along with arrow key navigation support for tablets. | User Experience |
SR-D62361 | 534810 | 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-D64244 | 532983 | 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 | 531807 | 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 | 533962 | 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 | 534324 | Accessibility enhanced for multiselect | Aria attributes for multiselect items and container have been added to enhance accessibility. | User Experience |
SR-D65917 | 529628 | XSS protection added to ClientDynamicData | Cross-site scripting protection has been added to various parameters in the pzClientDynamicData HTML rule. | User Experience |
SR-D66436 | 529672 | 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-D67012 | 537309 | Invalid dropdown time will retain entered time | If a datetime control using dropdown mode and a timeofday property had a validation error, on refresh the current time was being set in the dropdown. This occurred when selecting only one part of the time property (only minutes or only hours), and included an error indicating that the provided time was not a valid time of day value. To resolve this, an update has been made so that if this combination has a validation error, on refresh setting the user-entered time will be given in the dropdown instead of the current time. | User Experience |
SR-D67674 | 537588 | Check added to skip validationtype for disabled controls with Accessibility | On enabling Accessibility, a disabled DateTime control was throwing a 'required' error. This was due to the dropdown markup having the validationType="required" attribute set if the control was configured with a required 'when' expression. Even though the expression evaluated as false, validationType="required" was still set. This issue was seen only in non-template datetime control, and has been corrected with a check to skip adding a validationType attribute for a disabled control in Accessibility mode. | User Experience |
SR-D68277 | 541816 | 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 | 535987 | 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-D68328 | 557750 | Unload handler added for use with custom popups | A memory leak seen in IE was traced to a custom script to close windows which bypassed window unload and continued to hold some objects in memory. This has been resolved by introducing a new file which will load only for popup harnesses and which registers the unload handler to remove the popup window references. | User Experience |
SR-D68721 | 532595 | Corrected span tags in non-templated Autocomplete | Span tags were seen in the auto complete list when Results display was selected as "In a list". This appeared only in non-template mode, and was traced to the application of a crossScriptingFilter after adding span.match element to the value. To correct this, the crossScriptingFilter will be applied before adding the span.match markup to the value. | User Experience |
SR-D69452 | 536400 | Layout management corrected for nested gadget sections | Post-upgrade, some buttons were missing or mis-aligned, specifically the 'Reopen' and 'Cancel this Assignment' buttons were missing, and if 'Cancel this Assignment' was clicked, the Back button was missing. Investigation showed that when using nested gadget section includes, the necessary stack management to pop previous gadget parameters was not present. This has been resolved by adding a check for template rendering, as there is separate handling for template rendering to manage the stack. | User Experience |
SR-D70064 | 541962 | Case UI correct following multiple approval levels | After proceeding through different levels of approvals, the UI of the case was incorrect on the final approval submit. This was traced to the forceSkinGeneration parameter, which was set to true, being used by a workformstyles fragment. This has been resolved by changing pzUsePreferenceSkin to "once" and setting the parameter forceSkinGeneration to false after the pyAttachAsPDF activity call. | User Experience |
SR-D70310 | 537140 | Window type check added for icon display logic | When a Role had privileges to use Live UI, Agile WorkBench and Scenario Testing, the Scenario Testing tool icon intermittently did not show. This was traced to an incorrect condition used to check whether current window was of type desktop (portal) window, and has been resolved by adding a check that will also ensure consistency with Agile Studio icon display logic. | User Experience |
SR-D70768 | 547017 | Handling added for unavailable oWnd | After using a Snap Start URL to open an assignment, terminating the requestor and hitting the URL again resulted in a blank screen. This was traced to the pzUnknownSessionAlert script throwing an error when oWnd.pega was not available, and has been resolved by adding the needed handling. | User Experience |
SR-D71202 | 535409 | 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-D71402 | 532332 | 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-D71522 | 539324 | 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-D71944 | 543731 | 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-D73224 | 542629 | Case manager portal links working with SVG file | After modifying the pyPortalHeader to show a custom logo in the Case manager portal by saving the pyapp-logo.svg file into a ruleset and uploading the logo, none of the Case manager portal links or menus were working and a console error appeared. Investigation showed the SVG file stream was decoded and then encoded using the Base64Util.encode and decode, which was adding new line characters. To resolve this, step 4 in Rule-File-Binary.UploadFile Activity has been modified to remove the Base64 encode and decode. | User Experience |
SR-D73260 | 536891 | 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 |
538664 542923 |
XSS filtering for ActionStringID | XSS filter logic has been added to the ActionStringID function. | User Experience |
SR-D73847 | 536163 | 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-D74008 SR-D77359 |
537290 542137 |
AAAFilter on the grid shows value for a second click | A Filter on the grid was not showing any record value for a second click. This was traced to a conflict in considering column headers caused by the Filter Icon delegating two Grids, leading the process to take the context of the other Grid instead of the one which had been clicked. To resolve this, a check for the right context of the Grid has been added to the filterOnProperEvent method. | User Experience |
SR-D74057 | 540061 | 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 | 537514 | DateRange clear button localized | Localization has been added to the 'clear' button in DateRange. | User Experience |
SR-D74489 | 541789 | Timeline correctly shows events in local timezone | The DateTime value shown in the DateTime control and Timeline control were different from each other when using a locale setting. For example, a DateTime value which was within British Summer Time (BST) displayed as BST in the DateTime control correctly but displayed as GMT (one hour earlier) in the Timeline control. A site configured with the fr_FR locale in Europe/Paris timezone showed an incoming call interaction at 09:30 AM local Paris time while it appeared as 07:30 (GMT time) on the screen. Investigation traced this to the Pega date time formatter not being used when calculating event times, causing events to display in GMT and not in the local timezone. This has been resolved by ensuring the Pega date time formatter is added to the timeline component to display events in the local timezone. | User Experience |
SR-D74704 | 535942 | Section and navigation rule localization added | Localization has been added for sections and navigation rules that include some of the OOTB rules like Locked and Get help. | User Experience |
SR-D74992 | 546877 | Improved CPMHC performance | After upgrade, slowness was seen when using the CPMHC application. This has been improved by adding IE11 optimization with the most recent javascript API. | User Experience |
SR-D75205 | 543567 | 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-D75421 | 552437 | Parameters added to protect font size in HTML to PDF conversion | Pega uses the pd4ml external library for HTML to PDF conversion. As part of this, the adjustHTMLWidth API was called to avoid truncation issues, but this resulted in font-sizes not being preserved in the exported document but rather changed as necessary to fit in the PDF. In order to support preserving the font size during export, the pyPDFSettings datatransform will call the protectPhysicalDimensions API along with setHTMLWidth, and avoid calling adjustHTMLWidth. With this change in place, any content width should not be set explicitly to some value as it may lead to truncation if the space is not sufficient. If there is no width set, text will wrap automatically. In case of tables with large number of columns, truncation issues may be seen: to avoid such issues, pass a larger htmlWidth value so that table will be reduced in size and in the rest of the page, font-sizes are preserved. | User Experience |
SR-D75835 | 539303 | Added handling for 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. | User Experience |
SR-D75964 | 542686 | Check added to ensure enter key triggers autocomplete onchange | Tenant details were not loading, and no requests were seen being generated after the selection of the tenant. Investigation showed that for autocomplete control, a dummy onchange attribute was added, i.e., data-change = "[]". When the value was selected using the enter key, fireACOnElem was not executed in processEvent function as the condition isExplicitConfig(target) was true. To resolve this, an additional check attr(data-change) != "[]" has been added for ClientConditionExecutor to trigger fireACOnElem. | User Experience |
SR-D75966 | 537945 | Check added so DT parameters passed when using anchor tag | When using a link control configured such that the value of the text in the link control refers to an anchor tag such as Text, clicking the link to launch a harness and call a DT with passed parameters was not working. Investigation showed that when the link had an anchor tag, pyDataTransformDynamicParams was not getting passed as query string parameter. In pega.desktop.showHarness function, there is a If condition which checks whether any "=" is present in preDataTransformName variable and if there is any, it does not add pyDataTransformDynamicParams. This was not an issue with anchor tag itself, but rather a generic issue: any value with "=" would behave in the same way. To resolve this, the pega.desktop.showHarness API has been updated to check against the proper value (pyDataTransform=) instead of just = to identify old modal parameters. | User Experience |
SR-D76348 | 538608 | Right-to-left styling added to Cosmos localization | When using Cosmos, the Preview Screen was displayed in the middle of the screen when using a locale that reads right to left, such as Arabic or Hebrew. This has been resolved by updating the styling to handle right-to-left scenarios. | User Experience |
SR-D76826 | 543096 | 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-D77557 | 544683 | Support added for custom portal with temporary work object | After creating a screen flow with temporary work object in a custom portal, entering some data and clicking caused the screen to be blank after browser refresh. The same process from Designer Studio or the Case Manager portal worked as expected. Investigation showed that SPA applications with displayonpage actions was sending empty parameters to render the harness due to the 'doUiAction' activity clearing additional pages for single frame portals. To resolve this, the 'when' rule in step14 has been updated to support a custom portal and temporary work object. | User Experience |
SR-D78196 | 547266 | Prepending zero to single digit hour and minute for iOS native calendar | The iOS native calendar was not parsing datetime values if h m values were less than 10, for example 09:05, resulting in an exception and freezing the app. To resolve this, the system will prepend a zero for iOS if the hour and minute values are less than 10. | User Experience |
SR-D78258 | 545360 | Corrected element pick for CaseAssetsParticipants in UI-Kit | The pyCaseAssetsParticipants function from UI-Kit in 8.3.1 was configured with 'launch local action' instead of 'list open local action'. Because of this, the hover event was failing. While there was a workaround of using the action ‘List Open Local Action’ instead of selecting ‘Launch Local Action’ , this has been resolved by adding a check to pick the correct element. | User Experience |
SR-D78557 | 551841 | Check added before generating aria-label | To improve accessibility, logic has been added to dynamic layout generation that will check whether the text value is empty, and if so an aria-label will not be generated. | User Experience |
SR-D78562 | 543530 | Calendar Mode accessibility enhanced | Accessibility has been added for datetime control's calendar mode by adding alternative text and an aria-label for the image icon with a value from fieldvalue "Choose from calendar". | User Experience |
SR-D78659 | 545760 | Resolved CSV validation overflow in Chrome | When using Chrome, validation of records was getting stuck in the UI at 32000+ while importing a CSV file with many invalid records when using the import option in Data type’s local data storage. Investigation showed the Call Stack size limit was exceeded in the Chrome dev tools due to the ":first" selector being passed to the Jquery find() method to find the element from the first element child of the XML doc. This selector causes maximum callstack exception when the document is large, and this is a deprecated selector in later versions of Jquery. To resolve this issue, the XML function in pzpega_tools_asyncprocess has been updated to replace the ":first" selector. | User Experience |
SR-D79526 | 544788 | ClassName will be updated when element model page is updated | In the event of traversing from Parent to Child, The Declare_pyDisplay datapage in clipboard was not in sync for the Child as the Active UI Element. This was traced to reliance on the pyClassName field of data element model (Declare_pyDisplay.pyDisplay(Developer).pyUIActive(1).pyClassName) to update the client side UI based on a particular condition evaluation. Because some of the properties in the element model are updated only if the page is newly created, using a page which was already present and updating values with some other UI actions was only updating specific properties which did not include pyClassName. To support this use, modifications have been made so the pyClassName will also be updated whenever the page is updated. | User Experience |
SR-D80572 SR-D99025 |
558412 558221 |
Refresh-Other section correctly shifts focus on tab out | After upgrade, a difference was seen in the behavior of the Refresh-Other section action functions. Previously, focus was shifted to the next field when tabbing out, which is the desired behavior. Investigation showed that this was a result of modifications made to resolve other focus issues, and the previous behavior has been returned by updating the conditions used to call the "focusNextElement" method to include a check whether the reloadElement is stale, and to get the focusElement from DOM based on name (pega.util.Dom.getElementsByName(focusElemName)) if needed. | User Experience |
SR-D80696 | 548825 | Autocomplete context fetched for dropdown in nested case | The autocomplete dropdown was empty when using SmartTip and the down arrow was clicked while opening an autocomplete case within an Interaction case. Opening the service case directly in a new tab populated the dropdown values as expected. This has been corrected by registering context changes just before the content is fetched for the overlay. | User Experience |
SR-D80825 SR-D84180 |
546573 550230 |
Resolved tab appearance issues related to resolution support | When trying to add multiple tabs on larger screens, once the first row was filled with tabs then new tabs began appearing at the bottom of the layout group. The layout group worked as expected with the tab overflow having the right and left arrows with the dropdown on smaller screens. In addition, @1440px the overflow arrow on the right side was not working correctly, showing as grayed out even though focus was not on the last tab. These issues were traced to taboverflow with add icon not working correctly at certain resolutions. To resolve this, the todisableslide function has been updated to consider add icon width and layoutgroup has been updated to consider parent width. | User Experience |
SR-D81726 | 544010 | Corrected refresh section for grid dropdown using Chrome | When using the Chrome browser on a Windows machine, an incorrect click event fired when dropdown options were changed inside a grid was causing refresh section to not work properly. This has been resolved by suppressing the 'click' action on dropdown in the 'ui_events.js' file. | User Experience |
SR-D81924 | 548650 | Resolved Ajax and autocomplete errors in mobile offline | When logging into the app for the first time on a new session to navigate to scheduled contacts and reschedule one, clicking the right or left arrow icons to move through dates resulted in an "AJAX request failed" error. POST 500 errors were also logged in the Developer Tools console with every click of the icon. It was possible to close the error and continue, and navigating to another screen and returning or leaving the app and restarting it resolved the issue. This has been resolved by adding dataOnly for getParentWorkItem to support a Parent online and child offline scenario. In addition, an issue with console errors caused by a popup when autocomplete did not have any results has been corrected with the addition of a null check to clear the results div only if it exists. | User Experience |
SR-D82148 | 546762 | Localization improved for ToolTips | Attempting to use the Field value to localize the tooltip for Hour and Minute resulted in the time being displayed as "tooltip: Hour". Support has been added for localizing these fields using pyTooltip. In addition, an issue with the tooltip still being displayed after switching helper text to None and saving (without manually clearing the existing text) has been resolved with an update that will clear the tooltip value when helper text is selected as 'None'. | User Experience |
SR-D83027 SR-D87612 SR-D96733 |
548583 547625 555178 |
Resolved Internet Explorer 11 custom dropdown issue | Internet Explorer 11 was not consistently opening the dropdown when the dropdown format in skin used a custom state for hover,focus and active. This has been resolved by making the styles that are present in the mobile controls css file available to skin configuration. | User Experience |
SR-D83476 | 550786 | Layout Group (Tab) keyboard navigation behavior made consistent | When using keyboard navigation for Layout Groups (tab), arrow keys (up/down/left/right) are used to navigate the tabs once focus is set on the first tab, and the tab contents of each tab is opened automatically. It was noted that pressing tab a few more times caused the second tab to gain focus, but the contents of the tab did not open automatically or when enter was pressed, which was unexpected behavior. For accessibility best practices, tab focus should not be allowed on tab groups. To resolve this issue, this has been removed and the system will continue to follow auto activation of tabs on arrow keys. | User Experience |
SR-D83931 | 545873 | Header style inheritance corrected | When a header style for a container was explicitly set, any layout underneath inherited that style when using container formats set to 'Use Skin Base Settings'. This has been resolved by increasing specificity for the header title. | User Experience |
SR-D84436 | 546248 | Popup position calculation check added for frameless portals | When trying to select any node under the agent, the complete section was scrolling up to the top. This issue was observed in frameless portals when the user scrolled down and launched the popup, and was the result of the the parent div's scrollTop value being added to the popup's "top" value. To resolve this, an additional check has been added for frameless portals (document.body.scrollTop) while calculating the popup's position. | User Experience |
SR-D84882 | 551990 | Resolved duplicate messages from HarnessErrorList section | When using pyCaseErrorSection to call HarnessErrorList and display any errors on Clipboard page, when the Clipboard page had more than one error then the error message was shown multiple times. This has been resolved by adding a check that will iterate through the errors to see if it is present on the page already. If it is present it will be ignored, and if it is not present, then it will be added. | User Experience |
SR-D85228 | 548200 | Focus retained after cascading dropdown selection in IE11 | Given two DropDown fields sourced with data pages where the first dropdown value was passed as a parameter to the second dropdown source data page, at run time using IE11, If the first dropdown field value was selected using the tab key, the focus shifted to the second drop down field and was immediately lost. Pressing the tab key again set focus to the top of the window. This has been resolved by updating the system to retain focus upon cascading dropdown refresh when using IE11. | User Experience |
SR-D85339 | 548182 | Calendar AM/PM corrected for Chinese locale | When using the Chinese locale (zh_CN), opening a calendar control in the Report definition to select filter values resulted in the Calendar tab dropdown showing "上午" (AM) when the system time was in "下午" (PM). Investigation showed that when generating a non-auto date time control, ampm text (i.e. string value) was compared with the generated select component using locale specific values which did not match any time, so AM was always selected as it was the first value in the dropdown. To resolve this, the system has been updated to use the locale specific AM PM values for non-auto-generated date time control. | User Experience |
SR-D85400 | 549061 | Reset focus to RTE after Spellchecker use | After correcting the misspelled words as suggested by SpellChecker, the corrected words were not reflected in the email. This was traced to a focus issue in RTE, and has been resolved by ensuring the focus is returned to RTE once the suggested corrections are accepted. | User Experience |
SR-D85848 | 551847 | Improved accessibility for tab key navigation in tables | When using the tab key to navigate to the first cell in a table, the cell itself was taking focus instead of the link and the link did not open when 'enter' was hit. Instead, hitting tab a second time opened the link. By default, the standard was to have tabIndex set on the first cell of every row for accessibility so the link inside the cell gets the next level of focus. To resolve the navigation issue and avoid user confusion, while adding `tabIndex` to first cell of every row, the system will check for focusable content and avoid adding `tabIndex` to `td`. | User Experience |
SR-D86274 | 552509 | Resolved validation conflict with error message display | Error messages set through property-set- messages or edit validate were disappearing when out of focus from the date field if the field had a mandatory condition. This was traced to an edge condition where required validation was conflicting with another error message, and has been resolved by modifying the code so the system will not validate required on blur if the input has another error message. | User Experience |
SR-D86360 | 548571 | Handling added for declare expression targets when harnessid is null | Client expression calculation was not happening in Perform harness. Research showed that whenever text input calculations happened, the expression_calculation js setTargetValuesSuccess function was called but the elementList parameter was passed as null due to the inputHarnessId parameter being undefined. This has been resolved. | User Experience |
SR-D86429 | 551372 | Badge text Control Format supports declare expression target | In the user screen, some properties are shown in 'Text' control with 'Badge text' control format. When the value of this property was set in Data Transform, it appeared correctly. When the property value was set in Declare Expression, no background color was set. This was traced to a missed use case in the implementation work for vtable, which resulted in the control format mentioned in presentation tab of control not being applied on markup when the property was a declare expression target. This has been corrected. | User Experience |
SR-D86694 | 548669 | TeamMembersWidget section include corrected for PortalNav | An error was seen when attempting to include the pyTeamMembersWidget section inside a pyPortalNav section. Investigation showed there was a data corruption in the section. As a local change, it was possible to 'save as' the section to a ruleset and delete the section embedded in the grid, then drag an embedded section layout from Layouts, add it to the grid row, and select pyTeamMembersWidgetRow. As a permanenet resolution, the corrupted section has now been replaced. | User Experience |
SR-D87019 | 561908 | Required attribute of the layout label considered for displaying "*" on the button | After upgrade, radio buttons with a “required” when condition did not have that condition triggered. This was traced to validation only being applied to the first row when using a repeating dynamic layout. Because of this, if the first row 'when' rule is false and subsequent rows 'when' rule is true, the validationType='' attribute is stamped for all rows as first row when rule is false. To resolve this, logic updates have been made which will stamp a button's required attribute for showing the '*' symbol based on the required attribute of the layout label. | User Experience |
SR-D87203 | 550995 | Required field accessibility improved | In some instances, there is no non-visual indicator that a field is required. Because the asterisk character is commonly ignored by screen readers, the <required> attribute or <aria-required> should be used so that non-sighted users have explicit information about the required status of the field. To enable this, when client-side validations are disabled on the harness and clientValidation attributes are absent, the system will run an additional check so that aria-required is added. | User Experience |
SR-D87991 INC-129517 |
558972 577886 |
Support added for Ajax container refreshCaseSections | The Refresh/Visibility Condition in Dynamic Layout was not working in the Interaction portal, but did work in a Stand alone service case. This resulted in the summary area not being refreshed when a case was opened in a new tab, which is a new feature supported in Cosmos, leading to a post value used in the case processing area to not be present in the Summary panel on blur of the input field. This was due to the use of the new Ajax container, which did not yet have support for all the out-of-the-box actions such as Refresh-Section or Refresh-Condition. That support has now been added by way of the javascript API pega.u.d.refreshCaseSections. | User Experience |
SR-D88057 | 549111 | Calculation logic updated for SLA with Goals and Deadline | The DateTime control was displaying the date reduced by one day in runtime if it was configured with an SLA using Goals and Deadline. This has been resolved by removing the seconds and milliseconds in the calculation. | User Experience |
SR-D89242 | 555589 | Corrected layout refresh for grid state page | When the condition builder had an empty row, on submit an error was displayed as expected. However, attempting to delete the empty row resulted in an exception. Investigation showed that the layout refresh was causing the grid state page to get deleted upon submission of the modal. This has been resolved. | User Experience |
SR-D89672 | 550526 | Custom error label styles work for 'required' | When using the default 'required' error message, the class "labelError" is added when the required field is empty. However, when the default 'required' is replaced by a custom error message, a UI error was seen because the class "labelError" was not added when the field was empty. This was traced to an error in the non-template to template code transform, and has been resolved by updating webwb_pzpega_ui_dlcelltemplate_js to add the labelError class based on the presence of an error message. | User Experience |
SR-D90284 | 551473 | Added 'when' condition to class change in ShowColorPicker activity | When using an included color picker control in a section, selecting a color resulted in the color picker pyworkpage class content changing to Embed-Skin-Controls. This has been resolved by modifying the previous behavior of always changing pyWorkPage's obj class as part of the ShowColorPicker activity by adding a 'when' condition to change the class only if it is empty. | User Experience |
SR-D90331 | 553608 | Context-specific APIs used for RefreshHarness with AJAX container | After creating an interaction case and letting it go idle, attempting to continue and process the service cases in that case was intermittently resulting in a transaction ID mismatch error. This was traced to handling in the AJAX container, and has been resolved by updating the system to use context-specific APIs for refreshHarness case in doc_submit. | User Experience |
SR-D90711 | 553091 | Portal harness maintained when opening email link | When an email link was opened (pxOpenAssignmentLink), the portal harness was replaced with the case Perform harness. This has been resolved by ensuring the 'flex' CSS class is added for the portal harness div when using pyMobileSnapStart and a top navigation portal. | User Experience |
SR-D91030 | 550796 | Date time control custom length honored | A custom length for the date time control in the Presentation tab was not working. Investigation showed that the Span tag containing the date time controls input box was missing a display:inline-block style attribute, causing the input box to overflow the span tag so the width was set to 100% by default if the date time control had any custom width configured. This has been corrected. | User Experience |
SR-D91203 | 556335 | Updated RepeatProperties parameter handling | Multiple "Problem registering with change tracker" errors were seen in the logs. This was traced to the getRepeatingIndexCT function depending on pzRepeatProperties map and calling markRSPropertyForCT, but pzRepeatProperties map is empty and it was only checking for the parameter. This has been resolved by adding a check for pzRepeatProperties map size before calling markRSPropertyForCT. | User Experience |
SR-D91344 | 560626 | Resolved PageCannotBeSerializedForPassivationException in logs | The exception "One or more properties could not be serialized during passivation and have therefore been lost. They will not be available on activation. Please ensure that all property data is Serializable" was observed in the logs. Investigation showed there was an HTML fragment in 'pzGridOpenAction' that was adding non-serializable properties to the clip board. This did not cause a functional issue, but has been resolved by modifying the way the system obtains and reuses the class definition. | User Experience |
SR-D91656 | 556863 | Close button added to runtime exception error message display for non-tabbed layout | While running the case through manager/user portal, a runtime exception caused the screen to reload with a GeneralFail harness to show the error and the stacktrace through the section GeneralFailDetails. Since the tabbed layout was not supported, it was not possible to close or cancel this case / case-id. This has been resolved by adding a close button to close the exception window. | User Experience |
SR-D91783 | 556369 | Corrected undefined class error during browser refresh | After enabling a Report left navigation link for the CaseWorker portal, the browser refresh after opening a report from Report landing page was throwing the exception "Problem invoking function: pega_processengine_workutilities.pzHasAccessToWorkPool--(String), Undefined class "ReportBrowser"". This was a missed refresh usecase for ReportDefinition action in SPA portals after SPA was modified to use a separate thread for inner harness, and has been resolved by adding a condition to ensure the reportDefinition action also executes the displayOnPage action on browser refresh. | User Experience |
SR-D92571 | 553115 | Corrected ReportBrowser refresh section | After bringing up the popup menu on a report shortcut in the report viewer and then dismissing it, the gear icon on the shortcuts in the upper section of the report browser stopped responding. This has been resolved by updating the system to refresh the pyReportBrowserInner section instead of pyReportBrowserAll. | User Experience |
SR-D92913 | 553904 | Aria-collapsed replaced with aria-expanded to improve accessibility | Previously, the system used the aria-collapsed attribute for the left and right navigation toggling. In order to improve accessibility, this attribute has been changed to aria-expanded and the value will be set to true/false accordingly. | User Experience |
SR-D93564 | 557261 | Corrected screenflow CSS precedence | After upgrade, the screen flow navigation chevrons were not displaying correctly due to the screenflows CSS styling not taking the correct precedence in the markups. This has been resolved. | User Experience |
SR-D94700 | 556019 | Report group headers localized | Localization has been added to report group headers. | User Experience |
SR-D95367 | 560741 | Expanded debug logging for exception blocks | In order to enhance debugging, logging has been expanded to capture more detail on exception blocks. | User Experience |
SR-D95419 | 563396 | Updated Multiselect control behavior for incorrect value | After upgrade, a difference in behavior was seen. Previously, when a user entered an incorrect value in a multi-select where the required field was checked and then clicked anywhere outside of the field, the value would erase before displaying the message "Value cannot be blank”. After upgrade, the value was not erased when the message was displayed, causing confusion. This has been resolved by adding logic which will determine the correct message to display, such as "Value cannot be blank" or "Please select a Valid Value". | User Experience |
SR-D96061 | 562600 | Localization added for "Preview" | Support has been added for localizing the text "Preview". | User Experience |
SR-D96754 | 560219 | Column filtering corrected for IE11 AJAX containers | Column Filtering was failing when used in tables inside an AJAX container in IE11. This was due to the filter popover close method changing the visibility of the popover and triggering a context switch, and has been resolved by setting the flag pega.ctxmgr.skipContextSwitching to true before changing the visibility. | User Experience |
SR-D96909 | 558140 | Removed extra scroll bar in Multiselect | An extra scroll bar was appearing when opening the multi-select control case manager portal using the "Results displayed Maximum 500 results to display" setting. This was a result of recent updates to the popover scroll and height that caused on overflow condition. To resolve this, the logic for Multiselect has been updated. | User Experience |
SR-D98614 | 559862 | Parent and child case links resolved for Cosmos | After upgrade to v8.4, a behavior change was seen in creating a child case (Add Work) from a Parent case when using an application built on the Cosmos theme. Items such as pyWorkCover Page and CoveredInsKeys were missing, Data Propagation from the parent case to the child case was not working, the Child case max Instance configuration was not being applied, and when the child case was created from Add work, the child case appeared in an unexpected popup. This was traced to work done to implement a feature of creating subcases in a dialog (using a tertiary AJAX container) which was missing handling for a target parameter used for the child case clipboard, and has been resolved. | User Experience |