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 formatted 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.)
Ticket # | Issue # | Title | Description | |
---|---|---|---|---|
SR-C80200 | 494449 | Resolved Sporadic ControlBuild error in sections | After upgrade, a sporadic error was seen with sections of a VTable after a server restart where a portion would not load and the error "com.pegarules.generated.html_property.ra_stream_pxtextinput_1786000787_default incompatible with com.pega.pegarules.pub.runtime.ControlBuilder" was seen. This issue was traced to invalid generation of an assembly parameter map for random sections the first time the table was called after restart. To resolve this, the system will now allow assembly parameter generation for a second time when they are empty, and the assembly parameters preparation will be handled as a synchronous process. | |
SR-C88015 | 427061 | Null check tuned for hotfix bulk import | If a hotfix contained any changes to rules, the import failed with a null pointer exception.This was traced to a null bulk object. Investigation showed that if debug logging was enabled on ESBulkIndexerEmbedded, the system was attempting to get a value off of customBulkRequestBuilder, an object that could potentially be null but that was not subjected to a null check until after the debug statement. This has been resolved by adding a conditional within the debug statement to output a different message if the builder is null, preventing this issue from occurring. | |
SR-C88711 | 439597 | Handling added for exception caused by empty page list | Attempting to map an auto-populated pageList property in a data transform was throwing a java IndexoutofBoundException. Investigation showed that the system was trying to access the second element of an empty Page List. To resolve this, the system has been updated to use a flat list DataProvider which will return null if the list does not exist rather than return a list that is not associated with the parent page. | |
SR-C91274 | 481697 | Corrected Base64Decode calculations | Testing indicated that a file encoded using Base64Encode generated the error "The Operation completed successfully, but returned no content" when decoding with Base64Decode. Validating the content of the text file via a JSON validator using text formatted as JSON worked as expected. Investigation showed that extra padding characters were being appended due to calculations around CRLF characters, and this has been corrected. | |
SR-C93264 | 437311 | Inference engine enabled to resolve JourneyManager data flow exception | Customer environments were intermittently seeing an exception with the error "Could not get ultimate primary destination for data flow .DF_JourneyManager" when trying to compile an activity that ran a dataflow that ultimately called the DF_JourneyManager data flow. This error was traced to the Inference engine being in a disabled state so the system was not able to get the dataflow output class via declare expressions. The Inference engine has now been enabled to resolve this issue. | |
SR-C93292 | 432663 | Inline error messages linked to input for accessibility | In order to support accessibility for server side inline messages, the controls have been mapped to the error message div and an aria-describedby attribute has been added for the same. This allows JAWS to read the error message specific to the control where the error occurs. | |
SR-C93572 | 440080 | Search initialization logic updated to ensure consistent node member information | The search function was intermittently failing across nodes after restart. Investigation showed that this was due to inconsistent results from search initialization cluster logic using Hazelcast APIs to tell whether or not a given node was part of a Pega cluster. To resolve this, the logic has been updated to rely on ES APIs instead of Hazelcast cluster membership to determine offline nodes. | |
SR-C93873 | 436425 | BigDecimal division API updated | A difference in strategy output was seen after upgrade due to a particular HFix regarding decimal values in strategy calculations not being previously installed on the system. To resolve this, updates have been made to the BigDecimal division API that specifically addresses Group By shape. | |
SR-C94644 | 485243 | Date Filter corrected for Optimized table layout | The Date Filter was showing incorrect results when 'next month/current month' range filter was applied on the 31st of the month and the Allow Optimize code check box was enabled in the table layout properties. This was traced to the pySymbolicStartDate and pySymbolicEndDate properties values not being properly populated with time, and has been corrected. | |
SR-C94914 | 436302 | Cursor position retained after password field refresh | If a section was created which contained a Password control with an "Any Key" event that included "Post value" and "Refresh-Other section" actions, the cursor always stayed at the beginning of the line. This has been resolved by adding code to ensure the caret position is retained after a refresh for the password field. | |
SR-C95733 | 446393 | SendSimpleEmail modified to show complete attachment subject line | The complete subject of the correspondence attached in a work object was not displayed in the UI. The clipboard page pyWorkPage -> Attachment (Link-Attachment) also showed an incomplete value in the pyMemo property, displaying only 64 characters. Investigation showed that pyCorrPage.pyLabel was being set to 64 characters in the Work-.SendSimpleEmail activity, and then used LinkMemo to show the value in the UI. To resolve this, the system will take HistMemo as the LinkMemo as well if it is available and then truncate it to the Link-Attachment.pyMemo size to store the entire value as exposed. | |
SR-C95857 | 483548 | JSON parsing added for identifier data type | After upgrade, Service-REST was no longer mapping data as expected when the property was of type "identifier". Handling has now been added for mapping where property type is identifier and the incoming type is any valid value for identifier. | |
SR-C96394 | 438672 | Report data query updated to better handle exceptionally large queues | If the database queue was exceptionally large (more than 3.5 million items), the report data query aggregating the results was timing out and showing 0 items queued on the management landing page. To resolve this, the summary view has been changed to rely on the data pages of the detailed view instead of aggregating the results by firing another query with RD. | |
SR-C96456 | 436308 | Autocomplete grid scroll bar fixed for large DataPage results | When autocomplete (default setting) was present inside a grid and the result popup had < 20 results, the scrollbar was not coming up in Google Chrome. This has been resolved by modifying the fixGridWidthIfRequired API to set set vertical scroll to auto. | |
SR-C96552 | 488913 | WordMacroManager updated to support both 32-bit and 64-bit | After upgrade, the FlowAction=> CreateMergedWordDoc was not working. This was traced to Word Merge failures due to 64-Bit incompatibility with the WordMacroManagerDot template file, and has been resolved by updating WordMacroManagerdot.dot so it supports both 32-Bit and 64-Bit. | |
SR-C96680 | 483764 | Reject changes in approvalRuleChanges flow will clear cache and reassemble rules | When a paragraph rule with "need approval" checked in the ruleset version was delegated, previewing the data in the paragraph rule via a button and making changes worked as expected. However, after the changes were made and sent to the approver to accept or reject the changes and the private copy was deleted, it was observed that rejected changes still showed in the paragraph rule and the cache was not cleared. The Rule Approval process allows checkouts to be approved or rejected: when not using rule approval process, a Checkin from the personal ruleset results in a Delete operation (from WBCheckIn & RuleCheckIn) that will remove the rule from the personal ruleset. However, with Rule Approval process setup, the rule in the personal ruleset is not deleted. Instead it is simply moved to the CheckInCandidates ruleset. The pyRuleset on the rule page changes, but the Inskey remains the same. Because there was no delete operation, there was no noteChange event and the cache was not cleared. To resolve this, the system has been updated to now enable NoteChangeInternal to invalidate rules that are part of the personal ruleset only if they have the correct setting in their prconfig.xml. This fix also forces re-assembly of rules after check-in and approve/reject so that pressing preview will ensure the correct rule gets displayed. |
|
SR-C97046 | 485717 | Added restriction to limit environment sending multiple OTP emails | Multiple One Time Password (OTP) Emails were being sent for a single requestor on a change password screen when the password was expired. This was caused by the environmental settings refreshing the changepassword harness, and has been resolved by adding a restriction against sending multiple OTPs for a requestor to whom an OTP has been successfully sent once. | |
SR-C97399 | 439743 | Button type added to allow grid expand in Edge | When using an expand pane grid in a modal with the Edge browser, clicking on the expand icon using the enter key was throwing an error in new window. This was traced to an issue with a hidden non-auto-generated button in the pzModalHelp control not having a default type, and has been resolved by adding type="button" in the control so Edge will treat it as a submit button. | |
SR-D10100 | 465272 | Bulk actions filter works properly when additional filters are added | The Bulk Actions filter was not working if other filters were used in conjunction with it. Investigation showed that when 'assigned to operator' was given a value, the values were fetched properly. When an additional condition was added, the section 'pyBulkProcessingSearchSection' activity called 'pzDefaultOperators' which then set the 'pyUserIdentifier' value to null, and no results were returned. As the activity already had a step to check if the .pyUsage!="Operator" and only then property-set, pyUserIdentifier = "", the subsequent step to set the pyUserIdentifier = "" and override the previous step has been removed. | |
SR-D10171 | 482471 | Updated UtilsEmailListener to handle additional special characters in the email ID | When the Email Listener tried to map the properties from the email body and message header to the Pega Default out-of-the-box properties or user provided text properties, the mapping worked for simple alphanumeric email IDs, but mapped only the trailing part of the address if the Email ID contained an apostrophe or single quotes. For example, "toast.'[email protected]" was mapped as "[email protected]". This was due to a missed special character in the regex pattern, and UtilsEmailListener.java has been updated to correctly handle special characters in the email address as specified in RFC 5322. | |
SR-D10178 | 423054 | Tika library upgraded to v1.20 | The tika-parsers and tika-core version have been upgraded to version 1.20 . | |
SR-D10281 | 482813 | Configuration settings introduced for VBD read/write consistency | Exports of VBD data at different consistency levels showed data inconsistency between Cassandra nodes. VBD uses the default DSM consistency level of ONE for its reads and writes, which will not automatically repair data when inconsistency exists. Data inconsistencies can lead to VBD timeouts trying to load partition data. To support VBD read/write integrity, an enhancement has been added to allow configuration of VBD read/write consistency levels by way of the following DSS properties (Owning Ruleset: Pega-DecisionEngine): vbd/readConsistencyLevel and vbd/writeConsistencyLevel. R + W > N where R is the consistency level of read operations, W is the consistency level of write operations, and N is the number of replicas. These will override the default DSM read/write consistency levels (ONE). | |
SR-D10545 | 483628 | Minimum width set for stage names to ensure all are properly displayed | The chevron displaying stage names was not showing the complete stage name in Microsoft Internet Explorer and Google Chrome when there were more stages due to each stage not having its own width set. This has been resolved by adding a minimum width for the stages. | |
SR-D10598 | 485934 | Corrected persistent modal dialog thread | When a flow was configured as a modal dialog action inside service cases, closing the modal dialog flow caused the main flow to crash and leave the modal dialog flow thread running. This was traced to a conflict with the harness context on the triggered reload, and has been corrected. | |
SR-D10666 | 490867 | InitializeRequestor utilized to prevent Inconsistent authentication requestor state | A 'resource not found' issue was causing an inconsistent Robot status. This was traced to an improperly configured application where the service authentication requestor was left in a wrong state but was being returned to the pool. To prevent the issue of requestors being in an odd state if they try to authenticate and an error occurs, the system has been updated to now always call initializeRequestor, not just for Authenticated cases. | |
SR-D10775 | 490172 | Finalluy block added to Data-COS-.COS-Print streams | A security scan detected a potential issue with the activity Data-COS-.COS-Print not closing the stream in a finally block. Although this activity is not in current use, a finally block has been added that will close all of the conditionally initialized streams if they are still initialized. | |
SR-D10820 | 482683 | RDL checkboxes appear properly in minimized window | Checkboxes in RDL were not appearing properly in Microsoft Internet Explorer when the window was minimized if a dynamic layout of type inline quadruple was used. This was traced to the responsive breakpoints of a format overriding the styles for custom checkboxes, and has been resolved by updating the checkbox controls for responsive breakpoints to use a min-width and min-height instead of auto. | |
SR-D10889 | 482667 | Intervals for DateTime control inside table grid corrected | The "allow time to be displayed in the interval of minutes" feature did not work as expected for a DateTime control configured inside a table grid. If a value for minutes was chosen, say 30 minutes, it displayed all the minutes from 00 to 59 instead of displaying 00 and 30. The same control used inside a simply dynamic layout worked correctly, displaying 00 and 30. This has been resolved by adding logic to support having only time with drop downs. | |
SR-D10966 | 477274 | IH summary behavior change reverted | Changes introduced to Interaction History aggregations in 8.1 intended to better align them with the existing behavior of the Interaction History shape in Strategy produced the unexpected side effect of lots of empty records. Based on feedback, the decision has been made to revert the IH aggregation behavior change. | |
SR-D10969 | 477275 | Logic for the Materialized/Not Materialized feature updated | The Materialized/Not Materialized feature was not working properly. When there was an aggregate dataset entry in the Advance page set to use "No" for materialized, doing "Materialized" in IH Summaries LP on that dataset materialized the dataset and created a duplicate entry in the aggregation config page where one was "No" and one was "Yes'. This has been corrected. It was also observed that after an application changed its name while the access groups remained the same, changing a dataset from "Not Materialized" to "Materialized" worked, but changing from "Materialized" to "Not Materialized" did not. Instead, a warning message was posted at the top of the page indicating the problem. Investigation showed that the pzChangeStatus activity failed because the current application name did not match the application name of the access group set for the aggregation configuration record. To resolve this issue, the logic has been updated to remove the reliance on the application name. | |
SR-D10970 | 477277 | Datasets created from the IH summary component correctly listed as aggregate | Attempting to create an aggregate data set from the IH Summary shape did not properly list it as aggregate due to a source dataset error. This has been corrected. | |
SR-D11289 | 484054 | Mobile support added for Report Definition chart slider | Because the report definition ruleform chart slider was historically not supported on mobile devices, enabling the touch API in Google Chrome resulted in confusing behavior where the slider worked in mobile mode on a laptop but not on a mobile device. This was due to the chart slider being a jQuery UI slider component (ui-slider) that was built without support for mobile devices. An enhancement has now been added to utilize the jQuery UI Touch Punch library, which makes jQuery UI components mobile-friendly, by loading it at the start of pzRRChart. | |
SR-D11312 | 484682 | CKEditor table-related plugins updated | In order to successfully put a copy of previous correspondence below the auto email template, gaps had to be explicitly left below the auto email template before pasting the previous email correspondence. Otherwise the auto template disappeared and left only the previous email correspondence on the auto template. This was traced to issues with the CKEditor plugins, and has been resolved by updating to the latest table plugins from CKEditor (table,tabletools,showborders,tableresize,tableselection). | |
SR-D11605 | 485663 | :JAWS correctly reads heading for Report browser/viewer | JAWS 18 was not reading the titles in the report browser and report viewer as "heading level 1" as it should. For the Report Browser, JAWS was reading the title as "<title> - heading level 2", and for the Report Viewer, JAWS read the report title as "<title> - frame". This has been corrected by adding the appropriate aria tags to pzGetStyledLocalizedText. | |
SR-D11909 | 488672 | Secure and httponly attributes added to Pega-Perf cookie | A vulnerability test identified the Pega-Perf cookie as not having any attributes for secure and httponly. This has been resolved. | |
SR-D11942 | 484611 | Tab label added to Report browser launch | The tab label name was not populated when a report was launched from the Report browser. This was caused by the label for the tab not being included in the harness, and has been resolved by including RDWinTitle in pzRRDisplayCustomFilterSection. | |
SR-D12297 | 483685 | Added support for anonymous objects in a nested JSON Data Transfer | Calling a inner Data Transfer from an outer Data Transfer (both of type JSON) was generating an exception. This exposed an edge case in JSON mapping related to a condition where an object's field value was an array that included anonymous objects. The code maintains its "place" in the JSON structure partly by means of a "jsonContext" structure that names every object (but not any array or anonymous object) it is inside of, which is key to the serializer's ability to flatten nested clipboard structures in the JSON or conversely expand flat clipboard structures into nested JSON structures. In addition, there is a "structureStack" that shows how deep the function is in terms of OBJECT and ARRAY elements. The code uses the indices into these two structures to determine whether to pop out of one or the other, and in this scenario, when a field's value was an array containing an anonymous object, closing the array was causing the outermost object to be closed, thus leading to the exception when the system tried to continue to serialize. To resolve this, when closing an array, the system will check whether the parent of the array had the same name as the last position in the jsonContext, and if so, pop the jsonContext. | |
SR-D12511 | 484664 | Corrected error when resolving subcase from Review harness | An error occurred when resolving a subcase if it was opened from the review harness. It was possible to resolve the subcase successfully if the local action was invoked from the Perform harness. Investigation showed that the update status was called twice, once from pyForcecaseclose and again from the update status of the activity. This has been resolved. | |
SR-D1270 | 488262 | DB table mapping will check for existing properties before creating them | Using the Database table class mapping tool to map an external database table to a class and create properties according to columns in the table was resulting in the property being created as 'not available' and not case sensitive if the property to be created while mapping was already present in the inheritance hierarchy. This led to an error caused by the property validation failing in the validateReportDesignTab activity. Previously the database table mapping tool did not check to see whether the properties to be created existed already in the parent class hierarchy. With this update, the system will check before allowing the mapping, and if the properties exist in the hierarchy already they will not be populated. | |
SR-D13388 | 485168 | Handling added for minor case creation errors | When creating a case, if any step status failed due to a non-critical reason which did not impact case creation (for example, a mandatory parameter was missing from the data page), that failure state was propagated to SaveNew and ultimately to the case creation API. As a result of this failure report, no case ID information would be reported back to the requestor even though the case was created, and the API responded with status 500 - internal service error. This has been resolved by removing the StepStatusFail check from pzCreateCaseInternal so that non-breaking errors will not result in a 500 error, and a check has been added for page messages in svcAddWorkObject and svcPerformFlowAction so that validation messages are returned. | |
SR-D13450 | 488139 | Corrected Query logging level for Populate_UsepxRequiredSkillsCount | A Query was being logged with Logging level of Error in pzPopulate_UsepxRequiredSkillsCount. This has been corrected. | |
SR-D13514 | 489434 | Data-test-id handling updated to resolve testing issue with custom controls | After configuring a custom control, the control did not render as expected when trying to capture the scenario testing. Investigation showed that in readonly mode, two spans were wrapped with same data-test-id when formatType is number. This caused a ‘no unique selector’ issue with scenario tests. To resolve this, pzpega_ui_template_displayText.js has been updated to not include data-test-id on outer span when formatType is number. | |
SR-D13533 | 488346 | Grid generation updated to facilitate button with on-click action | An issue with an on-click event not getting fired was traced to an issue with Action generation on a button in a grid cell. This has been corrected by removing the code that set the parameter "isTemplatizedGrid" in runtime during grid generation. | |
SR-D13569 | 491716 | Additional parameter format added for multiselect controls | Attempting to pass a parameter like "Value1", "Value2" to a data page used for the MultiSelect Control was not working even though the same format worked for autocomplete control. This was an issue where the flow of fetching the data differed between the two controls, and support for this parameter format has now been added for multiselect controls. | |
SR-D13880 | 483331 | Support added for using WorkPage class for FieldValue evaluation | The Instructions provided under the Assignment details section of an assignment shape were not evaluating the FieldValue for the work object's audit history entries unless the field value was defined only at @baseclass. This was due to WorkPage class not being considered while evaluating a FieldValue, and has been resolved by modifying the InstructionsLookup control to use work class instead of the hard coded @baseclass. | |
SR-D14159 | 493056 | Toggle added for displaying exception stack trace | When text like "%25" was added to the login URL, the full exception stack was displayed on the screen. To resolve this, when the prconfig 'initialization/displayexceptiontraceback' is set to false (default value), the system will render the status.jsp instead of error.jsp and will not populate any sensitive data in the request object. If its set to true, the system will fall back to the old approach which renders error.jsp and emits the stacktrace. | |
SR-D14161 | 490596 | Cross-site scripting protection added to decryptURLString | In order to secure against Cross-Site Scripting attacks, decryptURLString will return a blank string instead of plain text if it is not given valid encrypted text. | |
SR-D14201 | 485965 | Multitenant system pulse receiver will parse originating tenant name to facilitate data page removal | When using a node level data page on a cloud multi-tenant system to get the data from a data table, attempting to flush the data page by explicitly calling pzFlushDataPage was not flushing the page in all nodes of a tenant. This was traced to the system pulse used to communicate between multitenant nodes: the receiver node was not removing the data even after receiving the system pulse because the cache contained the page with a different key. The key formed contained the tenant name, and the receiver was not parsing the tenant name from the pulse message received. To resolve this, the system has been updated to parse the tenant name from the pulse message and set it on requestor. This allows the correct key to be formed, allowing the receiver node to remove the data page as expected. | |
SR-D14521 | 486530 | Added support for sorting by field value instead of localized value | In a datapage-sourced dropdown with 'group by functionality' enabled in ascending order, the values were being sorted according to their localized value and not their field value. This was a difference between templatized and non-templatized handling, and has been resolved by adding the ability to sort the group label by field value in the templatized UI. | |
SR-D1458 | 437895 | Property name mapping moved to DSM side to ensure consistent results | If a Data Set rule was used to retrieve the records of the Data Class, the property names appeared to be changing randomly in the OperationResult Clipboard Page when the name exceeded 30 characters. This was traced to NativeSQL trimming and hashing any aliases that were longer than 30 characters, and has been resolved by moving the mapping back of property names to the DSM side. | |
SR-D14591 | 485931 | Check added to resolve intermittent console errors | An intermittent issue where an autocomplete control was hanging after repeated use has been addressed by adding an additional check (dispElem && dispElem.parentNode) to avoid console errors. | |
SR-D14601 | 488291 | Unique ID generation added for simultaneous multiple text area boxes | In the Interaction portal, adding a task for a interaction using a form with a character-count enabled text area worked as expected when the interaction first opened a task with the character counter text area. However, if a second version of the same task was opened before the first task was completed, the second text area was not responsive or working as expected. This was traced to the system generating the same ID attribute for both instances of the text area character counter span, and has been resolved. | |
SR-D14630 | 491166 | Thread label clipboard issue resolved for work objects using skipDCDataModelUpdation | In some cases, when a case ID was opened in Designer studio, its corresponding thread name in clipboard was pxThreadName instead of caseID or workID. Tab labels are handled through the Declare_pyDisplay data page. Investigation showed the child page pyDisplay(Developer) of the parent page Declare_pyDisplay, which was expected to contain pyUIElements for each tab, was missing an element for the tab whose label was shown as threadName. As this error was only reproducible for work objects with the 'skipDCDataModelUpdation' property set as true in the 'pyWorkPage', this issue has been corrected by updating the show-harness activity step-2 so the 'skipDCDataModelUpdation' property value is explicitly copied from primarypage ('pyWorkPage' in this use case) to 'parameterPage'. In addition, an issue with filtering records based on Operator Preferences has been resolved by updating ActivityStatusContentHandler to use a simple Show-HTML of the same "ActivityStatusSuccess" content instead of going through an unnecessary harness execution during activity when there is no session established. | |
SR-D15089 | 485331 | Handling added for single quotes in custom DateTime controls when using Export to Excel | A previously resolved issue with the timezone not being appended to datetime when exporting to Excel if a custom control was used has been further updated to better handle single-quote strings in custom DateTime controls. | |
SR-D15154 | 488069 | CaseType picks up stage name correctly | When adding a new stage in the Stages tab of a case type (pyDefault rule), the stages were shown as rule name instead label after saving and at runtime. Directly adding the Stages in the 'Workflow' tab of the case type showed the stage label as expected. This was traced to an issue with the current row of the table not being properly refreshed, leading to old data being submitted while saving. This has been resolved by adding an explicit "refresh current row" configuration on pyStageName under primary and alternate stage table layouts. | |
SR-D15216 | 487680 | Email parameter handling updated for greater backwards compatibility | After a major migration, email failures were seen with the message "Error sending email: To Address not available". This was traced to a difference in handling between the old and new system versions for fetching the details of workparty for the ToParty parameter, and has been resolved by modifying the newer Work-.pzGetEmailFromParty and Work-.pzSendEmail activities to handle party role as well for greater backwards compatibility. | |
SR-D15242 | 486126 | Removed unneeded TrackSecurityChanges warning for Field Level Auditing | When creating a TrackSecurityChanges data transform for Field level Auditing and providing the text in the source, the system produced warnings such as "The source 'Number of covered objects' is ambiguous and is being treated as text. If it is a page, add it to the Pages and Classes tab." These warnings were generated by pzIsAmbiguousSource when a rule modified to check for Top.pyModelName did not equal pyTrackSecurityChanges. Because the way the system processes the data transform for field level auditing is not the same as that used for the usual data transform, this warning is not necessary. To avoid confusion, the system has been updated with a check so warnings of the source being ambiguous will be ignored when the DT name is pyTrackSecurityChanges. | |
SR-D15261 | 487511 | Added ability to edit or SaveAs out-of-the-box 'Case Volume' report | It was not possible to perform Edit or Save As to a Private category for the Pega out-of-the-box report 'Case Volume', which is under the Public category 'Case Metrics'. This was traced to certain out-of-the-box report definitions being saved with a pz prefix which does not support the "Save As" functionality, and has been resolved by adding a Property-Set step above "Call pxCreateRecord" to set .pyRuleAvailable to "Yes". | |
SR-D15262 | 486889 | GetNextWork properly switches applications for 'most urgent' | Post upgrade, the "Get most urgent" button was unable to open a service request from another application to which the operator had access. In this case, the Operator had access to the Canada and USA applications by default, but when a service request from the Canada application context was available in the list, the Get most urgent functionality failed to switch the application context from USA to Canada in order to open the work item. Investigation showed that the GetNextWork activity was being overridden in the Pega-DecisionManager ruleset in rule resolution and that the the Pega-ProcessEngine and Pega-DecisionManager had different versions of the activity. This has been resolved by upgrading GetNextWork in the Pega-DecisionManager ruleset. | |
SR-D15275 | 490025 | Report title displayed properly when prompting for filter changes | Launching a report from the report browser showed a blank for "Report tab title" if the option "Prompt for filter changes before displaying report" was checked. This has been corrected by adding pzRDWinTitle to the harness Code-Pega-List.pzRRDisplaySection so it will display the name of the report when prompting for filter changes. | |
SR-D15391 | 484921 | Add row works as expected when using Embedded Elsewhere with a modal grid | When using Embedded Elsewhere, add row was not working on the first attempt for a grid launched inside a modal dialog. Changing the focus then resulted in the added row appearing. This has been resolved by updating the timing for the performInsertAction in the ui_grid JS. | |
SR-D15425 | 487887 | Removed extra space from feld value in Audit History | A space was seen for a Field value that was referenced in the instructions Audit History. This was traced to the control adding an extra space if any gaps were present in the code, and has been resolved. | |
SR-D15428 | 491567 | Null check added to resolve non-impacting InvalidParameter exception | Creating a child case from the SLA goal activity using the 'AddCovered' activity generated the message "Exception in queue item: cannot be null or blank". The error "com.pega.pegarules.pub.clipboard.InvalidParameterException: cannot be null or blank" was also seen. However, no functionality impact was observed. This has been resolved by adding a null check to the getPortalName method, and modifying the HarnessUIBuilder.java file to add safe checks for whether 'portalName' is empty or not. | |
SR-D15469 SR-D19491 |
487524 489903 |
Export to Excel formats the DateTime filter for localized values | When exporting to Excel, filter criteria were given in GMT rather than the localized timezone. This was caused by the implementation of localizeDateTimeString method not formatting the output string for the locale/timezone during export to Excel, and has been corrected to display the localized filter values when the filter values include DateTimes. | |
SR-D15520 | 497156 | Exported formatting corrected to display security scan line found detail | Running a Rule-Security-Analyzer scan using a pyUnsafeURL regular expression and RSA provided items found, but the exported results did not contain line found detail. Investigation showed this was caused by the results being converted to an HTML table when the result itself contained HTML tags, resulting in broken HTML generation. To resolve this, the results will be sanitized for display as HTML. | |
SR-D1575 | 483121 | Added check for null work page in Pulse task | After upgrade, the message "Error in Pega Log file:Unkown Error: Error during while executing pulse task: SingleCaseMetricsManagerFlush java.lang.NullPointerException: null" appeared while executing Pulse task. This was traced to a null workObjectPage, and has been resolved by adding a check for a successfully created work page. | |
SR-D15822 | 485163 | PageList under PageGroup Repeating Layout corrected | An issue with the PageList under PageGroup Repeating Layout not working has been resolved by modifying the system so the initial "." will not be removed when using a page from a property. In addition, the newRow functionality has been updated to support the use of an embedded pagelist in a page list. | |
SR-D15844 | 496777 | Flag set for using defer load context switching with Microsoft Internet Explorer | Defer load section was not working as expected due to Microsoft Internet Explorer 11 not maintaining the context of the section during busyIndicator hide. To avoid this, a flag 'pega.ctxmgr.skipContextSwitching' will be set during the hide of busy indicator if Microsoft Internet Explorer is used, and the harness switching context will then be decided based on this flag. | |
SR-D15875 SR-D12530 |
486381 482722 |
Spinner wheel dom correctly cleared after incomplete case closure | Incorrect behavior of the spinner wheel during a case search following the browser being closed while a case was open has been resolved by updating pzpega_ui_doc_actionRouter to ensure the wheel dom is correctly cleared. | |
SR-D15895 | 486594 | Strict checking inserted to better handle DB keywords in string constant | After upgrade, a report was failing with the message "Rule Alias Function cannot reference a SQL function that performs a subquery." This was traced to the report having a function alias used in the columns which compared two strings and returned another string (constant - static value) if the condition was met. However, in two of the returned string constants there was the word "select", which is a keyword in all database languages. Even though the word "select" was a referred part of a string constant, the system treated it as a keyword and tried to perform a subquery within the Function Alias because ABAC was enabled. The report only exhibited this behavior post-upgrade because while ABAC defaulted to disabled in previous versions, it was changed to default to being enabled beginning with v8.1. To resolve this and create more robust backwards compatibility, a more strict check for subquery validation will be performed when ABAC is enabled which will parse and check whether the Rule-Admin-Function has the standard 'select from' clause syntax of SQL. | |
SR-D15910 | 491008 | AM/PM time setting corrected for Riyadh timezone | When logged into the Pega mobile application with operator locale as ar_AR and timezone as Asia/Riyadh, selecting time as PM resulted in it being set to AM with Native control. If the native control was unchecked, a blank screen resulted. This has been corrected. | |
SR-D15970 SR-D8390 |
485233 488003 |
Handling added for runtime exception on upgrade due to inaccessible external schema mapping | If a system used external schema mapping, attempts to upgrade were failing with the error "Caused by: com.pega.pegarules.pub.database.ConfigurationException: Unable to obtain data source "java:comp/env/jdbc/PegaRULES", as it is undefined". This was traced to configuring external DADNs which were not accessible from the server where the upgrade was being run: an upgrade will fail if it cannot connect to an external datasource even if no changes need to be made to that datasource. However, because a PRRuntimeException was unexpectedly being thrown instead of a Database Exception, the exception was not properly caught and handled. This has been corrected. | |
SR-D16074 | 485882 | Additional language options added to Language Wizard dropdown | An enhancement has been added to the “select a language” dropdown in the Language Wizard that extends the available options to include Latin American Spanish (es_XL), Brazilian Portuguese (pt_BR), and Korean (ko_KR). | |
SR-D16221 | 485533 | Email replies fixed for cases addressed to CC or BCC address | Using Customer Service, if a Customer included 3 email accounts in single email (one email in To, one in CC, and one in BCC) and all three accounts had the listener configured and running, the system created 3 cases accordingly (I-1, I-2 and I-3). However, when the CSR picked up the case and replied back on each Interaction case, the customer could receive emails only from the first case (the I-1 case which was created based on To address) and replies from the other cases created from the CC and BCC email addresses were not received. Investigation showed that the function populating the “From” email address for replies was only considering email addresses in the “To” recipient list of the original email and not the email addresses which were in the “CC” or “BCC” list. This has been corrected. | |
SR-D16327 | 488145 | Updated logic for Bulk Upload count when background processing is used | When multiple items were queued as part of "Bulk Upload" and the "Transfer To" operation was used with "BULK PROCESS in BACKGROUND", discrepancies were seen in the email received. For example, if two items were selected for transfer, email notifications stated that 1 item was selected and 1 item was processed instead of 2. This was traced to using 'process in background': when selected during bulk processing, the first record is processed in the foreground and remaining records are processed in the background. When the system sent the email notification once the background process was done, the total records computation was not considering the foreground-processed record, and the count was off. The timing logic has been updated to account for the foreground record to resolve this. | |
SR-D16427 SR-D32441 |
498439 502575 |
Multiple-nodes rebuild LibraryMetadata to ensure all RUFs are present on change | When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that RUL. Therefore, assemblies on those other nodes could throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation, to ensure that each node completely rebuilds the LibraryMetadata for that RUL so it contains all the RUFs. | |
SR-D16433 | 499296 | Exception handling added for upgraded custom decision tables | After upgrade, the status fail message "There has been an issue; please consult your system administrator" appeared with a blue screen in the Run window when attempting to run a Decision table from Actions-> Run option. This impacted the ability to create unit test cases. Analysis showed the issue occurred for any decision table where "Evaluate All rows" was enabled and list properties were used in Actions if there was no value for the list property after the execution of decision table. This was traced to a NullPointerException in a RunRuleFromPage activity in a customized in PUnit ruleset, and was caused by having list properties in the actions of a decision table that had not been populated during rule execution. Exception handling has been added to resolve this. | |
SR-D16540 | 489183 | Removed duplicate error message seen when opening a case owned by another | Duplicate error messages appeared when opening a case assigned to another operator. This was traced to there being two different sections that each would call the error message, pyNoIDMain or pyNoIDHeader, and this has been corrected by removing the error section from pyNoIDMain. | |
SR-D16624 | 490929 | Table layout filter popover position corrected for Pega mashup | When using an exposed harness with table layout using Pega web mash up, the mash up worked but the apply and cancel buttons were not visible when any column was clicked to filter the result. This was traced to the filter popup having a hardcoded position offset set in its div element, and has been resolved by delegating the responsibility of the filter popover height calculation to the popover. | |
SR-D16829 SR-D17741 SR-D17743 SR-D17770 SR-D17774 SR-D17775 |
486657 486921 486917 486925 486928 486931 |
Nodes start as new if replacement start fails | Cloud upgrade was failing if there was any attempt to scale up the number of instances. Every node starts up with a flag, and in cases of scale-up scenarios, a new instance with this flag was handled as a replacement instance instead of a new instance. That led the new node to fail because it has nothing to replace. To resolve this, the system has been updated so that if an instance failed to start as a replacement, the process will allow the instance to join the cluster as a new node. | |
SR-D16934 | 493704 | External Cassandra nodes listed in DDS cluster | Nodes of an external Cassandra cluster were not listed in the DDS cluster except for the first one in the host list, and when the “only” listed Cassandra node was restarted, the status on the DDS cluster LP did not become “NORMAL” afterwards. In addition, even though other C* nodes were up and running, the external Cassandra cluster was reported as unreachable. This was an unintended side effect of work done on the landing page to reflect the real state of the nodes after some were killed and restarted, and has been corrected by refining the equals() and hashCode() methods for DDS member info in order to better differentiate the external Cassandra nodes. | |
SR-D16970 SR-D16971 SR-D16974 SR-D16976 SR-D16977 SR-D16978 SR-D16979 |
485763 491325 486035 486038 486041 486044 486047 |
New API introduced to handle DSM service startup fail or delay | A Stream node was shown with JOINING_FAILED status in the landing page, but executing a JMX call to get the status on the landing page resulted in a message that it was not a registered bean. This was caused by JMX being registered before service initialization and allowing for decommissioning a node other than itself. Investigation showed that this feature was developed prior to its use for cloud monitoring, and subsequent development led to the same feature being used via LP. In order to prevent conflicts, a new REST API has been introduced to allow cloud monitoring to manage nodes in which DSM services failed to startup or are still in the process of getting to "NORMAL" state. | |
SR-D17306 | 490919 | RD pagination expanded to 1500 rows | The default pagination enabled on the Report Definition was limiting the results to 50. This has been enhanced to a row limit of 1500 in report definitions pzGetAllPropertiesOfGivenClass. | |
SR-D17418 | 498722 | Attached note header displays properly in Hebrew locale | With the locale set to Hebrew, the whole portal is presented correctly from right to left, but when opening a case note (attached email) the header was not displayed as right to left. This has been resolved by updating the 'DisplayNote' HTML of class 'Data-WorkAttach-Note' and 'Show' HTML of class 'Data-Corr-Email' to use locale information from the operator. | |
SR-D17568 | 498411 | Handling added for interaction portal refresh containing many data parameters | Attempting to refresh the browser when there were interactions opened in the Interaction portal and a huge amount of data on the parameter page caused the screen to blank and the interaction content was not displayed. Investigation showed that as part of the refresh, the displayOnPage GET request was sent with all of the parameters in the parameter page (data-model), resulting in a 400 Bad Request due to the browser URL length limitations. This has been resolved by removing the parameters which are not actually required for the displayOnPage GET call during the refresh case. | |
SR-D17577 | 486863 | Enhancement added to allow skipping Text Analysis on incoming email | When an inbound email channel was configured for automatic routing only, PEGA0039 alerts were generated even if the Text Analysis feature was not being used. To resolve this, an enhancement has been added by way of the 'when' rule pySkipTextAnalysis which can be overriden and set to true. When this condition evaluates to true, text analysis will be skipped for Email IVA. By default the when rule evaluates to false. This rule must be saved in application ruleset and should return true if analysis is to be skipped. In addition, the timing of the Obj-Save has been moved so if the text analysis is skipped, the system will not prepare the unneeded interaction input. | |
SR-D17660 | 486702 | Resolved OOM error for system scan | In some installations, performing a system scan would cause an Out Of Memory Error. This was traced to the process used to de-serialize the catalog metadata, which caused the unzipped version of the catalog (containing data going back to v6 releases) to grow to 125 MB. To resolve this issue the system will make use of streams, but as that still requires the entire catalog object to be available, the system will also cull redundant objects from the hotfix catalog. Going forward, platform-specific catalog files will be created to minimize their size and improve efficiency. | |
SR-D17694 | 487183 | Include Rule in RTE parameters are properly saved | After creating a correspondence and including any rule, opening the parameters of the rule, and giving a Using page value before saving, reopening the parameters modal dialog showed the Using page value was null. No actions were performed on the Save button or the input value. Investigation showed that the rule parameters were not getting saved due to an incorrect element selector being used. This was traced to a recent change that modified the use of unique IDs for the selector, and has been resolved by setting the system to use a different selector independent of the ID. | |
SR-D17694 SR-D21527 |
487183 491738 |
Hidden filters will not be shown on the resulting report | After setting up a Report Definition to be visible in report browser with all filters hidden, editing and saving the report resulted in the filter values being visible on the report. This has been resolved by modifying pzResolveCopyFilters activity so that If the filter view option is "Read only, allow no changes" and "Filter not visible in Viewer", it will skip copying the filter values on to the report definition page. | |
SR-D17825 | 494703 | PreSaveAs updated to set the correct ruleset value when saved into a different ruleset | When using a BIX Extract rule already configured with properties and filter criteria, attempting to update the filter criteria system resulted in an "invalid property error" and inability to save the updated rule. This was traced to the extract rule being created from another extract rule with 'save as', resulting in the new extract existing in a different ruleset. Because the pxBixReportPage.pyRuleset had the value of the original ruleset instead of rule set in which it had been saved, the system was attempting to find the filter properties in the original ruleset. To resolve this, the Presaveas activity in rule-admin-extract has been modified to check and set the correct value when both the rulesets are not equal. | |
SR-D17907 | 489174 | Resubmit task now moves partitions to end state before restarting | Resubmitting a failed task did not put the partitions into an end state, resulting in queue processor failure that did not automatically restart as expected. This has been fixed by modifying the resubmit task to move partitions to end state. | |
SR-D17919 | 491581 | Corrected thread switching when moving between interactions tabs | When using Create New for a Phone Call-Consumer in one tab and Create New for an Outbound Phone Call on another tab, the thread was not changing when switching between the tabs of the interactions. Closing the Outbound call interaction resulted in null pages on the clipboard. This has been resolved by updating the pzpega_ui_doc_tabsupport file so it switches to root document context if called from onActivate function using a flag. | |
SR-D17927 | 490558 | Reolved special characters appearing as HTML values in case audit history | Field values represented in the Audit history of a case were displaying HTML values for certain special characters. This has been corrected. | |
SR-D17973 | 489740 | Corected parameter mismatch to allow deletes to be added to history | Pega was not keeping track of a property if it was deleted from the data explorer tab, resulting in not being able to restore the deleted property. This was traced to a parameter mismatch: the Delete API adds the Memo parameter to the history, but while DeleteRecord accepted the Memo parameter, DeleteRecordInner accepted the HistoryMemo parameter. Because the parameters names were different, they were not propagated to the API. This has been corrected by setting the param.memo so that Rule-Delete API adds the history and the rule gets displayed correctly in recently deleted rules. | |
SR-D18200 | 492099 | Whitelist security added to getDataPage API | In order to secure data pages that may be exposed through using Global Resource Settings with the pega.api.ui.actions.getDataPage API, logic has been added to expose only mentioned data pages from the clipboard through pyPublicDataPageWhiteList. | |
SR-D18217 | 489811 | Corrected PDF generation when an image filename has special characters | When using Export to PDF with an uploaded image file that had special characters in its name, the images were missing from the generated document. This has been corrected by updating the decoding of the URL to not remove the checksum when using RTE. | |
SR-D18234 | 491749 | Updated backwards compatibility for custom date/time wuith extra text | After upgrade, migrated extra text in the custom date format was causing confusion. The previous support of additional text on earlier versions was not intentional, but was allowed by the previous default of non-template mode. In template mode, when custom datetime format includes plain text in single quotes, pega.ui.Formatter.formatDateTime processes the entire format string instead of only the datetime formats. To avoid confusion, updates have been made so if a custom format has plain text in quotes, the system will separate the formats and resolve them. | |
SR-D18589 | 495716 | Google Map API correctly loads pointer the first time | When using Address Map control with enabled markers whose source is a datapage, the location in the map was redirected as expected to the address populated by the datapage, but the marker overlay that appeared by default containing address details and a link to "Open in Google Maps" did not load. Clicking on random places on the map caused it to load correctly. This has been corrected with the creation of a custom activity to get section markup that will use reload section with proper context to fix the issue. | |
SR-D18809 | 490874 | Localization added to SetCMISMessageWarning | Localization has been added to pzSetCMISManageWarning for the warning message "This attachment is locked for editing by you". | |
SR-D18907 | 488900 | Property references now supported for label and checkbox captions | An enhancement has been added to support the use of a property reference for labels and checkbox captions when using the DX API. | |
SR-D18960 | 499911 | Logic updated to resolve busy indicator delay | On click of submit in the main interaction flow, the busy indicator was not getting displayed or was displayed after a delay whenever there were a series of Ajax requests being made. The logic has been updated to resolve this issue. | |
SR-D19083 | 490403 | Autocomplete list resets to top of scroll if selected data is deleted from the control | If an autocomplete on Screen did not initially have any input, pressing the down arrow showed the popover data with the scrollbar on the top. Scrolling down and selecting an item from the autocomplete suggestions and then tabbing out closed the popover. If the data was then deleted from the control and the down arrow was pressed again, the popover suggestion showed the data in the last scrolled position instead of restarting from the top as expected. Investigation showed that when autocomplete used a list configuration, the popover div was not being updated if the data was deleted from the control. This has been corrected. | |
SR-D19177 | 492340 | Mashup refined to not trigger resize from popup | The parent window was being refreshed when an action was performed on the child window or the child window was resized from the mashup script. This has been resolved by altering the logic to avoid triggering resize from popups in a mashup scenario. | |
SR-D19602 | 489990 | GetDirections API enhanced to send exact current location to Google Maps | The GetDirections API was not fetching the exact current location for Google Maps. In order to enhance precision, selecting the current location will use the navigation.geolocation.getCurrentPosition API to get the latitude and longitude position and send it as a saddr parameter to Google Maps. | |
SR-D19625 | 494822 | Handling added to chart drilldown for apostrophe in operator name | Chart drilldown was not working if the operator name contained an apostrophe. Handling for this has been added. | |
SR-D19821 | 490067 | Resolved UI styling for layout group with 'run visibility on client' | UI styling for Layout Group(Tab) was not working, resulting in the border/background color not being saved for layout groups. This was traced to a scenario where the same property was present in both the "Header" and "Tabs" settings of the layout group and "run visibility on client" was checked for the header, enabling the property at runtime. This has been resolved by modifying pyHeader in "Embed-Skin-Component-LayoutGroup" to uncheck "Run visibility condition on client". | |
SR-D20292 | 495147 | Race condition handling added to resolve stuck class loader threads | A JVM became unresponsive after new JVM traffic was brought in. In reviewing the threaddump, there were hundreds of threads that originated from PRClassLoaderDB.getDefinitionForName or PRClassLoaderDB.getorCreateDefinitionForName found in a "stuck" state waiting on a condition. Investigation showed there was a thread deadlock caused by the system loading class definitions while an external resource was asking for a snapshot of the resources being loaded. This has been resolved by adding handling for the race condition. | |
SR-D20439 | 496405 | Hotfix hashmap cleanup improved | A DL installation failed with an out-of-memory error. It was observed that many CacheEntry(VersionedJdbcJarRwader.java) hashmaps were being created to store the details for each hotfix but that were then never cleared. This has been resolved by adding the finally block in CodeImportProcessImpl.java class to call the shutdown method for proper cleanup. | |
SR-D20763 | 500405 | DASS added to allow toggle of indexpurpose filter in declare index join | A performance issue was seen when using a declare index join to add a pxIndexPurpose filter to a very large index_workparty table, either taking a long time to process a search request or intermittently timing out. This was traced to recent modifications in the DeclareIndex Join filter conditions to better handle multiple declare index rules pointing to the same index table, As a result, doing a declare index join on one of the declare indexes returned results that included those that corresponded to other declare index rules. To resolve this, a DASS has been provided to toggle the inclusion of the indexpurpose filter in a declare index join to allow for better customization. | |
SR-D20791 | 489024 | Support added for section completion of nested page list/groups in DX API | When using DX API and submitting a screen from the front end which was in an embedded section, "Pega_API_001" errors appeared. An enhancement has now been added to support completing the fields in an embedded section by updating the system to handle nested page lists/groups and updates to "newRow" for nested page lists/groups. | |
SR-D20817 | 499921 | Async cache checking updated for interaction reload use | A thread level data page using connect REST to get data from an external system with the "Reload once per interaction" checkbox ticked was being loaded asynchronously from the activity when by default the data page it was supplying needed to be loaded synchronously. Due to this, changes to the data in the external database were not reflected in the data page. This was caused when an async cache was referred and the freshness check for the data page instance did not consider the 'reload once per interaction' flag because it would cause the data page to load twice. The cache checking has been updated to resolve this. | |
SR-D20950 | 489656 | Removed unnecessary commit from case creation with exception | If a case had an exception when it was being created using the case creation API, it was sent to the problem flow functionality which performed a commit (All defer items) in the same interaction after it it performed a commit with error handling. This resulted in an Exception 3273 message. To resolve this, the unnecessary commit has been removed. | |
SR-D211 | 481397 | Case Assignment issue lock corrected | After upgrade, an intermittent error was seen when browsing the screen flows of a child case type application, indicating "Users have lost the ability to make this change because a change elsewhere has taken precedence over the change you made here. Please click on the assignment again to continue". This was traced to a change made to address an issue with the Opener not properly honoring the aUnlockOnCommit flag that was passed in via the openIfStale() API: in a very specific use case following that change, the system would unlock work objects during openIfStale when it should not. This has been corrected. | |
SR-D21266 | 489799 | Corrected mathematical operations in mobile offline data transforms | Mathematical operations such as *, /, or % were not working in mobile offline data transforms. This has been corrected by updating pzpega_ui_datatransform_generator.js to support all mathematical operations and actions. | |
SR-D21332 | 494518 | Handling added for exceptions related to Microsoft Internet Explorer 11 grid cleanup | Numerous exceptions generated from Microsoft Internet Explorer 11 related to pzPega_ui_grid were traced to a browser difference in timing logic related to grid cleanup. This has been resolved by adding a check to determine whether the grid is inside a defer-loaded section. | |
SR-D21493 | 490306 | Corrected revision management with decision data rules | When a new version of a decision data rule was created in dev studio and new propositions were imported or existing ones modified, the typical behavior was for the system to also automatically create a new version of the "pyEditElement" section even if the form was not changed. If this is done from revision management, the revision automatically creates a branch in the overlay application. If the revision contains a decision data rule, the branch contains an instance of the decision data rule and also an instance of the pyeditelement section, but when the revision was submitted, the generated package only contained the decision data rule and skipped the pyeditelement rule. This was traced to the pyEditElement section of the decision data rule not getting packaged because the package flag was not set to the section, and has been resolved by fixing the withdraw and reject scenarios by modifying the package flag in pyRemoveDDRules activity. | |
SR-D21569 | 491704 | PUT and WHEN support added for REST | Data layer rules in Pega were not getting generated through the Wizard- ‘Create Rest Integration’ when invoking the Rest service though the PUT method. This has been resolved by adding support for PUT and DELETE in pypresentdatapageoptions. | |
SR-D21618 | 492938 | Stories Word doc includes uploaded images | When trying to generate a Word document for the user stories by going to the Options menu and using the 'Document' option, there were images within the user story description that were not rendered in the Word document. Investigation showed that images would show up in the Word document if the images were dragged and dropped or copied and pasted into the description field instead of using the image uploader button. This was because the image was stored in a separate folder when the upload button was used and only a link to the attachment location was added to the description vs using copy/paste or drag and drop directly stored the attachment content in the description. An enhancement has been added to handle the upload use case so the images will appear in the Word document. | |
SR-D21776 | 493779 | Corrected freshness check for async cache | A node level data page with time based refresh strategy was getting refreshed before the time out and many Pega0045 alerts were observed. Investigation showed the Load-DataPage activity step was causing the data page to be requeued and reloaded even if the earlier asynchronously loaded data page was fresh. This was due to a timing issue with the multiple asynchronous load of a data page where the freshness check for the already loaded instance was done before queuing the data page load, causing the check to fail. To resolve this, the freshness check will be performed on the instance which is present in the asynchronous cache if the instance in synchronous cache is stale. | |
SR-D21808 | 490282 | Filter values retained when editing a report with custom filters | After running a report, if some filter values were selected and then the Edit Report button was clicked and simulated data and actual data fields were toggled, the filter values were lost when exiting the report editor. In the Edit Report Page, trying to drag a new filter condition was not working and the Change logic buttons were not visible. These functions worked as expected when a custom Filter section was not used. This was traced to the custom filter page being cleared in the pzCreateCustomFilterPage activity where the step for creating new page should be skipped if it already exists. To resolve this, a parameter will be set to show if the report was rerun in "reRunReport", and a check has been added in pzCreateCustomFilterPage to see if the report was rerun before running the other 'when' conditions. | |
SR-D22210 | 496435 | Submenu is correctly hidden | While creating any new case item from the navigation menu, the menu was not displaying the actual list of options after selection. Instead, it remained in the expanded menu form. This was traced to an incorrect menu status due to an error in checking the value and has been corrected. | |
SR-D22386 | 495016 | Corrected Report Definition SQL firing before filtering | When a report definition had "prompt for filter changes" enabled, it was still querying the database when displaying the filtering prompt. This was causing a performance issue, and has been resolved by upadting runReport to no longer run the query before displaying the filter page. | |
SR-D22415 | 493441 | Enhancement added to expose BrowserAttachmentTypeTable | By default, the inline view of PDF files appears with the thread name visible. An enhancement has been made to expose pzBrowserAttachmentTypeTable as a py rule: when the DT is overridden such that return is false for PDF, the inline view is not displayed but instead the PDF is downloaded when clicked. | |
SR-D22601 | 499898 | Fixed PEGA0069 alerts with Weblogic | When Pega platform was deployed in a Weblogic application server, Alert PEGA0069 was not generated due to the cookie parser failing to parse what was found to be an incorrect Pega-Perf cookie value. The Pega-Perf cookie value has been corrected by removing quote characters surrounding it. | |
SR-D22686 | 493518 | IH summaries working with external Cassandra | Summaries were not working for external Cassandra. This was an issue with the IH summary component using the aggregated dataset as a reference, and this fix contains several components to improve this function. An issue where the IH aggregates dataset does not materialize when DDS is external Cassandra has been resolved by modifying the code that checks the DDS availability. A filter that was used to match “” did not work when pre-aggregation is off : this was due to the IH Browse operation being done outside of a DF context, and has been fixed. The IH Summary shape not working properly in a strategy if it referenced an aggregate dataset with pxInteractionID as part of the group-by properties was traced to an issue with it generating a pxInteractionID value when executing the strategy, and has been resolved by excluding pxInteractionID from the group keys in the IH Summary shape. | |
SR-D22734 | 492778 | Added check to pxDateTime for incomplete date | An out-of-the-box pxDateTime control configured with "Display mode" = "Dropdown list" was generating the error "Error in the launched portal TypeError: mom.date is not a function at line 714 Column 31" if an incomplete date was selected (such as year only) before saving the case. This occurred because the mom object tried to call date() which was undefined because the date was incomplete, and has been resolved by adding a check to see if the mom holds a valid date before calling the function. | |
SR-D22885 | 494165 | Added check for empty class properties to report scheduler | A report that was looking for events in the most recent X hours by using the "Difference In Hours" filter function ran in the foreground but failed with an exception when running under the scheduler. The same report ran as expected in background without the filter. This was traced to a classname property not being set on the clipboard, and has been resolved by adding a check for empty classes on the clipboard when scheduling a report. | |
SR-D23170 | 493024 | Elasticsearch will ignore tokens for not-analyzed fields | When performing re-index, many warnings were thrown indicating a workitem could not be indexed. Investigation showed that this was related to work objects that have very long text stored in text type property because Elasticsearch has limit for token length equal to 32766 bytes. To resolve this, an ignore_above property has been added for not-analyzed fields which will cause Elasticsearch to ignore the token. | |
SR-D23340 | 497607 | Calendar begins with Saturday in the Arabic locale | When using the Arabic locale, the week was not starting on Saturday as expected, but was showing Thursday as the first day. This has been corrected. | |
SR-D23490 | 496576 | Interface changes made to avoid unexpected workitem deletions when removing stale locks | Attempting to delete lock instances of work objects by directly opening the lock item found through navigating to (Dev Studio) App > Classes > System-Locks actually resulted in deleting the work item instead of just the lock. This was due to System-Locks being uniquely identified by the WorkItem that they belong to rather than having their own specific key. This meant that clicking on one of the instances caused the system to respond by presenting a "default RuleFormLayout section" which included a delete button keyed to the actual workitem, but this was not made explicitly clear in the interface. In order to prevent unexpected item deletions, the table has been replaced with a link to the proper System-Lock interface, specifically the "My Locks" window. | |
SR-D23700 | 497920 | Repaired setValue(Boolean) clipboard mapping | A Set Value for an Hidden Control associated property was not mapped to clipboard as expected. This was an unintended side-effect of work done to resolve an alert generated while attempting to post a feed even though there was no Pulse gadget used in the work object, and was due to the read-only option being considered for hidden input in spite of no design time configuration. A hidden field check has been added so that by default it will be readonly false irrespective of editable and non-editable. | |
SR-D23992 | 494760 | Null check added to handle portal refresh when first launched | After configuring a button / dropdown in caseworker portal header with 'Refresh current action' onclick or onchange action, an exception appeared if the refresh harness was triggered and the Refresh did not happen. This was traced to the refresh harness happening after portal launch and before any DC action occurred. The portal 'history.state' is null at launch, meaning there was nothing to refresh. To handle this corner case, a null check has been added for the history state to avoid console errors. | |
SR-D2400 | 438741 | Security for ExporttoPDF tool process improved | In order to increase system security, the tool process around iframe HTML tags used in generating a PDF with chart image data has been improved. | |
SR-D24083 | 498488 | Guardrail warning removed for setting filter by format on RD sourced grid | After upgrade, use of the 'filter by format' (Configuration on table layout column) for grids sourced with report definition caused confusion in that the option now exists to either to see the value or the formatted value in the filter panel. Previously, a grid layout would show a date format in both the column of a grid and the filter of that column, but the filter changes produced a date format on the column within the grid but the date time format applied on filter of the column. This behavior change will be reflected in updated documentation. In addition, there is a workaround to recreate the old behavior by changing the column 'Date assigned' from a filter by value to format, but a moderate guardrail warning was created when filter by format was set on any column of a grid sourced to a report definition. This has been removed: when filter by format is selected, no guardrail warning will be displayed in design time. | |
SR-D24193 SR-D24198 SR-D24261 SR-D24262 SR-D16051 SR-D22528 |
492566 492698 492558 492554 486754 490528 |
Updated retry for context registraton | The system was intermittently hanging after importing zipped files. Investigation showed that Batch threads were becoming stuck in AuthorizationContextManagerImpl.setSpecializations() due to a 'while' loop in setSpecializations that was seeking to register the new context. To resolve this, logic has been added which will try to register up to 10 times. If for any reason it can't register, the system will just return the unregister LAC. The check before deregister has also been enhanced and now will only deregister if the new context and the current context are different. It will not call register if the current context and the new context are the same. | |
SR-D24318 | 494059 | Dom API updated to resolve Microsoft Internet Explorer 11 not loading async data with refresh when | The browser was continuously showing "loading" if Microsoft Internet Explorer 11 was used for a section which was sourced from a data page and configured to load the data asynchronously from a external service while calling an activity and using a 'refresh when' rule to refresh the section if a property changed. Investigation showed that the initial data load was successful and the section with the data was visible, but if the property changed and the section loaded once again due to the 'refresh when' condition, the browser was unable to render the defer loaded section case because the dom returned had the wrong value. To resolve this, the API used to check for the dom element has been updated. | |
SR-D24497 SR-D12337 |
496468 482881 |
Removed duplicated Cross-site scripting filtering | Some specific special characters ( "(" , ")", "%" , "&" ) in Delegated View of Data Type rules are not displayed properly in Edit view. Investigation showed the parameter value was subject to multiple passes of cross-site filtering, and the unneeded Cross-site scripting filters have been removed. | |
SR-D24880 | 494174 | CEP bucket size increased to 1 minute | Frequent DSM Data Flow Errors were observed in production nodes with very high event rates. This was traced to the default bucket size for CEP being 1 second for a 31 day window, which was not sufficient to handle high volume use which may create an event strategy window large enough to hit the Cassandra column size limit. In order to resolve this, the default bucket size has been increased from 1 second to 1 minute. | |
SR-D24900 | 494309 | Security update for RequestMap error logging | In HttpAPI, the RequestMap contains Cookie information. In error conditions, this map gets logged. An update has been made to ensure that the Cookie value is not logged if there is an error. | |
SR-D25012 | 499853 | Column filtering updated to better handle merged columns | When filters were applied to a grid containing merged columns, the columns next to the merged columns did not have the filter class applied. This was traced to a calculation of the index in getFilteredColumnIndex function which did not consider the merge columns use case, and the uigrid js file has been updated to correct this issue. | |
SR-D25278 | 499448 | Enhanced logging for Clipboard JSON Deserializer | An enhancement has been made to introduce a number of logger events to the Clipboard JSON Deserializer in order to have sufficient data to diagnose any issues encountered. | |
SR-D25306 | 499529 | Corrected multiplying errors on dirty flag | The error message "Value cannot be blank" was appended on the screen every time the browser gave a dirty flag and OK was clicked. This was due to the context for the error message not being set correctly after toggleErrorMessage, and has been corrected. | |
SR-D26010 | 500165 | Modified VBD insertion logic to improve handling | An issue with not being able to launch an additional VDB node was traced to two processes inserting into VBD with different field signatures and triggering unnecessary object creation. This was amplified when adding a second node as the objects were serialized. To resolve this, the insertion logic has been modified to avoid creating new data container/field descriptors after a new field is included, as well as a measurement with smaller data type than previous container. | |
SR-D2615 | 439227 | Added function to auto-validate Chinese date | If a datetime property with custom format was created in the zh_CNadtimezoe (Asia/Shangai) locale, the property was not updating if a date was selected with any time unless an onchange refresh action was included. This has been resolved by adding a function that will automatically validate the date for the Chinese locale. | |
SR-D26190 | 496521 | Corrected decimal format for Export to Excel and removed null values inserted in empty columns | When viewing a report in the viewer or exporting it to Excel, cells that did not have a value in them appeared empty. However, pulling the report into a third-party tool generated an error related to the apparently empty cells. This was caused by the system being set to populate the excel cell with empty string values in cases where there was no value present in the property, causing the error with the third-party tool. To resolve this, the export to Excel code has been modified so that it does not generate anything for cells that have null/empty value. In addition, exported reports containing decimal columns were displayed in an incorrect format, using '0.' instead of '0' . This has also been corrected. | |
SR-D26342 SR-D28297 SR-D8754 |
495417 498142 497378 |
Tracer issues resolved for Google Chrome browser | Tracer was running in the background even after the tracer window was closed. Attempting to run a Tracer in this condition resulted in an error indicating the Tracer was being run by another operator and should be restarted, and in the Dev environment, attempting to start a Tracer once it was closed resulted in the message "Cannot launch multiple Tracer sessions for a requestor." Investigation found that the Tracer session was not being closed when the tracer window was closed because the browser specific method intended to do so was not being called. This was found to be an issue caused by the Google Chrome browser changing the signature of the method, and has been resolved by updating the method name in the TraceMain HTML rule. | |
SR-D26589 | 496721 | Logic updated to populate pagelist data on uploaded multi-sheet Excel files | When trying to use the activity pxParseExcelFile on an Excel file containing three sheets where each sheet had a different pagelist, the properties mentioned in sheet 1 were populated on upload but the remaining sheets only showed the error message "Could not get clipboard property for reference Work Queues.". This was caused by an error in Row index handling for the additional sheets, and has been resolved by updating the logic to populate the data in the clipboard. | |
SR-D26815 | 500191 | Updated support for numeric values in text columns during Excel export | After creating a report definition that included currency and percentage as a columns, the currency, percentage, and number format were not shown as expected for the locale when the report was exported to Excel. This was an inadvertent side effect of work performed to resolve issues for text columns formatted by non-numeric controls, and has been resolved by moving the support for numeric values in Text columns from ReportUIField to NumericReportUIField. | |
SR-D27041 | 499047 | Manual value group addition support available | In a test case created for a data transform containing a value group property, that value group property could be added by clicking the + sign in the left pane of the test case, but a value group property could not be added manually by clicking the add row button. This has been resolved by adding support for manually adding value list/value groups. The activity steps which were using @java function have also now been replaced with a getproperty function. | |
SR-D27644 | 497613 | Uploaded attachments will receive a unique name to prevent overwriting | An issue with an incorrect file being attached to a work object was traced to overlapping processes. When files are uploaded, they are first saved to common HDD directory and then read into memory and deleted from the HDD area. Files will overwrite other file carrying the same name, which is a problem if the first file is not completely uploaded and is waiting in the common directory and some other file with the same name is uploaded on top of it. To resolve this, an update has been made to ensure file names are appended with a unique identifier to distinguish between files carrying the same names and keep them from overwriting each other. | |
SR-D27687 | 500053 | Mashup Export to Excel works on first use | If a report was opened from Mashup and exported to Excel, only one record was given regardless of the actual size of the report. If the mashup main page was refreshed, the open and export process worked correctly. This has been corrected by adding a call to pzSetQueryDefaults in pzRDExportWrapper when the requestor is initialized for Mashup. | |
SR-D27994 | 498437 | Chart fixes for localization and filtering | A problem was seen with a chart where the column was a date and its labels were not localized even though the values were displayed in the data grid correctly. This was resolved by updating the pzMultiSeriesData XML Stream to generate the series name attribute with the localized value. An issue with a drill down report pulling the data for entire criteria on click of specific set even though the summary view or clicking on the report data worked correctly has been fixed by adding an enhancement for using the aggregate column as a filter on drilldown with "Is not null". Additional work was also done to resolve an issue of a broken case causing the chart not to render when the aggregates were in an unexpected order. | |
SR-D28184 | 497167 | Verbose debug logging removed from LockUtils | Verbose debug logging that had been added to the "LockUtils" class to print when the lock was acquired or released and include the associated stacktrace has now been removed as it interfered with diagnosing locking issues when threads were getting blocked. | |
SR-D28496 SR-D28469 SR-D28480 |
499081 499089 499085 |
Corrected exceptions report appearing on user screen | When "Break on all exceptions" was enabled, the exceptions report was visible on the end user screen when using IE11. This has been resolved with updates to the 'pzpega_ui_dynamiccontainer' and 'pzpega_ui_doc_tabsupport.js' files. | |
SR-D28657 | 500585 | Corrected Reference value's description in Table | When a user was given 'property for value' as an ID and 'property for display text' like a name, launching the portal showed the display text correctly until 'refresh' was clicked, at which time the current section showed the property value instead of the property text. Investigation showed that the parameter string split inside the parameterised data page used as a dropdown source failed in the readonly case. This has been corrected. | |
SR-D28905 | 500674 | Compensation added for Cassandra v2.2 not honoring count limits | Running CassandraEstimateNumberOfRecordsOperation on a large data set was causing a ReadTimeoutException. Investigation showed that contrary to its documentation, Cassandra v2.2 ignores limits intended to stop all records from being counted. In order to compensate for this, the system has been modified to skip the first of two attempts to estimate the number of records (first cql count() query with limit 1000) and the estimated number of records will only be retrieved through JMX. | |
SR-D28985 | 498016 | Improvements made to Excel data import handling for decision tables | On importing an Excel file into a decision table, the values modified in Excel were getting updated even though the rule was checked in after the import. Investigation showed that the API which handled converting the imported Excel file for use on the clipboard was defaulting to save actions if the rule was not checked out or in private edit before the import. In order to prevent future issues, the following changes have been made in this area: The "Import" button will be enabled only after clicking on checkout button, and discarding the checkout will also discard any imported values. When checkout for the rule set is disabled, only the save option will be displayed on the decision table. When the import button is visible and enabled, imported values will not be preserved if Actions -> Refresh is used before saving. When rulesets are disabled, the decision table can only be private edited and at that time the save and import buttons will be visible. When private edit is visible, the import button will be in a disabled state. | |
SR-D29114 | 499932 | Added handling for bulleted text insert triggering audit | When a bulleted text (copied from an email or rich text ) was used in the text area property, the audit considered it as a change even when there was no change. This was tracked to the field value 'pyHistoryMemo • ChangeTrack_Add' in @baseclass which is being used to get the localized value for audit memo: the field value accepts only 2 parameters, but the inserted text area input contained the '\t' that is used for parameter translation. To resolve this, the system will call the addMemoForSecurityChangeTracking utility method to replace all \t's present in both the Current Value and Previous value with 'empty' such that no '\t' characters are available in either of the string parameters. | |
SR-D3034 | 439708 | Corrected reference to Hierarchical table in tree grid modal section | Given a table on which row editing opened a modal dialog containing a section with a Hierarchial table, after the modal dialog window was opened and closed without changes, attempting to open it again produced a blank screen. The error "The reference PackagesPage.Packages(2)(1) is not valid. Reason: unexpected character '(' at position 24, expected dot" was logged. This was an edge case where a grid was opened in a modal dialogue from a tree grid. In this case, the parameters passed from the parent grid corrupted the logic to calculate the Automation ID and caused the reference page to be constructed incorrectly. To resolve this, a try catch block has been added to read the reference from 'tools.getActiveName()'. | |
SR-D30993 | 500221 | Corrected retention of Operator routing assignment | If an assignment routing option was directed to an operator and an operator was then selected, the system did not retain the operator ID upon submit and save. This has been resolved by removing an extra space in step 2 when condition of activity pyUpdateModifiers. | |
SR-D3257 | 456286 | Database connection retry logic to class loader | In order to create a more robust environment in case of connectivity issues, an enhancement has been made to add retry logic to database connections in the class loader. | |
SR-D3371 | 439507 | Association Resolver updated to handle filters created on secured properties | After creating a Report Definition in a class (Example Class A) that had an Association in that report with Class B, no results were generated from the report when an Access Control Policy and Access Control Policy Condition were created for Class A and Class B where the Class B had an ACPC with a Value field that referred to a Data Page or clipboard page property. Investigation showed the system was not able to resolve the actual value of the datapage property in the generated SQL query due to Association Resolver resetting the filter value (the Page reference in this case) of a filter that is created on a secured property. This has been corrected by updating Association Resolver to not reset the right operand for a filter that is created on a secured property. | |
SR-D3556 | 446513 | Requestor.OperatorID page updated to stay in sync with current OperatorID to enable post-Auth activity mapping | The systems pages were not getting updated to the right operator's context when a post-Auth activity was used for mapping. To support this use, the UpdateOperatorID trigger has been updated to keep the pxRequestor.OperatorID page in sync with the current operatorID page during SAML. The operator will also be saved during provisioning. | |
SR-D3655 | 438568 | Resolved UI issues with TextArea control | Two issues were seen with TextArea after upgrade: 1) The UI flickered when using a section where a checkbox click caused a TextArea to appear; and 2) When 'size to content' was specified for height in the TextArea, the area became unresponsive when the content was reduced. These issues have been corrected by setting height to auto instead of 0px while updating the text area height. | |
SR-D3929 | 444529 | Auditing for automatic stage transitions improved | The logic for pzCheckForAndDoAutomaticStageTransition has been updated to provide better audits for the movements related to automatic stage transitions. | |
SR-D3947 | 461241 | Cross-site scripting security added to GET Request Work-DeleteAttachment activity | Security has been improved against a potential Cross-site scripting vulnerablity on GET Request Work-DeleteAttachment Activity. | |
SR-D4304 | 446374 | Locale object handling added to SimpleDateFormat | Configuring an Authentication Service with signing certificates failed at runtime with a invalid date exception in non-English locales. This has been fixed by passing the locale object as parameter to SimpleDateFormat. | |
SR-D447 | 471236 | Truststore updated to utilize SECURE SSL /TLS | Creating a Truststore to use with SSL-protected resources by referencing the JKS on the file system resulted in an I/O exception. This was due to the "getCertificate" Activity that applies to Data-Admin-Security-Keystore only supporting the "Upload file" mode for "Keystore location." Because there was a hard dependency on the "pyFileSource" property, using any other option such as "URL" or "Data Page" resulted in a "No Keystore has been uploaded" Runtime Exception. To resolve this, a new function was added in PegaSSLProtocolSocketFactory to pass the setTltlSSLContext() function to set the SSLContext directly from the following activities: AuthenticationLDAPVerifyCredentials AuthenticationLDAPWebVerifyCredentials LDAPVerifyCredentials pyAuthenticationKerberosCredentials ValidateDirectoryInfo In the above activities SSLContext is created with the help of keystore and truststore information and set the SSLContext in PegaSSLProtocolSocketFactory class which is used to the the LDAP context in the activities. |
|
SR-D4649 | 440202 | Special character handling improved to ensure MTOM binary contains all data | The presence of special characters was causing the data to be truncated when moving XOP elements in the SOAP envelope and encoding them into multi-part binary elements (MTOM). This was traced to Connect SOAP With MTOM Option missing some content in the Response data particularly in conjunction with Websphere using a specific JDK version, and has been resolved by modifying the setOptimizeOnChildren method in PRServiceUtilsPriv class to to get all the content. | |
SR-D5126 | 487187 | Corrected active state selector for IOS devices | When scrolling RDL, gray artifacts were observed which did not always disappear from the UI. This was traced to the background color being applied wrongly due to an incorrect selector for active state in the layout that resulted in the gray region being visible. To resolve this, the selector has been updated to target only non-IOS devices for active state. | |
SR-D5196 | 444423 | Hardcoded prweb reference removed from the REST connector to enhance flexibility | The DASS for pegarobotics/RobotManagerHostDomain allows specifying the instance where Robot Manager is hosted. Previously, connect-REST pzInvokeRoboticAutomation contained a reference to the resource path {RobotManagerHostDomain}/prweb/PRRestService/robotics/v1/automations which forced the use of prweb. In order to add flexibility, the hardcoded prweb reference has been removed from the REST connector resource path, and the pegarobotics/RobotManagerHostDomain) DASS's default value has been updated to include 'prweb' in it. Local sites should update DASS accordingly to point to an updated URL with prweb if needed. | |
SR-D5388 | 461278 | Corrected dropdown focus issue with dynamic layouts | The focus was not retained on the dropdown field whose property was used in the dynamic layout for the refresh condition. Investigation showed that in pzpega_ui_doc_focus.js, the function "focusNextElement" was setting pega.u.d.gFocusElement set to null after the first load. This has been corrected. | |
SR-D5404 | 446468 | Support added for nested grids with child categorization | Show Details and Expand All were not working as expected in a repeat grid with a nested grid scenario where the parent grid had Show Details enabled and the child grid had categorization enabled with one column selected for categorizing. Investigation showed that a null page was being passed (final @baseclass pzGridSortPaginate activity) due to a lack of support for considering page lists that are embedded in a page different than the step page. To add this support, the activity has been modified to use tools.getProperty(...) instead of myStepPage.getProperty(...) if the data source page list is not an embedded property in the parent row page. | |
SR-D5413 | 484329 | Enhanced returned value handling for using Expand when in collapsible dynamic layout | After configuring an 'expand when' condition with the intention that the dynamic layout expands when the user doesn't enter the required field(@hasMessages(Primary)), the dynamic layout was expanded by default even though the "Expanded on load" was not enabled. This was traced to 'expand when' not getting set on refresh due to a different returned value for the condition, and has been corrected. | |
SR-D6261 | 486482 | Enhancement added to support mobile offline multiple assignments for single workitem | After completing stage1 of creation, a case generated two assignments intended for another user. That user was then unable to open the screenflow assignment in mobile offline. Investigation showed that the system was using one--to-one mapping of a workitem to assignments for offline. If multiple assignments were created for the same work object, only the first one was packaged. Changes have now been added to support more than one assignment for single workitem. | |
SR-D6555 | 457241 | Access When check added for pyStartCase privilege | If a privilege was defined in the pyStartCase flow rule and the access role to object assigned a privilege based on 'Access When' (not production level), the user was not able to start a case. This was traced to the havePrivileges RUF passing an incorrect primary page to evaluate the privileges in combination with the 'access when'. To resolve this, the engine API will call tools.getAuthorizationHandle().havePrivilege for each privilege until it finds a match. | |
SR-D6721 | 488973 | Updated report widget drilldown logic for better non-ASCII character support | When a report in the report widget had a drilldown chart with a parameter containing certain non-ASCII characters, no entries for the drilldown filter were shown even when there was data that matched that filter. This was traced to the drilldown JavaScript for dashboard report widgets encoding the drilldown parameter twice, causing characters that were Unicode but not ASCII to be corrupted. This has been resolved by updating the logic for pzpega_chart_legacydrilldown.js and pzpega_control_actions_reportdefinition.js to ensure the parameter is not encoded twice. | |
SR-D6769 | 469285 | Corrected tab closing issue for multiple clicks of Get Next Work | While clicking multiple times very fast on a link configured with Get Next Work action, multiple tabs were getting opened with the same work object details and were not auto closing. This was traced to Issue with a stale conflictingHost in the handleGadgetLoad function, and updates have been made to the handleGadgetLoad function so it will get a new conflictingHost if the action is getNextWorkItem. | |
SR-D6947 | 444603 | Email AttachmentPage updated to support use of Data-WorkAttach | Attachments were not getting appended in the email sent by the Agent SendCorr. This was traced to a null Page that resulted if the attachment was of type custom Data-WorkAttach, and has been resolved by modifying the condition check on the objclass of AttachmentPage to change it from equalsIgnoreCase(Data-WorkAttach-File to startsWith(Data-Work-Attach-) . | |
SR-D6978 | 481763 | Mandatory field confirm popup text and focus corrected | When a mandatory field is tabbed out (with TAB key), using cancel to proceed to the next field instead retained the focus in the same field. This was traced to work previously done to prevent an infinite confirm dialog loop, and has been corrected. | |
SR-D7054 | 445404 | Corrected Actuals data re-sync failure after trim | The Actuals data set re-synchronize was failing after the IH table had been trimmed to drop older records. This was due to the IH/Actuals sync failing if the measurement columns in IH Fact mixed null and not-null values within the same partition. This has been resolved by correcting the format specifier in the log statement. | |
SR-D7138 | 494666 | Updated taxonomy rule to correct obj-open | After using Taxonomy -> Create model -> Apply to Text Analyzer and then using the Training data to add additional messages to the model, an error that Mandatory parameters were missed appeared. This error was traced to a condition where changing the taxonomy rule caused the system to execute an incorrect obj-open. This has been corrected. | |
SR-D7381 | 486566 | Purge/archive locking issue corrected | Updates have been made to resolve a locking release issue for the pzBatchPurgeArchive activity. | |
SR-D7798 | 463292 | Grid reordering has correct row numbers in embedded panes | When using an expand pane grid with row numbering and row reordering enabled, normally reordering any rows handled the row numbers as expected. After a new record was added in the Embedded Pane and the rows were interchanged/reordered, the row numbers were not reordered with respect to the numbers. Expanding a row and reordering it with the previous row resulted in the numbers being correct and swapped, but collapsing that expanded row then showed its old number. Attempting to expand the above collapsed row/wrong number row instead expanded the previous row. To resolve this, the performModalAction function in ui_grid JS has been updated so the row page and primary page will be recalculated even for single expand reordering case. | |
SR-D800 | 487308 | Mashup error resolved with try/catch block for Microsoft Internet Explorer framelement exception | When a portal was launched using mash up, the intent tasks were not launched in Microsoft Internet Explorer when Add tasks button was clicked. This was found to be a site-specific use case only found with IE, and has been resolved by adding a try catch block for a window.framelement exception thrown by IE. | |
SR-D8319 | 445547 | Case name caption security inserted with Cross-site scripting filtering | In order to protect against the possibility of executing malicious JavaScript code by entering an appropriately modified name while adding new case type, pyCaption in menu items has been made HTMLSafe by converting JSON through the GSON library. An additional fix has been made to use Cross-site scripting filtering to ensure the script does not execute while page is loaded. Additional handling for Firefox has also been added to normalize tabName to properly display Recents. | |
SR-D8467 | 457337 | Resolved false alarm exception for Cloud BIX extraction | BIX Extraction on Cloud was intermittently throwing an exception even though the BIX Extraction was successful. This false alarm was triggered by inconsistencies in an API within the BIX extraction module used to determine if files existed on a Cloud S3 location post-extraction, and has been resolved by removing the file check. | |
SR-D8650 | 475299 | Handling added for null sort order in file import metadata | A NullPointerException was seen while fetching the sort order of indexes during a file import. This was caused by a null being returned for an index that did not have the sort order in the metadata, and has been resolved by adding a null check; if the metadata of the index returns "null" as sort order, then the order will be set to "A". | |
SR-D8790 | 487287 | Corrected thread cleanup logic for doUIAction in WorkCover | When accessing a case from the worklist or opening the case from worklist and refreshing the case by pressing F5, clicking Approve resulted in a java.lang.NullPointerException error. Investigation showed that the "pyWorkCover" page that the section was running on was being removed in the top navigation portal / SDM portal as part of the thread cleanup logic in doUIAction. This has been corrected. | |
SR-D9119 | 481679 | Handlng improved for rollback of Hfix with dependent HFixes | Attempting to rollback an HFix with dependent HFixes resulted in a Hazelcast jar exception. Investigation showed the DL included the same jar multiple times in the dependent hotfixes, which was a result of how the DL was created via the hotfix process. In order to better handle this scenario, when there are multiples of the same entries to delete the message will be logged and the process will continue if the entry is not found in the database. | |
SR-D9132 | 457357 | Performance improvements for EventStoreWriter class | The cache protocol has been modified In order to improve performance for the EventStoreWriter class. | |
SR-D9142 | 482314 | Support added for custom JVC arguments for Cassandra | An enhancement has been added to support specifying custom JVM arguments for Cassandra. This allows uses such as enabling GC logging for cloud deployments, or to increase the native transport queue size for read-heavy deployments. | |
SR-D9161 | 446524 | Pega-RULES session decryption issue resolved | When the Pega-RULES session encryption key was updated (rotated) after 90 days by the pyValidateKMSMetadata agent, the in-memory version of the key was then corrupted leading to a failure to decrypt the session header. This had the result of preventing any users from logging into the system. Users could connect to the login page and enter their credentials, but after clicking the Login button they were redirected back to the starting login page and their credential information was cleared. This was traced to the pulse change of SystemCDK moving the encryption and decryption process to inconsistent state where the CurrentSystemEncryptKeyIDHash still contained the old CDK ID.To resolve this, the system has been updated to use only ActiveKeyID instead of the previous behavior of using both ActiveKeyID and CurrentSystemEncryptKeyIDHash. | |
SR-D9198 | 485218 | Connections leak fixed for data-admin-db-table Oracle DB connections | When exporting a product that contains a lot of Data-Admin-DB-Table instances to extract (>180), JBoss was crashing due to losing the connection to the DB as it reached the maximum number (100 connections) of DB sessions created during the export. Each time the export was launched, new connections were generated in the pool of ORACLE DB sessions that were never closed except by rebooting the environment. This was traced to a connection leak scenario within SQLGenerator.getCaseSensitiveColumnNamesForTable where a connection was being taken out inside a different try/finally block than where the connection was being closed, so the connection could potentially never be returned. This has been corrected. | |
SR-D9242 | 483172 | Security improved for DownloadFromServiceExport | In order to improve security, the activity “DownloadFromServiceExport” now requires authentication and explicitly blocks attempts to traverse up directories. | |
SR-D9482 | 484739 | Small delay added to autocomplete control | When using an autocomplete control with minimum character search set to 4, every keystroke after 4 characters triggered a REST request to populate the control. This had a negative impact on performance. In order to smooth the request process, the timing logic has been updated to allow for a very small delay on the immediate event handler. | |
SR-D9511 | 464314 | pyPreTriage and pyPostTriage flows now default to Draft Mode Off | The out-of-the-box pyPreTriage and pyPostTriage flows had draft mode turned on. Due to this, Email Triage cases in production systems were sent into the problem flow. This has been corrected by turning off draft mode for pyPreTriage and pyPostTriage flows. | |
SR-D9610 | 476235 | Check added for null values in boolean filter of column properties | Null values in the filter were showing as "NO" when 'Filter by Format' was enabled for filtering a boolean property (Checkbox) in the Column Properties of the table. This has been resolved by adding a check for empty values. | |
SR-D9922 | 481403 | Case Notes view has proper line wrapping in Google Chrome | When case notes were opened in the Google Chrome browser, the view did not wrap. This was traced to a style attribute for white space which caused the line breaks to be collapsed in Google Chrome, and has been resolved by modifying the DisplayNote HTML to handle the wrap use case. |