Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.3.4 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-122149 INC-128960 |
562782 571358 |
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-127077 | 564106 | Busy indicator appears when uploading via Select | After upgrade, the “loading symbol” (busy indicator) was not appearing while uploading large attachments using the Select button. This was a missed use case in recent changes to related to AsyncUpload, and has been resolved. | Case Management |
INC-127291 INC-127291 INC-127981 |
562444 562776 562997 |
Rulesets removed from direct invocation ability | Internal rules have been updated so that they are no longer available to be invoked directly by a client or service. | Case Management |
INC-128921 | 571865 | Updated End User portal Cross-site scripting handling | Additional Cross-site scripting handling has been added to the End User portal. | Case Management |
INC-130085 | 567607 | Replaced hidden-text control in PropertyPanel activity | When attempting to add a flowaction to an assignment in a screenflow, clicking submit caused the screen to freeze and a blue-screen error appeared. This was traced to the UI making changes to post hidden values on modal submit which resulted in security alerts in the engine code. To resolve this, the PropertyPanel activity has been updated to replace the hidden-text control with formatted-text control with display:none. The formatted text control will not gene | Case Management |
INC-131151 | 572833 | Resolved empty body for Reject email | When using the pzEmailActions Section in Correspondence for Approve/ Reject functionality via email, there was no reply body in the email for Reject Option. This was due to the flow action for the Reject email being different than that of the Approve email, and has been resolved. | Case Management |
INC-131385 | 573455 | Swagger APIs updated | The Swagger File APIs have been updated to ensure swagger document files generated meet specifications for editor.swagger.io . | Case Management |
INC-132297 | 583955 | FlowAction HelpText retained on refresh | When a FlowAction configured with HTML was rendered on UI, reloading made the HelpText disappear. Flow action help icon is displayed using pzActionHelp control, which uses the Task Index parameter to determine whether to show the help icon or not. Investigation showed that when pyCaseActionAreaHeader was getting refreshed, this parameter was missed. To resolve this, the pzActionHelp control has been modified to fetch the correct action and index which will be used in displaying the flow action help. | Case Management |
INC-134709 SR-D98224 |
579439 580596 |
Updated endpoint Cross-site scripting protection | Cross-site scripting security has been updated for Endpoints in Display activities. | Case Management |
INC-135161 | 580937 | Upload with "Select File" works in IE | When using IE, uploading a document was failing on the first try when using the "Select File" button. The second attempt worked as expected. This was an intended consequence of work done to enable attaching the same file after deleting it, and was related to Microsoft Internet Explorer calling an "onChange" which caused the "pzAttachFileDDFileList" section which is used to display the attachments uploaded to not be properly refreshed. This has been resolved by updating the pzMultiFilePath control handling of the success and failure of the upload function call. |
Case Management |
SR-D71475 | 538720 | 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. | Case Management |
SR-D72456 | 561117 | 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-D77719 | 569768 | OpenIfStale updated to resolve optimistic locking race condition | A race condition was created in optimistic locking by having two assignments save at overlapping times. This has been resolved by modifying the pzShowConflicts activity to use a version of openIfStale which will consider a workpage as stale even if the difference in pxUpdateDatetime is in milliseconds. | Case Management |
SR-D85664 | 559010 | 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-D96222 | 566075 | Updated pipe character appearance in Audit | Pipe ("|") characters were being prepended to multi-select items in the Audit section. This has been resolved by updating the Clipboard page to only add the Pipe if there is more than a single property on the clipboard page. | Case Management |
SR-D96254 | 555275 | 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 | 561502 | 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 | 558992 | 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 Resolved Issues for Cloud Services in 8.3.4
Conversational Channels
8.3.4 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-127591 | 564817 | 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 | 564618 | 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 | 564725 | 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-132866 | 583775 | Email images correctly displayed in interaction | If the email listener was configured with "Embed data for inline images into HTML" turned on, images were not displayed. If configured with that setting turned off, images were displayed and additionally added as attachments to the interaction, which is not desired behavior. This has been resolved by adding a 'when' rule to pyPostEmailContent which will not let inline images be displayed as attachments in the interaction case UI. | Conversational Channels |
INC-133026 | 578279 | Updated Pulse email attachment handling | After updating from 8.3.2 to 8.3.3, the Audit Trail displayed the entire contents of an email. In some instances, attaching a .txt file caused the file extension to be displayed twice. This was due to pyNote being used to create email file posts, and has been resolved by updating the implementation to use pyEmail instead of pyNote. Backward compatibility has been ensured by still considering pyNote for older emails and changing when emails open. | Conversational Channels |
INC-136264 | 582471 | Chatbot text starts scroll at top of answer | In order to present an improved interface for customers interfacing with chatbots, the code has been updated so that the recipient's chat scroll will remain at the top of an answer that would scroll off the screen. | Conversational Channels |
SR-D87412 | 563226 | 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-D93031 | 555675 | 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.3.4 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-100288 INC-126556 |
555463 564030 |
Declaratives disabled during startup | Declaratives firing before the engine is fully up can lead to null pointer errors. In order to avoid this condition, declaratives will be disabled during startup so that unnecessary operations can be avoided and system can be started faster. | Data Integration |
INC-118760 | 580174 | Atmosphere updated to resolve request object recycle exception | The exception "java.lang.IllegalStateException: The request object has been recycled and is no longer associated with this facade" was traced to a request object being recycled in Tomcat because of pooling. To resolve this, a fix was made in the Atmosphere open source library to ignore such exceptions. A new jar with version 2.4.5.8 has been uploaded to the repository and defaultVersionsByGradle has been updated with this version. | Data Integration |
INC-118926 | 563805 | 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 | 563694 | 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-119716 | 570512 | Checks added for Hazelcast nodes on post-upgrade startup | After upgrade, the error "Problem executing pzAssemblePreprocess for RULE-OBJ-HTML @BASECLASS PYSAMPLESTREAMFORPINGSERVICE" was appearing in the logs. This was traced to Hazelcast node information, and has been resolved by adding a check for an embedded node, adding a check for node shutting down, and changing the logger to infoForced. | Data Integration |
INC-119725 | 561750 | WSDL consumption via XSD corrected | When trying to consume a WSDL from a given URL with XSD, the error "Rule evaluation failed : Canceling rule evaluation, Unrecognized type name 'Name'" was generated. The same WSDL was easily consumed in SOAP UI. This was due to a case mismatch. When processing schema files, RuleGeneratorXSD calls XSDUtils.getStringType to retrieve and validate the type of incoming attributes. To do so, XSDUtils compares the type provided against a static list of attribute types, XSDConstants.java. Because XSDConstants.java is hardcoded to match against the lowercase "name" instead of the standard uppercase "Name", the type was not recognized and the error was thrown. While there was a workaround of replacing "xs:Name" with "xs:string" in the local schema files, this has been resolved by updating XSD_TYPE_NAME to equal "Name" in XSDConstants.java. | Data Integration |
INC-120223 INC-121249 INC-122076 |
565746 570417 569818 |
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-120557 INC-131416 INC-136136 SR-D83424 SR-D91894 SR-D94689 SR-D97738 |
560223 558187 575451 581089 552720 557219 555421 580163 |
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 | 565196 | 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 INC-129143 |
571024 565390 566470 |
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-121367 | 561518 | DeleteOrphanStaticContent CacheConfigID populated on node startup | The pzDeleteOrphanStaticContent activity which triggers to clear cache was unable to clear the files in the static content folder and in the database when the files were more than one week old. In order to correctly cleanup old static content, pzAsmCacheConfigID must be populated in py_sys_statusnodes. However, when SystemNodesDAO was introduced to populate pr_sys_statusnodes, pzAsmCacheConfigID was not populated. To resolve this, pzAsmCacheConfigID is now populated on node startup when node information is added to pr_sys_statusnodes. | Data Integration |
INC-121394 INC-96275 |
561512 553402 |
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 |
INC-121474 | 561062 | 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-125122 | 581256 | JMX authentication added | Support has been added for JMX authentication through user and password. | Data Integration |
INC-125226 | 563766 | Repaired Tracer use with Google Chrome | After running Tracer while using Google 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 Google Chrome Versions greater than 70 and was caused by Google 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-125480 | 562488 | 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-126480 | 572538 | Circumstancing template and definitions assembly modified to avoid calling Report Definition | After deploying a new rollout, errors such as "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY RULE-OBJ-REPORT-DEFINITION" and "You lack access required to execute RULE-OBJ-ACTIVITY RULE-OBJ-REPORT-DEFINITION" appeared. Investigation showed that during an unauthenticated session, executing Report Definitions or accessing database (with securityCheck enabled) are not allowed. When someone wants to use circumstanced rules during the custom authentication process, and if the circumstancing rules are not assembled yet, then assembly of the circumstanced rules triggers the assembly of circumstance template and definitions. During this process the system used Report definition, but since execution of Report Definition is not allowed without authentication the assembly was failing. This has been resolved with two changes: the MergeDefintions activity which is invoked during assembly of CircumstanceTemplate : database.open() has replaced the pxRetrieverReportData activity (which invokes Report Definition to fetch circumstances definitions), and the GetAllDefinitionRows activity which is invoked from MergeDefinitions : database.open has replaced Obj-open in step 3. | Data Integration |
INC-126662 | 561313 | 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 Rule-Utility-Function (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 INC-131488 SR-D95626 |
564593 577698 563583 |
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 INC-128800 |
568094 582624 |
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-127804 | 566398 | 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-128654 | 567408 | 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-129400 | 567401 | 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-129533 | 576662 | Proper MIME type kept for attachments | When Email Listeners processed an email with an attachment and stored that attachment to an instance of DATA-WORKATTACH-FILE, it did not keep the full MIME type in the property pyAttachMimeType, but kept just the subtype (so "application/PDF" became "PDF" and "image/jpeg" became "jpeg"). As a consequence, the MIME type could not be reconstructed correctly when the file was attached to an outbound email. While most email clients were able to reconstruct (guess) the type of the file from the filename (or, more precisely, from the extension), this did not work when the email was processed by an automated system reliant on the correctly set Content-Type header. This has been corrected by reading the mime type from data-workattach-file page and setting the content type header while constructing the multipart with this value. | Data Integration |
INC-130176 | 576484 | 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-130265 | 580310 | Cross-site scripting updates | Additonal Cross-site scripting protections have been added to pyActivity processing and pzTransformAndRun. | Data Integration |
INC-131629 SR-D89835 |
570033 554301 |
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 |
INC-132859 SR-D85100 |
573490 556259 |
ProductInfoReader updated to fetch only most recent version information | Hfix scanner has been modified so that ProductInfoReader.runQuery will fetch only latest version of DAPF instances during a scan. | Data Integration |
INC-134069 | 583023 | Added Kafka logging | In order to help diagnose issues encountered during Kafka background processing, additional logging has been added to QueueProcessorDatasetHandler. | Data Integration |
INC-135558 SR-D88813 |
579081 556088 |
Resolved getDatabaseIndices release | While retrieving the indexes of the database, 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 |
INC-135764 | 579715 | Repository APIs optimized to process large number of files | When trying to delete 400K+ files in the attachments folder in a Pega Cloud Storage repository, the D_pxDelete API appeared to hang, though files were eventually deleted after an extended amount of time. The same API worked well when the folder had around 200 files in it. Previously, the D_pxDelete and D_pxListFiles APIs implementation did not consider the large scale inputs or outputs. This has been resolved by optimizing the performance of the recursiveDelete operation for S3 repositories. | Data Integration |
INC-135823 SR-D93460 |
580927 558911 |
Transient property passivation handling improved | Frequent "com.pega.pegarules.pub.PRRuntimeException" errors were seen in the production log file while working on the work object. 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-D36826 | 550269 | 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-D55600 | 522688 | Admin Studio date format updated | Inconsistencies were seen with date format in Admin Studio, such as Job Next/Last run and Requestor Pool last access returning a user's time zone with no time zone suffix, and Requestor last access returning the JVM time zone. This has been resolved. | Data Integration |
SR-D71369 | 559178 | 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-D84768 | 551049 | 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 | 547687 | 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-D85839 | 550937 | 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-D88499 | 551185 | Check added to minimize Obj-Open-By-Handle error logging | When using a Data Type with the "Automatically generate a unique id " option, calling the Save-DataPage method by using the savable data page of the data type finished correctly but showed Obj-Open-By-Handle errors on PegaRules.log. Investigation showed the exception was thrown when running the save plan from DataPageSaverImpl: while attempting to run the save plan, the system does not know whether a parameter (pyGUID in this case) will be required to run the save plan or not, meaning that it can't detect any possible error in DataPageSaverImpl. The implementation instead makes a call to db.open to check if an instance exists and hence logs are thrown. To resolve the error logging, a check has been added: if the save-to class has an autogen key and the savable data page instance doesn't have the autogen key in it, the system will directly call pxCreateRecord. This will avoid a call to db.open to check if instance exists and hence no failed logs will be thrown. This partial change will work only for classes having an autogen key and in cases where the page is trying to create a record by intentionally not passing the key. | Data Integration |
SR-D89144 | 565218 | 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-D90687 | 560428 | IOException handling improved to resolve broken pipe errors | 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. | Data Integration |
SR-D91362 | 556046 | Updated handling for redirect location header | After upgrade, browser refresh/reload was not working, instead displaying a grey screen with no error in Google Chrome and a 404 message in Microsoft Internet Explorer 11. 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-D92635 | 559219 | 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. | Data Integration |
SR-D94019 | 553782 | 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-D95074 | 566431 | 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 | 557041 | 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 | 561463 | 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 | 557290 | 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 |
Decision Management
8.3.4 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-121460 | 569116 | 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 | 563268 | 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-125900 | 560786 | ResolveFTCR flow Draft mode turned off | When using the FastTrack Change Request functionality of Revision Manager 8.3 the submission was going to Pending packaging instead of Resolved-Completed with the error "flow is in draft mode; it cannot be executed". This was due to pxResolveFTCR flow having been checked in with Draft mode turned on, and has been corrected by turning Draft mode off. | Decision Management |
INC-126129 | 569664 | 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 | 564150 | 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 | 561534 | 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-126801 | 575961 | Improved cleanup for adm_response_meta_info | The adm_commitlog.adm_response_meta_info column family was growing, leading to gradual increase in CPU utilization on the ADM nodes over time. Investigation showed that the compaction on the adm_response_meta_info table was not being triggered by the ADM service, and the compaction did not remove rows that belonged to models that had been deleted. To resolve this, compaction of the adm_response_meta_info table has been moved from the ADM client nodes to the ADM service nodes, which will correctly trigger the compaction on a predefined schedule. The compaction logic has also been refactored to remove rows that belong to models that have been deleted. | Decision Management |
INC-128219 | 565831 | Race condition in distribution test resolved | An error indicating improper execution of different Proposition filter rules was seen when trying to run a Distribution test to see how actions were being dispersed to different channels. This was traced a particular Activity rule that when used during a simulation of a Proposition Filter may modify the configuration used by the filter itself, causing unpredictable behavior. To resolve this, the generation of human readable text for default criteria has been moved from runtime to design time to avoid a race condition. | Decision Management |
INC-128385 | 564518 | 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 | 564689 | 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-132164 | 575346 | 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-132382 | 572896 | Performance improvements for marketing simulations | Out-of-the-box rules and queries were creating a performance issue while running the marketing simulations. This has been resolved by modifying the handling of the VBD collections to improve the decision funnel simulation performance. | Decision Management |
INC-133063 SR-D89153 |
580213 561760 |
Handling updated for wait used in Offer Flow | The ADM model was not learning after accepting or rejecting the offer when the Offer Flow for updating the ADM model contained a wait time after the sendemail. The implementation has been updated to resolve this issue. | Decision Management |
INC-133169 | 572612 | Service Registry heartbeat updates | If a service (node) did not update its heartbeat for more than 90 seconds, eventually these stale services were removed from the database because the service registry did not consider them present. To resolve this, topology listeners will now use a java thread pool to run their logic and no longer use the heartbeat thread. Even if these listeners are slow, it won't affect the heartbeat and won't cause nodes to become unhealthy. If for some reason the heartbeat becomes slow (due to database issues) it will issue a thread dump to help identify what causes the slowness and aid in troubleshooting. | Decision Management |
INC-133932 | 582702 | Added handling for single case data flows run on a web node | After making NBA and Capture Response calls using the out-of-the-box 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-136128 | 580228 | Data Transform added to support Kafka custom serialization/deserialization | Previously in a Kafka DataSet it was possible to either serialize or deserialize messages as mapped objects to JSON, or to implement some other mechanism to achieve the expected results. An enhancement has now been added to the Pega platform functionality: DataTransformSerde will be available to be used as custom serialization/deserialization mechanism in Kafka DataSet. | Decision Management |
INC-136394 | 582528 | Improved performance for WebTreatments | When there were a very large number of treatments propositions in WebTreatments DDR, one analyst trying to save a Treatment caused another analyst to get a DDR locked error. This was traced to the save process for a Proposition taking an excessive amount of time, and has been resolved by modifying the pzModifyDDRule activity to handle cleanup of the pxResults page on edit/update of a decision data rule. | Decision Management |
SR-D75583 | 547299 | 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-D90367 | 556685 | 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-D91767 | 559624 | 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-D93777 | 565690 | 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 database 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-D96836 | 555747 | 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 |
Low-Code Application Development
8.3.4 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-120450 | 561741 | Configure view finds existing calculations for properties | Modifying a property to ‘calculated: Readonly’ by creating declare expression inside a fieldgroup list (which was created in the data model and refers to a datatype) while adding the fieldgroup list property by selecting from the field in the configure view of a step was not reflected when adding the same list type property inside another step of configure view. Declare expressions were created with page context for embedded fields by default in configure view, but Declare expressions have recently been enhanced and no longer expected to use page contexts. Because Configure view continued to use page contexts, this resulted in calculations that existed not being picked up. This has been resolved by configuring view handling for page list fields specifically to not create new calculations with a page context. Detection of calculations has also been updated to not check for page context to match the recent Declare expression enhancements. | Low-code app development |
INC-120472 | 571434 | Corrected date display on export to Excel | 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-123033 | 561386 | Updated logic for delegating when the RARO exists | When trying to delegate a Data Type, the validation error "Update Record Failed: This record is non-versioned and already exists and can not be moved to a different ruleset" appeared. Because data type delegation is dependent upon the existence of a RARO for the delegated data type, when delegating the ruleset of the RARO to accessgroups with the same roles the code was attempting to update the RARO. Updating the RARO determines if the Ruleset of the RARO is unlocked. If the ruleset is locked, then the logic attempts to select a new ruleset, but the RARO cannot be moved to a new ruleset. To resolve this, the logic has been updated so that if the RARO exists, the system will not try to create a new instance. | Low-code app development |
INC-125706 | 565516 | Expression Builder test functionality updated to improve context resolution | After upgrade, running a test in Expression Builder to evaluate an expression resulted in a 'Property undefined' error. Although the test functionality failed, the data transform rule was properly saved and no issues were observed at runtime. This was traced to a change made in the way the IDs on input elements were made unique. This caused an issue with Expression Builder resolving the correct context when the Source property page was not the primary page class, such as in these cases: For Each Page with the "Also use each page as source context" checkbox checked Update page using the "with values from" Append and Map to with "an existing page" Append and Map to with "each page in" To resolve this, the pzEBHiddenElement function has been updated. |
Low-code app development |
INC-125803 | 568659 | Cross-site scripting updated for pzTransformAndRun | Additional Cross-site scripting work has been done on the pzTransformAndRun activity. | Low-code app development |
INC-126813 | 565862 | 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-127392 | 574287 | Delegated Decision table rule grid loads in iFrame with SSO | The delegated decision table rule grid and checkout options were not displayed when launched from iFrame using SSO sign in. Without SSO, the delegated decision table grids were loading properly for the same Access group. The heart of this issue was that decision tables were using an older style of Designer Studio javascript which was not designed to be embedded in an iFrame due to issues related to Cross-Origin Resource Sharing (CORS). In order to support the usecase of the Pega end user portal/application being integrated to an external domain application using an iFrame, enhancements have been made to the necessary delegated rule function definitions. | Low-code app development |
INC-127799 | 567816 | Modified Unit Test case "setup data" saved correctly | When using the “Setup and Cleanup” tab for a unit test case configuration which set up data and had each run update the setup data, the updated data was not getting saved when saving the test case or test suite. This was due to the initial design of the function not being set up to support a pySaveAsResult scenario: as the RULE representation is different for different creation time (RH_1, pyNewResults,pySaveAsResult), and during design time, there is a dependency of the clipboard representation of the new rule. The handling for this scenario has now been added. | Low-code app development |
INC-128811 | 569281 | Operator created with save-as has correct application access | Creating an operator using Save As retained access to the applications of the original operator even if they were removed in the creation process. This was due to the saveAs operation of the Operator not retaining consistency between the records in the ValueList pyAccessGroupsAdditional and the page list pyaccessgroups_opid. To resolve this, the PreSaveAs of the Operator ID has been updated to maintain consistency in the records. | Low-code app development |
INC-129275 | 577017 | Resolved errors when refreshing test case | On refreshing any test case for decision tables, a "rule no longer exists" error appeared on screen and a pzRuleNotFound exception was generated for all testcases in tracer. This was traced to Rule-Utility-Function lookup parameter handling in the pzGetFreshLabelForRUT decision table: because the Rule-Utility-Function was not able to fetch the label and the caller step in an activity, it was ending with a fail status and generating the errors. This has been resolved by correcting the Rule-Utility-Function calls in the decision table pzGetFreshLabelForRUT to ensure it has the correct parameters. | Low-code app development |
INC-131175 | 571608 | 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-132517 | 578986 | Correct manager name retained for skill-based routing updates | In App Studio, having a manager update a team member's skills changed that team member's reporting Manager name (.pyReportTo) upon save. This was a use case where multiple operator IDs were required for the same person (name and email), so that using the report definition parameter 'BestOperatorValue' for the pzUpdateOperatorInfo activity caused an incorrect manager name to be set to the team member's operator ID. This has been resolved. | Low-code app development |
INC-133213 | 572533 | 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-135095 | 581848 | Tracer toolbar shows correctly in IE | After upgrade, the developer toolbar for the tracer pop up was not visible in Internet Explorer. Investigation showed that Microsoft Internet Explorer was loading the correct elements, but they were not displaying due to recent updates made to prevent Cross-site scripting vulnerabilities for the tracer. This has been resolved. | Low-code app development |
INC-78420 | 566790 | 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-D79831 | 562799 | 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 |
SR-D91834 | 554423 | 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-D93181 | 555467 | Pega Org Structure Tools added | An enhancement has been made available on Pega Marketplace 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-D93787 | 558840 | Tooltip added to LHS anypicker control | A Tooltip has been added to the LHS anypicker control, allowing the display of longer when and strategy rule names on hover of the anypicker control. | Low-code app development |
SR-D95797 | 556763 | 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 |
SR-D96739 | 560957 | Autocomplete picker handling updated | When trying to add a criteria in a proposition filter, the autocomplete picked up the wrong conditions if text was typed in the autocomplete box and then the user tabbed out: the first result from the matching properties was selected by default. Issues were also seen with an incorrect value being propagated if random characters were typed and then a value was selected from search results. This has been resolved by modifying pzValidateActualValueForCondition to take care of both of these use cases explicitly. Versions of Pega 8.4+ are not subject to this issue as the picker control was replaced in those versions. | Low-code app development |
Mobile
8.3.4 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-119803 | 561684 | Placeholder text added for question dropdown sourced by a datapage | In a flow action with question pages where each question page was configured with a set of question rules, one question which displayed a country list in a dropdown sourced from a datapage always displayed the first value by default in the dropdown instead of place holder text (like Select..). In addition, the default selection value of the dropdown was not saving to the clipboard on submission of the flow action, causing it to appear in the UI like the first value had been selected even though nothing was saved on the clipboard. These issues have been resolved by adding place holder text in pzSetQuestionStreamSimpleDynamicSelect for a dropdown with a datapage source. | Mobile |
INC-120326 INC-133173 |
564434 573442 |
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. | Mobile |
INC-126114 | 562176 | 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-127347 | 574900 | GenerateAttachControl updated for iOS compatibility | It was not possible to upload files from an iPad using the Google Chrome browser when the "Attachments" control was used in the application. The attach control flowaction was not opening to select any files, and attempting to directly open the folder to add attachments showed them as grayed out. This was traced to the "Accept" tag not being supported in iOS, and has been resolved by removing accept= / from pzGenerateAttachControl . | Mobile |
INC-127651 | 563337 | FS mobile app presents error message when attempting to open a workorder when offline | When working online in a mobile field service app, it is possible to open a resolved work order from the worklist. However, when attempting to open a resolved work order while offline, a screen is shown where the option is to logout. To resolve this, the PIMC version has been updated to 8.4.302 which will present the error "Cannot perform this operation when offline". | Mobile |
INC-130727 | 574267 | Resolved mobile app java.lang.OutOfMemoryError | After working with the mobile app for a period, logging in failed and the app crashed with java.lang.OutOfMemoryError exceptions. This was traced to each sync adding a new version of allow-list datapages to the client store which were not cleared, and has been resolved. | Mobile |
INC-131991 INC-135159 |
583040 580676 |
Logic updated for deepMergeObj API | Issues with the embedded page values being removed when navigating from a flow action and inconsistent localization of labels and captions in a mobile app were traced to the deepMergeObj API; the logic for the API has been revised to ensure the pxObjClass property is not removed from embedded pages during the doSave function. | Mobile |
INC-133301 | 580680 | Resolved authorization request errors on mobile | After upgrading and rebuilding the APK with the HC Client Version – 7.41.8-SNAPSHOT, numerous "PYREDIRECTAUTHORIZATIONREQUEST" alerts during mobile interactions caused system performance issues. This was traced to a change in the handling for OAuth2 tokens and related to missing pyClientID column in the database table which forced the system to read all records from the table, and has been resolved. | Mobile |
INC-133749 | 573811 | 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 |
INC-134497 | 578362 | Corrected mobile data transform format handling | An intermittent issue was seen in the mobile app where data was not propagated properly because a Data Transform failed. The error "Failed to run data transform dmg_fs_work_task_plannedtask_settaskdetailsfromparent TypeError: sourceProperty.getValue is not a function" was generated. This was traced to a difference in the generated data transform format where a success scenario considered “Problem” as a page, whereas a failure case considered the “Problem” as a property and the getValue() operation failed. This has been resolved. | Mobile |
INC-134618 | 582775 | Corrected logic for deep pagelists on mobile | After completing a workorder in the mobile app, the synchronization failed intermittently with the error "fail: pyWorkPage - Validation failed: Errors Detected. Finish Assignment action failed as pyWorkPage has messages: Validation failed: Errors Detected. ... The page contains an undefined property: .pxUniqueElementID". This was traced to incorrect logic for handling deep pagelists, and has been resolved. | Mobile |
SR-D80886 | 547289 | 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-D90279 SR-D99530 |
554389 561788 |
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 | 556403 | 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 | 556963 | 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 | 562118 | 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 |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.3.4
Reporting
8.3.4 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-119669 | 562585 | Special character handling added to filters for table sourced with parameterized Report Definition | 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-120343 SR-D90400 |
573076 563184 |
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. | Reporting |
INC-125641 | 573385 | Column Filter working with class join | When a class join was configured in the report definition and the report was edited to include new columns from the joined class, a "Filter condition invalid" error appeared in the tracer after adding a filter condition to a new column. This was only observed when the property added was a decimal property, and did not happen for a text property. The filter worked as expected after re-saving the property in the report definition in Designer Studio. This was traced to the data type being passed as "DECIMAL" for decimal fields, which did not match the logic used to set the filter value, and has been resolved. | Reporting |
INC-125752 | 566169 | 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-127085 | 563456 | 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-128899 | 578023 | Resolved BIX Extract Summary Status Count mismatch | A mismatch was seen between the summary of the Extract Summary Status Count in the Execution History stats versus the logs, for example the execution history saying 98.74% completed while the log says 100% or 100.45% completed. Investigation showed there was mismatch in the query based on the filter value given in the extract rule and the where clause in the query that resulted in an error in calculating percentage in case of any exception. This has been resolved. | Reporting |
INC-129880 | 573726 | Updated locking for deleting a scheduled report | Attempting to delete a report shortcut from the Case Manager portal resulted in the error "Error in Obj-Delete-By-Handle com.pega.pegarules.pub.database.LockGoneException: Save, Delete or Commit has failed because lock "PEGA-SCHEDULEDTASK" is not held". This has been resolved by enabling locking for Obj-Delete-By-Handle in the pzDeleteShortcutPostActivity7 activity. | Reporting |
INC-131942 INC-136643 |
574323 583366 |
Orphaned CSS reference removed from DisplayReport harness | An intermittent invalid CSS error was appearing in the DisplayReport harness when an operation resulted in the regeneration of the harness content. This was traced to a reference to the workform_pyReportingSkin CSS, which was used in old reporting features and is not in use anymore. The reference has been removed to resolve this issue. | Reporting |
INC-133827 | 576190 | Cluster stabilization and node shutdown enhancements | When a node has problems like reaching its primary it can be reinitialized, but the shutdown process at the beginning of the reinitialize phase did not work correctly for primary-eligible nodes because there was an uncaught exception. There was also a problem with the updating of replica count if the request was executed remotely just after node shutdown: because a remote node was chosen from all possible nodes not offline, a node with a cluster communication problem could be chosen and the replica count would not be updated. While these issues are only found on clusters with frequent restarts, they may be seen during upgrades and planned rolling restarts. Enhancements to cluster stabilization and node shutdowns have been added to address this. | Reporting |
INC-135719 | 580692 | Corrected reference exception for filter on a grid sourced from a parameterized report definition | An Invalid Reference Exception was thrown after attempting to apply a filter on a grid sourced from a parameterized report definition. This was traced to work done to allow cross-scripting filters to allow filters to contain special characters, and has been resolved. | Reporting |
INC-136320 | 582725 | 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-137356 | 583843 | Handling added for special characters in Report Category name | When a Report Category was created with a special character such as ' ( , ) (ex "ABC's Reports"), the special character was not correctly shown at the Category Selection in Report Widget of the Dashboard Configuration. This was traced to the category names being sanitized against Cross-site scripting attacks twice, once by the dropdown itself, and once by the activity pzRBCategoriesPostProcess, which is shared between this dropdown and the report browser. To resolve this, the system will make a simplified copy of pzRBCategoriesPostProcess for the report widget's use case and continue to use that as the post processing activity for D_pzReportWidgetCategories. | Reporting |
SR-D85540 | 551953 | Re-indexing status improved | Improved cleanup and status modifications have been added for the re-indexing process. | Reporting |
SR-D87673 | 555680 | Lucene use updated | Lucene search is a legacy functionality, which is not available for sites already using an Elasticsearch-based solution. Although Lucene remains available, authentication is now required for Lucene service packages. | Reporting |
SR-D88419 | 557943 | 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 | 562654 | 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 | 569731 | 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 | 555779 | Combo charts now support conditional colors | An enhancement has been added to facilitate the use of conditional colors in combination charts. | Reporting |
SR-D91949 | 552171 | 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. | Reporting |
SR-D93561 | 558673 | 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. | Reporting |
SR-D97566 | 568476 | Default Report Category "My Reports" correctly visible in Report Browser | After upgrade, users logged into the Case manager portal were not able to see the "My Reports" category in their private list after using 'save as'. This was traced to a missed upgrade to the activity pzNewDefaultPersonalCategory during refactoring work done on how reports are created and saved: because the property .pyRuleAvailable was not set, a new personal category was incorrectly created. This has been resolved by updating the activities to ensure a default personal category is created when one is not already present. | Reporting |
SR-D98736 | 563544 | Report Definition 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 Report Definition, 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 Report Definition filter being overridden during the Report Definition save with the operator type changing from EQUALTO to ISNULL. This has been resolved by adding code changes to verify whether the Report Definition is in validation mode before applying changes. | Reporting |
Security
8.3.4 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-128535 | 566314 | 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-130500 | 580624 | Cross-site scripting protections updated for authorization | Cross-site scripting protections have been updated for various URLs associated with authorization. | Security |
INC-130673 | 568209 | RuleSecurityMode enhancements added | Updates and enhancements have been made for RuleSecurityMode. | Security |
INC-130910 | 584089 | Improved performance for isEventLoggable | Many null-pointer exception errors were being logged from SecurityEventLogger.isEventLoggable(), causing performance issues. This was traced to a thread contention issue while referring a HashMap to evaluate whether an event needs to be logged, and has been resolved. | Security |
INC-130917 | 573428 | 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-131501 | 579526 | Updated URL mapping for PRAuth Basic | A URL mapping issue was seen when using PRAuth Basic. This was traced to a query being updated that resulted in the URL mapping being discarded, and has been resolved by modifying pzpostDataCheck to skip updating the query parameter. | Security |
INC-132191 | 582549 | Option added to return to same authenticationService after SAML logoff | An enhancement has been added which provides a check box on the Authentication Service ruleform to select the option of redirecting users back to their original authentication service screen after logoff. | Security |
INC-132897 | 576550 | UseSSL correctly set for password reset email | Email was not being sent as part of the password reset functionality for Agile Studio when the email account was set to use SSL. An EmailClientException was logged. This was traced to the 'forgot password' flow reading .pyUseSSL as false, and has been resolved by setting pyUseSSL from the email account page. | Security |
INC-134046 | 575239 | 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-134315 | 578369 | Resolved 400 error on second browser session | When accessing application URLs in two tabs of a browser window, logging into the second session was throwing a 400 invalid request. This has been resolved by adding specified activities to an allow list which will bypass URLObfuscation in un-authenticated mode. Non-listed activities will be processed using URLObfuscation if it is enabled. | Security |
INC-138354 | 584721 | Handling added for samesite cookies with httpOnly | After enabling samesite cookies on Google 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 |
System Administration
8.3.4 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-125584 | 559375 | Warning logged when hotfix rollback information fails to save | Attempting to apply a set of hotfixes was failing. In this case, a hotfix was being installed prior to a second hotfix which contained a Rule-Obj-Class that was needed for the first hotfix. Hotfixes need to be installed in a particular order based on their dependencies. For a given DL file, the installer respects the order specified at DL packaging time in the INSTALLORDER.PEGA file. The install order specified in the DL file is roughly ordered in a manner so that the first hotfix is the parent (the specific hotfix requested by the user at DL packaging time) followed by its dependencies in no particular order. The result was that dependencies of dependencies were not installed in the correct order relative to each other, causing hotfix installation to occasionally fail during the saving of hotfix rollback information. To address this failure, the exception handling has been modified to only provide a warning in the log should hotfix rollback saving fail and not cause the entire hotfix installation to fail. | System Administration |
INC-127635 | 570054 | 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. | System Administration |
INC-130304 | 567922 | Retry logic added for downloading upgraded rules | A Rules upgrade failed while downloading applications from the maintenance server due to an SFTP server connection failure. This has been resolved by adding logic to retry if the first connection attempt fails. | System Administration |
INC-133202 INC-136062 |
574702 582556 |
TableRenameUtil hashing improved | During index name generation, the algorithm that was responsible for index name uniqueness was sometimes insufficient and cerated a loop condition. This has been resolved by using a stronger hash algorithm and refactoring the code that could result in a loop. | System Administration |
INC-71003 | 555284 | View/Modify Database Schema Wizard updated | Security improvements have been made to the View/Modify Database Schema Wizard. | System Administration |
SR-D98404 | 558205 | 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 null-pointer exception 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.3.4 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-118907 | 561072 | ClearHighlight called after test steps complete | When using a custom delay as part of a scenario test, an orange highlight square was unexpectedly persisting on the portal. To resolve this, an update has been made to explicitly call "_clearHightlight()" after every test case step execution completes. | User Experience |
INC-118923 | 565231 | Multiselect updated for server side error message display | After configuring a multiselect control as a required field, a button configured to trigger property-set-message was not displayed in the UI. This was traced to Multislelect not showing the server side error message as its handle bar was not stamping, and has been resolved by utilizing the errormessage string for the handlebar. | User Experience |
INC-121205 | 560035 | 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-121444 | 561808 | Added handling to force text area maxlength in Edge | When using the Microsoft Edge browser, it was possible to continue entering characters in excess of the value set for the 'max characters' property. Investigation showed that the Edge browser does not honor the maxlength attribute on text area; to resolve this, logic has been added to restrict the user from entering extra characters above the max limit. | User Experience |
INC-121490 | 567183 | Date/time will not format an invalid input | Additional checks have been added to date/time that will return an invalid date without trying to format it. | User Experience |
INC-122068 | 569607 | 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-122172 | 560214 | Scenario test APIs updated to better capture successive clicks on the same elements | When recording a scenario test, the test recorder did not capture successive clicks of the same screen element. This could carry from screen to screen as pyCaseActionAreaButtons is used in the perform harness and is can be presented for two successive screens. To resolve the issue, the APIs have been changed to use code better suited to capture the correct elements. | User Experience |
INC-123112 | 568699 | 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-125105 | 563381 | Null checks added for incomplete autocomplete fields | When using a page which has an AutoComplete text input and a button configured for search, tabbing out of the autocomplete field before the autocomplete list has appeared and then filling out the rest of the fields and clicking submit was sporadically resulting in the page becoming unresponsive. This has been resolved by adding null checks and improving the error handling. | User Experience |
INC-125398 | 564976 | 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-126255 | 580911 | Resolved "maximum limit for pending changes" error | When attempting to create a work object in a custom way using doCreateNewCase from the Smart investigate layer by using the RMButtonWithoughtWorkCaseNGP section, a popup showed the error “You have reached maximum limit for pending changes. Please commit/cancel one or more changes to continue.” The error did not occur when creating the case using the out-of-the-box Create New Work action. This was traced to the custom configuration creating work object threads that were not destroyed after the work item is closed. To resolve this, handling has been updated for passing dynamiccontainerID and contentID parameters for OpenWorkByURL case. Note that the pzUpdateActionInfo activity must be called in any custom activity before the actual activity is invoked. | User Experience |
INC-126260 | 565121 | Improved performance option for data model pagination in App Studio | In order to improve performance for data model pagination in App Studio, document.querySelectorAll has an optional replacement of the more efficient document.getElementsByClassName. The pega.ctxmgr.registerContextSwitching API will update the context root with the data-harness-id attribute and appended the class. However, getElementsByClassName is not enabled by default: to enable it, set pega.enableCTXRootsByClass to true. | User Experience |
INC-126399 | 564319 | Added handling for 'Safari version is not a number' error on mobile | When using a browser on mobile, the error "Safari version is not a number" appeared intermittently in the logs. This was traced to the code "Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1" returning the wrong value for the above user agent string because "Mobile/" was present in between Version/ and Safari/. This has been resolved by updating the BrowserUtilsRuntime.java file to handle these cases. | User Experience |
INC-126458 | 560679 | Null check added for indexOf in section refresh | A sporadic failure was happening when clicking the telephony button to retrieve a customer from hold, and logs indicated the error "Cannot read property 'indexOf' of null at pega.ui.Doc.sectionRefreshCallback". To address this, a null check has been added in the sectionRefreshCallback API before calling the indexof API to resolve the runtime exception. | User Experience |
INC-126783 | 562759 | Check added for undefined value when resetting invalid autocomplete entry | When user entered and submitted any random value that was not part of the results populated by the data page, the field changed to "undefined" automatically. In this use case, the system was presenting an autocomplete control configured with a list-based result display and disabled free form input. When the entered invalid value did not match anything in the results, the system tried to set the previous value even though it had not been initialized. This caused the value to be set with an undefined string. To resolve this, logic has been added that will reset the autocomplete value to empty or a previously selected option when the free form input option is disabled. | User Experience |
INC-127087 | 570122 | 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-127201 | 562819 | Thread Cleanup error resolved | After upgrade, intermittent exception errors were being generated by the FreeClipboard activity when switching between applications. This was traced to specific use-case issues with Thread Cleanup, and has been resolved. | User Experience |
INC-127399 INC-129278 |
567122 568854 |
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-127658 | 568623 | Corrected 1 day discrepancy for non-template DateTime | Date values in DateTime controls in a custom filter section of a report definition were reduced by one day after drilling down into drilldown report and navigating back to the main report. Investigation showed that when the non-template version of datepicker was configured with a date property, it displayed the value using read-only formatting with allow text entry set to 'No'. This caused the operator time zone to be used to format the value while data-value used the default timezone(GMT). To resolve this, and update has been made so that while generating markup in non-template for the date property the default timezone will be used whereas the datetime property will use the server timezone. | User Experience |
INC-127687 | 570009 | 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-128406 | 578889 | Handling added for radio button with expandpane | When given a radio button to select a row in a table (table with Edit Option as Master-Detail - Expand Pane), the first click on the radio button expanded the row but the radio button was not selected. On clicking again, the radio button was selected. The issue was observed in UI gallery as well, and changing the radio button to a checkbox worked as expected. This was traced to a difference in handling related to event infrastructure changes, and has been resolved by adding a timeout in grid specific code for use when there is a radio button with expandpane grid configuration. | User Experience |
INC-128417 | 573508 | Layout Group Accordion focuses on selected layout | When using a Master-Detail Table that included 7 layout groups which had a first layout that was very large and contained some sub layouts, creating two rows in the table in screen and then expanding all sub-layouts of the first layout in the first row did not show the newly open layout. Instead, focus went to the bottom of the page and the page was scrolled down automatically. Scrolling to the bottom and expanding another layout hid the previous active layout and immediately showed the current one. This was due to some timing issues that caused the current expanding view to not come into view from the start of the header, and has been resolved by adding scrollintoview for the active layout tab. | User Experience |
INC-128504 | 564638 | Added handling for repeated fast radio button clicks in Microsoft Internet Explorer 11 | Fast clicks on the radio button were freezing the portal in Microsoft Internet Explorer 11, 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 Microsoft Internet Explorer 11 caused the markup to change with each refresh section. Because Microsoft Internet Explorer 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 | 566557 | 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-128970 | 583293 | Post value in grid works after clicking on modal submit | The row submit on the grid of the modal dialogue worked when the value was updated and there was a click outside the grid. However, when the value was auto-populated, after clicking on the submit and going back to edit the value in the grid, the row submit did not work. Investigation showed that when a modal was submitted with some server errors, the system replaced the DOM and a new grid is initialized: since some of the listeners related to grid are attached to body, on submit of modal with server errors, these old listeners were getting fired. To resolve this, a safe check has been added for modalDetailsDiv before accessing it in event listeners. | User Experience |
INC-129104 INC-132003 |
578746 580695 |
Mashup updated to support Safari 13.1 | Starting with version 13.1, Safari has enabled the “Prevent cross site tracking” setting by default, which prevents embedding any cross-domain content into the main web page for security reasons. This has affected the “Pega Web Mashup” feature, which provides an easy way to embed Pega content into third-party host applications. To resolve this, Mashup has been updated with the recommended webkit to support Safari 13.1+: with these new changes, other browsers will not see any difference but Safari users will need to perform additional interactions prior to the load of Mashup in order to give permission and accept cookies. | User Experience |
INC-129388 | 571372 | 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-129517 | 572491 | 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 |
INC-129605 | 572463 | 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-129848 INC-133637 |
580461 581343 |
Refresh handling added for cancel 'add item' while offline | When using iPad and iPhone offline, filling in one required field, hitting submit (click action: 'Add item') without filling in a second required field, and then hitting cancel resulted in a blank record being added. Clicking the cancel button first without clicking submit before did not add the item. This was traced to the underlying repeating dynamic layer being refreshed during the submit and adding the record, and has been resolved by adding a refresh for the cancel button process as well. | User Experience |
INC-130011 | 571831 | 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-130090 | 573265 | Added handling for sourced radio-buttons group rendered in an inner iframe | When using a radio button sourced with a pxTextinput using a Local List 'Yes' and 'No', the Assertion conditions were populated with incorrect data while a test scenario was being recorded, causing the test case run to fail. This was traced to the radio buttons being inside an iframe (dynamicContainer): when the scenario test was run, the radio-buttons group was rendered in an inner iframe that caused the document to refer to the outer document on the webpage instead the inner document. This has been resolved by adding handling to get the OwnerDocument of the DOMElement in domUtils's getDOMElementValue() and call getElementsByName on itso the references are correct. | User Experience |
INC-130464 | 568332 | 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-131225 | 579735 | Child cases correctly created on mobile app | After upgrade, creating a child case from the device generated the error "Failed to reset case type. Not starting optional process : undefined" when launching a "nestedRDL" case and clicking on the "CreateCase1" button on the top. This has been resolved by updating the harness action API to read the harness purpose from DOM instead of the harness context for the HC case. | User Experience |
INC-131523 | 573853 | Parameters to Property UI Field available in report | When using a parameterized control like Decimal for a property in the UI control of the Property rule with inputs given to the parameters, once the property was optimized and referred to in Report Definition, the value was rendered using the Control with parameters defined in its rule form. In the report, the column was not rendered as it is designed on the property rule, but the same worked as expected in a section. This behavior was a change after upgrade. This was traced to "pyPropertyName" being added to the stepPage as part of the pzMergeAutoGenForProp Activity, and has been resolved by adding it to the stepPage only when it is an auto-generated control. | User Experience |
INC-132187 | 570647 | 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-132219 | 580267 | Values with accent characters are sorted properly | Table Layout column values using a pagelist were not sorted properly when the data contained French accent characters. This has been resolved. | User Experience |
INC-132405 | 574689 | 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-132670 | 585776 | JAWS reads optimized table rows correctly | When using JAWS2020 on Google Chrome on a PegaWAI enabled application and traversing an optimized table using Table shortcuts, the first row of the table was never read, and columns were read with the headers, but with unnecessary verbiage. For example, if column "Name" had an entry "Adam", JAWS read out "Name press enter to sort , Adam" instead of just "Name Adam". JAWS reads the data columns based on aria-rowindex: because it treated the header as the first row, it directly went to the row with aria-rowindex 2. In the second issue, the complete header group was read by JAWS because there was no aria-label. These have been resolved by modifying the aria-rowindex attribute for first data row accessibility by JAWS, and aria-label has added to the header group to restrict what is read out while navigating across the data columns. | User Experience |
INC-133013 INC-133013 |
580953 584212 |
Corrected white space left after feedback panel collapse | After activating the feedback panel on the right side of Cosmos Agile Studio, white space remained in that area after the panel was closed. This was traced to javascript overriding the style of the main panel, and has been resolved. | User Experience |
INC-133545 | 576222 | Column regex updated to work with more than 9 columns | The first time a filter popup appeared in a grid it worked, but a second time clicking on the column filter icon did not open the filter popup. Logging showed the error "Uncaught TypeError: Cannot read property 'parentElement' of null" was generated when the filter pop-up "Apply" button was clicked the first time. Investigation showed this issue only occurred when applying filter after 9th column, and it has been resolved by modifying the regex expression for column index to work for a column index of more than 9. | User Experience |
INC-133924 | 581346 | Table captions added for accessibility per HTML5 | In order to add Table captions for accessibility per HTML5 specifications, a new grid caption field has been introduced to add the caption to the table. When caption is specified, the summary attribute won't be generated. | User Experience |
INC-134018 | 583010 | Cross-site scripting protections updated for Dynamic Tab group | Handling has been added to the Dynamic Tab group to protect against Cross-site scripting. | User Experience |
INC-134319 | 581732 | Row banding matches on optimized and normal tables | Optimized table and normal tables had exactly opposite row banding defined. This was caused by the header row being inside the table body tag: the nth-child selector, used to apply row banding, considered the header row as well while applying even/odd row coloring. To resolve this, the nth-child selectors for odd and even rows have been reversed so that the color banding will be in sync between old and new grids. | User Experience |
INC-134920 | 582561 | Spanish localization fixed for available appointment date | For the Spanish locale, one of the values was not formatted correctly for one particular date format in the new appointment screen. For example, "lunes 6 de julio de 2020" was displayed correctly in the control but at runtime appeared as "lunes 6 61 julio 61 2020". This has been corrected by creating a placeholder for the text 'de' for the Spanish locale, and once the date is formatted the system will replace the placeholder with the original text. | User Experience |
INC-135098 | 578489 | Corrected paste/drag and drop upload with Rich-text editor | After upgrade, the CK Editor was not correctly adding the image when using cut and paste or drag and drop: only the image uploader button was working. This has been corrected by adding code to conditionally upload the image to the server while doing a paste in Rich-text editor control. | User Experience |
INC-135342 | 583283 | Resolved null-pointer exception in SafeURL.put(key.value) | After upgrade, opening System and Nodes and clicking the back button resulted in a NullPointerException related to SafeURL.put(key.value) {FieldError}, (undefined) in Admin Studio. This was traced to the property FieldErrorType not being found in the current context, and has been resolved with the addition of an empty string placeholder when it is undefined. | User Experience |
INC-135405 | 582003 | Simple button style updated to allow customization | The Simple button style was not picking up the correct border style that was defined in the Skin rule when in the hover state. This was traced to the border radius value hard-coded in one of the custom files taking precedence over the value added for the border radius in the skin format. To resolve this, the simple button styles code has been removed from the controls.css file that had the border radius value hardcoded. The styles for simple button format will be configured in the skin, and a mixin has been added for modal buttons border styles that can be configured in the skin itself. | User Experience |
INC-135554 | 584116 | Handling added for displaying very long case ID in Cosmos | Case ID and case type were overlapping in the user portal when using Cosmos. This was caused by a case ID that was long enough to cause a line break, and was due to a height being set on the Case ID area. To resolve this, updates have been made which will truncate the display of an over-length Case ID and add ellipses when the text is too long. | User Experience |
INC-135594 | 581778 | Smart Tip displays correctly with double quotes | After configuring a Smart Tip action which used a selected field value as tip source, the double quotes in the tool tip caused it to not be displayed. This has been resolved by escaping double quotes when a field value is configured in Smart Tip. | User Experience |
INC-136518 | 582570 | Elapsed time available for an AJAX event duration | An enhancement has been added which will capture a start of queue event for an AJAX event. This can be added to the existing end of queue event information and be used to calculate the event duration via Pega Web Analytics. | User Experience |
INC-137276 | 585300 | Arrow key navigation updates for layout grid tabs | When a layout grid was configured as Tab mode, the up and down arrows allowed navigation between tabs. This has been modified to meet W3 standards of using left/right arrow keys to navigate between tabs and up/down arrow keys to scroll the page. | User Experience |
INC-137691 | 585771 | Aria label added to support description of tab groups | When using layout group - tab, the screen reader would immediately read the first tab; there was no information about the tab group itself. To support giving a description of the purpose of the upcoming tabs, Layoutgroup and DLG now have a design time descriptor to configure an aria-label which will be used to announce the purpose of the Layoutgroup ahead of reading the first tab. | User Experience |
SR-D65174 | 560601 | SetInterval will increase when AQD delay is defined | With a 5000ms delay in place, executing scenario test cases resulted in errors such as values sporadically not being entered in their respective fields when the test was run, test runs that failed even though the data was entered as expected, or the submission of a test case assignment (Next button) executing the next step before the new screen was loaded. Investigation showed this issue was occurring when the system encountered a slower machine and a delay in loading pages, and was traced to the executor not waiting long enough due to the implicit setInterval of 8 seconds. It was possible to add a local delay in AQD settings for slow pages, but the system-set setInterval interfered with this delay. To resolve this, changes have been made to the executor module where setInterval is invoked that will increase the setInterval time when AQD delay is defined, so that setInterval will not interfere with a locally-set AQD delay. | User Experience |
SR-D68328 | 557748 | Unload handler added for use with custom popups | A memory leak seen in Microsoft Internet Explorer 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-D80572 SR-D99025 |
558411 558220 |
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-D80918 | 543625 | Custom buttons updated to use new Perform harness | When using custom buttons, the error "NullPointerException in SafeURL.put(key,value) {TaskIndex}, {undefined}" appeared when clicking on the Submit button. This was traced to the customer buttons using the Old Perform harness, and has been resolved. | User Experience |
SR-D83027 | 548582 | Resolved Microsoft Internet Explorer 11 custom dropdown issue | Microsoft 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-D87019 | 561907 | 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-D87546 | 555004 | Harness context will be stored to handle on click executed outside of the Ajax Container | An exception was generated in the interaction portal on execution of a post-value action for the on-change event on a text-box in the service case: "Failed to find instance Work-Interaction-Research.EmailBodyRTE of type Rule-HTML-Section". This was traced to a condition where clicking outside of the Ajax Container context to trigger the change caused the Events code to execute the event in the active context when the active context had already been changed by clicking outside of the AC. To avoid this, the system will store the harness context in the event object using pega.ctxmgr.getContextByTarget(target) API. Additional changes were also made to handle the context switching in case of post value when the blur triggers a change in context. | User Experience |
SR-D89242 | 555587 | 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-D91344 SR-D94331 |
560625 561968 |
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-D91511 | 558003 | Check added to postOpenAssignment to support Ajax Container use | After configuring an 'OpenAssignment' action on a begin button and giving the target as 'Dynamic Container', it worked as expected to open the assignment in a new tab on the Platform, but did not work from the Customer Service interaction portal. This was traced to the Customer Service portal using MicroDC to display the cases in the work area, which was not within the scope of the Ajax Container. Additional checks have now been added to the postOpenAssignment function to support this use. When the action is creatework , finaltab name will get its value from pega.ctx.strPyID. | User Experience |
SR-D92571 | 553113 | 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-D94700 | 556018 | Report group headers localized | Localization has been added to report group headers. | User Experience |
SR-D95367 | 560740 | 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 | 563395 | 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-D96224 | 556779 | 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 |
SR-D96754 | 560218 | Column filtering corrected for Microsoft Internet Explorer 11 AJAX containers | Column Filtering was failing when used in tables inside an AJAX container in Microsoft Internet Explorer 11. 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 | 558138 | 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 |