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-C61477||418266||HTML conversion added to email IVA||When sending through emails that are in HTML format, HTML tags were visible within the Analysis of the email under Entities. These tags also potentially had an impact on topic detection, as the same email sent through in HTML would be classified under a different topic from one sent through as Plain Text.
This issue originated because Email IVA received text as HTML while it expected plain text without HTML tags, and was traced to the use of an IMAP setting which sends only HTML to the listener. This has now been fixed such that If any HTML is received by email IVA, it will be converted to plain text via JSoup APIs in the service method as the first step.
|SR-C64192||415847||Activity Run allows autocomplete control for data transform||An enhancement has been added to allow changing the control from Dropdown to Autocomplete when an activity is Run and the "apply data transform" checkbox is checked.|
|SR-C65841||425807||Added handling for cases where IE causes a SAXParseException||Numerous SAXParseException messages were seen in the log file, and the queryString showed the pyDeleteDocumentPg being referenced. This was traced to the method used by Internet Explorer to construct an HTTP request: IE sends the header and body of the request in separate TCP packets, but for an unknown reason in this case the body packet goes missing. To resolve this, a toggle has been introduced which will send the pyDeleteDocumentPg request as GET if pega.u.d.GET_REQUEST_DELETEDOCUMENT is set to true in userworkform. In a normal flow without this variable, the request will pass through the normal flow.|
|SR-C69729||415717||External Entity Injection security improved||Several updates have been made to improve security against External Entity Injection.|
|SR-C74054||422026||Handling added for summary columns in Export to Excel||When a field has an aggregate function in Report Definition, the column alias changes and is not the same as the property name. The consequence is a mismatch between the result set column name and the property name from the property list created beforehand. This results in blank fields when using the "pxDownloadDataRecordsAsCSV" activity for Export to Excel. In order to support the export of summarized columns in Report Definition, an enhancement has been added that uses the column label as an alias for aggregate fields in the native SQL builder of the exportData API to form a map between the property name and the alias name and use it while iterating over the result set.|
|SR-C74642||424007||Data page reference properties will not be resolved if hidden||In order to improve code efficiency, in conditions where a text input field configured with a 'When' visibility condition references a property which is present in a data page, the system will skip the process of resolving the property name if the 'When' rule is evaluated as false.|
|SR-C74648||422906||Autocomplete arrow placement corrected in Right to left local mode||When using the Autocomplete control, the blue arrow was seen to have an incorrect placement/orientation in RTL mode.
This was traced to the autocomplete background-image in RTL mode being the same as that for LTR, and has been resolved by adding specific background-image for RTL.
|Grid alignment and headers corrected for Opportunities screen in RTL locale||When using the RTL locale, the Opportunity detail screen and search screen had grid alignment and header issues. This has been resolved by updating the py-portal-stages css attached to the enduser skin.|
|SR-C74784||428820||Added file truncation to HCClient.txt to ensure data integrity||When a work object model contained more than two embedded lists, simple save corrupted the JSON in the local storage work object browser. Investigation traced the issue to using the same file without truncating its content. Because the HCClient.txt file in Rule: webwb - pzpega_mobile_settings - js was reused while displaying items in DocumentViewer, writing a smaller amount of data into it than the previous write left orphaned content in the file that corrupted the new data. To resolve this, the file content will be truncated before writing new data into it.|
|Improvements made for the stability and reliability of the stream tier||Enhancements and fixes for the stability and reliability of the stream tier with a focus on rolling restart have been added:
Issue 410567: When a stream node shuts down, it takes up to a minute for all client nodes to recognize the event and failover to other nodes due to large default timeouts. Timeouts have now been reduced to allow nodes to failover much earlier.
Issue 413375: When a stream node shuts down, other stream nodes are notified and attempt to discover the new cluster topology. Since the cluster is still in flux, this operation may block all producers until a new topology is determined. This procedure has been changed to be less heavy and make the discovery only if required.
Issue 401326: Kafka (running as a separate process as part of the Stream services) generates log files, but does not use log rotation with a maximum amount of log files. This this causes log files to fill up the disk, leading to failures of the service and PRPC instance running on the same disk. To resolve this, the number of generated log files will be limited to parameters of file size = 2 MB and a max nr of size = 10.
Issue 410280: A large number of ""Processing override for entityPath"" entries were seen in the Kafka logs. This has been addressed by ensuring message.timestamp.difference.max.ms is set to equal to retention.ms. In addition, the system will properly compare the Kafka Configuration created for the entire topic and the configuration retrieved for Partitions so the configuration is not unnecessarily updated.
Issue 414765: During stream node restart, decision hub nodes may block for 15-30 seconds when writing to a stream data under certain conditions. This has been addressed by updating stream dataset logic to handle stream tier restarts properly and not cause response time degradation.
Issue 401093: HttpMessageDecoder was throwing an exception regarding “TooLongFrameException” causing a 502 on HTTP stream tier requests going over 8192. The default max header size used by stream data set REST service was 8KB. In this particular case, the HTTP header contains a lot of cookies and other meta-info and exceeds 8KB. To resolve this, the default max header size has been increased to 16KB. A new prconfig setting to control max header size has also been introduced.
|SR-C75205||424477||Invalid text entry in Date control field now returns current timestamp||Inconsistent behavior was seen between entering an invalid date in numeric vs text format. Entering an invalid date in number format resulted in the system replacing the entered value with the text “Invalid date”. Entering an invalid date in text format caused the system to retain the value and not show a validation error. This has been corrected by modifying the date/time formatting for both text and numerical input to return the timestamp in case the entered value is incorrect.|
|SR-C75497||427438||Resolved "no items for filters applied" error in column filtering||When trying to filter a column, the options did not appear on the filter and the error "No items for the filters applied" was displayed. This was due to the Declarative index join being removed on save and on run even though it was referenced in the class join filters. To resolve this, logic has been added to the pzCopyPySource activity to loop through all class joins and their filters so both sides of the filter are checked for references to a declarative index join.|
|SR-C75723||421827||Rollback filter query updated to handle very large classes mapped to the same history table||When rolling back the imported product file using deployment manager, the error "DatabaseException caused by prior exception: org.postgresql.util.PSQLException: ERROR: column "pzinskey" does not exist" was seen. This was traced to the rollback process picking the already processed items from the history table due to an incomplete filter query that occurred when there were more than 1000 classes mapped to same history table. This has been resolved.|
|SR-C76412||425190||Content type header removed from default inclusion in JWT token to support MS integration||In order to integrate Pega with Office365 to use the Outlook API to Send and Get messages, an access token is required as a part of Authentication process. For obtaining an access token from the Azure directory, the process is to follow the OAuth 2.0 client credentials flow which requires the generation of a JSON Web Token (JWT) with the required Header, Payload and Signature. However, because Pega adds the tag "cty": "application/json" by default, using the out-of-the-box 'Token Profile' rule to generate the JWT and pass the same in a REST call to Microsoft was resulting in a error response indicating that there was an unsupported token header. This has been resolved by removing the content type header in the JWT token.|
|SR-C76417||430547||Check added for reference function in DB2 join||In DB2, when a sub-report column contained a function that was used for a join condition in the main report, an invalid filter property error was generated while saving. This was traced to the edit validate rule checking for the data type of both of the properties used in the join, and has been resolved by adding a check to see if the join operand is of function 'reference'; if so, the system will resolve the function, check for data type property, and set it.|
|SR-C76668||424445||skipDocsRecreation option added to remove flickering during application launch||In order to avoid visible flickering resulting from a dynamic container refresh conflicting with custom code during application launch, an enhancement has been added that can be used to skip the SDM refresh functionality based on the "pega.u.d.skipDocsRecreation" JS property. This can be enabled in Userworkform.|
|SR-C77121||423114||Code adjusted to prevent looping with CyberArk||In order to avoid looping issues when using CyberArk integration, the reference to PRMiniLoader has been removed from PRBaseLoader.|
|SR-C79482||424537||DSS added to allow custom timeout for BIX query||The BIX query to retrieve the blob column was taking up to 60 seconds for large volume, causing timeouts. Previously, the extract defaulted to using repost pzSample which is internal/final and has a default timeout of 30 seconds. In order to avoid timeouts, the new DSS "BIX/selectQueryTimeout" has been added to allow setting a custom value. Further refinements will be made for multi-tenant environments in a future release.|
|SR-C79851||430385||Filter logic updated for Warning Summary guardrail report||After scheduling a Guardrail report for Warning Summary, the warning summary reports received in email were blank irrespective of the filter criteria. The logic filters have been modified to resolve this issue.|
|SR-C80129||421417||Data type search adjusted to handle text query||After creating a data type and adding a class join and then delegating the data type to a user, the data type search bar in the configuration tab was not working. This was traced to the decision search filter using "=", which did not handle a text query. This has now been changed to use "Contains" to resolve this issue.|
|SR-C80129||425385||Enhancement added to hide class join warning from end user||An enhancement has been added to hide the joined class warning message at the end user portal if the section pzManageRecords is delegated to the user. This is done by by checking pxLimitedAccess on the pxThread clipboard page.|
|SR-C81410||422138||Radiobutton aria-label enhanced to retrieve localized field value||Localization code has been added to the pzpega_ui_template_radiogroup file to support using RadioButton aria-labels for Field value.|
凌晨 - Early morning
早上 - morning
上午 - morning (AM)
中午 - noon
下午 - in the afternoon (PM)
晚上 - at night
But the Pega server only accepts two standard meridiem i.e. 上午 - morning (AM) and 下午 - in the afternoon (PM). Due to this, using an unsupported setting resulted in an error. To resolve this, a check has been added for the Chinese locales (zh-cn, zh-hk, zh-tw) that will adjust the non-supported formats to be either 上午 - morning (AM) or 下午 - in the afternoon (PM).
|SR-C82254||421057||Support added for saving draft survey flows in production level 5||With production level set to 5, creation of a survey was generating two errors: in UI, "Default survey flow creation failed", and in trace, "Update record failed: .pyDraftModeON". Because in most cases Survey authoring would be done in a system with a lower production level where users would not see any issues, the code did not include support for saving draft mode flows when the system was set to production level 5. This ability has now been added to support this use.|
|SR-C82549||422848||Check added to getRuleNameFromInsKey to clip version name from rulseset name in the dataflow||After changes were pushed to the datasets, dataflows were failing on a DT2 environment with an error related to rule resolution and a failure to find a specific property. The dataflows did not fail on a DT1 environment. Investigation showed that if the ruleset name was empty and the ins key was used to get the rulesetname, a mismatch occurred with the returned value due to the version information being included in the name. To resolve this, when a rule name is retrieved by getRuleNameFromInsKey, the system will check if aObjClass is Rule-RuleSet-Version. If so, the version part will be trimmed.|
|JavaILCompiler updated to skip a type convert when generating code for a ternary operation||A compilation error was generated when attempting to save a Data Transform with a java expression giving the ternary as boolean. In this case, the pyWorkPage.Channel was set to @java("tools.findPage(\"TempInputAccelPage\").getProperty(\"Channel\").getMessageCount()>0") ? "" : pyWorkPage.Channel.
The system previously used EL code generation, which had a gap which allowed such expression to work. Since the system now uses IL code generation, this expression failed. In order to ensure backwards compatibility, logic has been added to JavaILCompiler to skip a type convert when generating code for a ternary operation where the source is ILProgramText (java expression).
|SR-C83050||422978||IE width calculation fixed for imported built-on with dymanic layout||After upgrade, the Built On input for the application screen in Designer Studio was not rendering in the Microsoft Internet Explorer 11 browser if dynamic layout was used. This was caused by a browser-specific issue with width calculation for pzDefinition, and code has been added to handle this issue.|
|SR-C83058||424155||Assertion parse rule XML regenerated to resolve data mapping issue||The parse-xml rule(NS-366601360 • Assertion) has been regenerated to resolve an assembler issue with mapping data to properties.|
|SR-C83468||424951||Legacy multipart upload support added for very large hotfix catalogs||After a package containing 100+ hotfixes was installed, the fixes were not visible in the Hotfix Manager page even though the database status showed them as "Installed". Investigation showed that performing a system scan on the catalog upload was resulting in thread dumps while decoding the request URL due to the control used for catalog upload posting the entire content in form data rather than sending a multi-part request. To unblock this use case for catalogs with huge data, the system has been updated to perform a legacy upload where a form submit is used with content-type as "multipart/form-data" rather than sending the entire data in the request header.|
|SR-C83615||424947||Support added for hiding unwanted category reports||After upgrade, a customization used to hide unwanted out-of-the-box category reports was not working. This was due to the pyServiceLevelPerformance and pxSimulations category rules not being included as part of the pyOOTBVisibleInBrowser 'when' rule that is specified for Display in the report browser 'when' setting. These two category rules - pxSimulations and pyServiceLevelPerformance - have now been modified to reference the 'when' rule pyOOTBVisibleInBrowser so categories may be hidden as desired.|
|SR-C83899||421069||Alternate RD added for sub class union that will skip blob open||The screen load was taking 4 seconds or more to load when a parent case had 500+ child cases, leading to timeouts and issues with case processing. This was caused by the system performing a database open of all the child work items for building the tree: because different child items are mapped to different work tables, a single RD would not suffice for fetching all child items. This meant a work record was opened and child inskeys grouped into different groups based on table mappings, then the RD was called multiple times to fetch the details. To resolve this and avoid blob open, a report definition that performs a union on all sub classes has now been put in place. Execution is based on a parameter to avoid any backward compatibility issues. This is used by overriding the 'pyPopulateCaseContentsWrapperExtension' data transform and setting param.useOptimizedQuery to 'true' to override the database open.|
|SR-C84116||423757||Added container handling to make optimized grid table visible in action top||After upgrade, if the Optimize code checkbox was checked on a table and visibility was applied over grid header, the table was not visible in the UI. This scenario only happened when a grid was upgraded from non-optimized to optimized with some visibility condition added, and was caused by the system not yet supporting the visibility features in action top for an optimized grid. To resolve this at this time, the system has been updated to not honor the visibility at container for an optimized grid so the table will be visible.|
|SR-C84135||424532||Metadatatree updated to be function-scoped in UI to resolve custom tab control display issue||When switching rapidly between two custom tabs, especially clicking in and then clicking away before the busy icon could be displayed, the section containing the tab controls was intermittently refusing to display. Refreshing the browser or clicking on the Pega button made the section visible again. This was traced to the template "metadatatree" getting overlapped with subsequent template processing due to a timing issue as "metadatatree" was being maintained in the global window object. To resolve this, "metadatatree" has been updated to be function-scoped in renderUI to avoid timing issues.|
|SR-C84167||422478||Corrected issue with Field Level Auditing re-adding deleted page list items||Pressing a Save button that invoked the pyTrackSecurityChanges data transform caused deleted items to be added back to a page list. This was caused by pyPropertyIndex being set on the removed page in RUF-pzAddHistoryMemosForPageList, and has been corrected by removing that unneeded action.|
|SR-C84384||430964||Logoff control for Sales Automation case worker portal updated to clear states||After logging in to the Sales Automation case worker portal and clicking a menu item other than dashboard, the link was properly highlighted in the navigation menu and the appropriate data was loaded in the harness. However, after logging out of the application and logging again as the same user, the portal opened to the dashboard page and the previously clicked link was highlighted instead of the dashboard link in the left navigation menu. While it was possible to reset the menu state by closing the browser and starting a new session, the issue has been resolved by updating the logoff control for this portal to use the general system control_logoff which clears states on exit.|
|SR-C84609||424885||CustomFilter clipboard page now retained after section submit||When a Report Definition was configured to display filters using a custom section, selecting the filter property value and submitting the section resulted in the CustomFilter clipboard page being deleted automatically. In order to prevent the clipboard page from being immediately cleaned up by the doUIAction activity, a step has been added to the pzCreateCustomFilterPage activity that will set the pyRetainPage property to "true".|
|SR-C84643||423856||Logs now support RandomAccessFileAppender||Support has been added to the LogFileDownload and LogViewer HTML final rules for using RandomAccessFileAppender. This is in addition to the existing support for RollingRandomAccessFileAppender and RollingFileAppender.|
|SR-C84788||422938||Handling added to maintain custom modal template name after errors||When using a grid where each grid row had an Edit button which launched a modal dialog with a custom modal template, the post action activity of the flow action introduced error messages on a top level page (not on primary or pyWorkPage). Clicking the submit button again caused the modal dialog size to shrink and not work after that. This was traced to the second submit using the system's pyGridModalTemplate instead of the custom modal template due to the modal submit button being replaced with new markup. To resolve this, the modal launch will now use the "pega.u.d.submitModalDlgParam.modalSection" variable which will have the modal template name. In addition, a check has been added to ensure this is not passed as null.|
|SR-C84921||424318||Connection Manager uses keyring for null prconfig password||After upgrade, credentials from BIX keyring were failing when using BIX via commandline rather than prconfig. This was traced to a behavior change in the Connection Manager, and has been resolved by modifying the Connection Manager to look up the password from the keyring when given a URL configuration where the password is null in prconfig (URL connection only).|
|SR-C84939||428566||setTenantName API exposed in the rules alyer||In order to support more efficient message ingestion in a multi-tenant environment, the setTenantName API has been exposed in the rules layer.|
|SR-C85312||424038||Check added for custom section use in Summary report exported to Excel||Criteria were missing when Export to PDF was used for Summary reports filtered by a custom section. This was caused by the needed pyQueryTokenList not being repopulated for the export in the case of custom section use, and has been resolved by adding a summary report check in the pzIncludeCustomFilterSection section before invoking pzClearRDTempFilters function.|
|SR-C85315||422730||New Activity added to ease cleaning up Thread-level data pages||It is an expected behavior that the system will not automatically remove read-only data pages, as the decision of which pages need to be removed is system-specific. However, it was noted that an accumulation of Thread-level Data Pages may eventually cause performance degradation. In order to make it easier to clean these up, the new extension Activity "pyRemoveThreadLevelPages" has been introduced that is called from the DoUIAction activity.|
|SR-C85341||423421||Dropdown sourced from data pages or clipboard pages working for all browsers||After working to resolve a dropdown issue with Edge browsers, some other dropdowns sourced from a data page or clipboard page were failing to load. This was caused by the dpparams parameter being encoded so that the proper JSON was not retrieved, and has been fixed by modifying the system to decode it before passing the postdata.|
|SR-C85614||427440||BIX extract connection leak repaired||The first time that a BIX extract was run it failed with a timeout. Running it again immediately was successful. Investigation showed that if the BIX connection timed out, the connection was not being returned to the connection manager due to a failure to reset the autocommit for a connection that partially ran but was not properly closed. This has been resolved by adding handling that will return the connection to the pool and clear the map if there is an exception. Further refinements will be made for timeout issues in multi-tenant environments in a future release.|
|SR-C85752||425074||New MaxFileSize extension point added for pyMaxFileSizeViolation||A severe guardrail warning was raised when saving the activity pyMaxFileSizeViolation into a ruleset. This was traced to the CheckForWarnings Activity of Rule-Obj-Activity which checks if any activity referenced is an internal activity. Activity pyMaxFileSizeViolation was calling the internal pzGetCMMaxFileSize activity, and the warning appeared because the py activity was overridden in the application ruleset. To resolve this and add an extension point, pzGetCMMaxFileSize has been modified to a new data transform called pxGetCMMaxFileSize, which is called in pyMaxFileSizeViolation.|
|SR-C85853||425289||Currency codes updated||The list of Currency Codes has been updated with the latest ISO changes, including Venezuela and Sao Tome & Principe.|
|SR-C86126||423259||CSV import for delete date values will be formatted before row processing||In order to support using CSV import for delete purposes, date/time class keys will be formatted before processing the row.|
|SR-C86133||426388||Logic updated to resolve Strategy Parser error using dateTimeToBigDecimal||After upgrade, a Strategy run was failing with a SemanticAnalysisException error indicating "Type Mismatch in node 'ILTernaryOperation': False branch does not equal return type (DECIMAL ==> DATETIME)". Upon investigation, the issue was traced to a property set component with an expression using the "DateTime•dateTimeToBigDecimal Pega-RULES:08-01-01" function. To resolve this, the logic has been modified to set the return type of ternary node from the Java type, and to check that True and False branches match this return type as well.|
|SR-C86138||431777||Security updates for avatar upload function||Updates have been made to enhance security around the avatar upload function.|
|SR-C86195||423608||Logic added to map shorthand timezones to their official counterparts||When the time zone in the operator profile record was a non-standard value and no timezone was selected in the operator profile, the date picked in the calendar was reduced by 1 day each time a section was refreshed. For example, if the timezone "IST" was used for India in the Pega operatorID record while the official timezone name is "Asia/Calcutta", the date selection was off by a day after refresh. To resolve this, logic has been added for mapping shorthand timezones to their standard timezones.|
|SR-C86213||424585||Corrected PRAuth URL handling for sessions on restarted nodes||If a user session was in progress and the node restarted, attempting to refresh the session when the node came back up was not working. Launching a new browser session cleared the problem. A trace showed that the Authentication Selector screen was not loading because the PRAuth URL redirection was going into an infinite loop, and this has been corrected.|
|SR-C86260||424929||RecordsEditor Section- Parameters for HideDelete and HideAdd held on clipboard for use||On initial load of a RecordsEditor section, the delete and add options were properly hidden from the user. After using any sort option on any column, the parameters were not persisted and the delete and add icons became visible. To resolve this, the implementation has been updated so that the pyHideDelete and pyHideAdd parameters will be read from myParamPage on the initial load and saved on a clipboard page for use.|
|SR-C86822||424717||50 count limitation removed from application list export||Previously, using Designer Studio -> Application -> Distribution -> Export to export the list of applications limited the results to 50. This number was hardcoded in the page size count setting for the Report Definition. In order to better support complex installations, this limit has been lifted.|
|SR-C87309||430091||Shortened cleanup time for unauthenticated requestors||Any type of probing done to the system with a public URL was generating many unauthenticated requestors that had a one hour lifetime if the user hit /PRAuth and left before reaching the postAuthenticationActivity. In order to speed cleanup in such cases, the system has been updated to ensure the postAuthActivity that sets setShortTimeout(true) is called even if the authentication isn't completed.|
|SR-C87399||426185||pzEditSkills activity updated for better skill matching||In the pzEditSkills activity, a select skill is added to the operator. A check is made using a comparison of pyRuleName equal to pySkillLabel to see whether this skill exists in the system; if it exists it is directly added to the operator profile, and if it does not it is created and added to the operator profile. However, pyRuleName uses a short skill identifier string, for example ‘XML’ whereas pySkillLabel is the longer human readable string, for example ‘XML programming skill’. Therefore, it was possible for Pega to determine the skill did not exist and proceed to creating a new skill with pyRuleName equal to the pySkillLabel of the existing skill in the first available unlocked ruleset. In order to ensure the proper matches are made, the pzEditSkills activity step 4.1 has been modified to get the rule name instead of skill name.|
|SR-C87463||432615||Required image replacing Mandatory Asterisk displays correctly||After creating a mandatory text input field in a section and uploading the required image in place of the default image, the previous default image was still displayed in the portal even after clearing the browser cache and /temp folder on the app server. This was caused by the CSS rule 'pzbase-div-layouts' using specific selectors that had a hard-coded content hash for the image, which has been corrected.|
|SR-C87665||424612||CPU time will be fetched from MBeanServer instead of the JRE application to provide consistency||The value of CPU time in the Enterprise health metrics was being given in nanoseconds instead of seconds after the IBM JRE version was upgraded by applying Websphere Application Server patches. The CPUTimer is a platform class which has logic specific to different JRE vendors; in order to provide consistent results regardless of which JRE is used, the system has been updated to always fetch the values from the MBeanServer.|
|SR-C87757||431645||Country Code for Austria saved correctly||When trying to save an address with CountryCode=AT, the code was saved as "at" instead. This was caused by a temporary field value not being correctly cleared, and has been resolved.|
|SR-C87881||427102||Additional dropdown options exposed for RD column definitions||When using Column formatting in Report Definition ruleform, the "Negative format" option was losing its custom style after opening and submitting the "Format" popup using the magnifying glass. This was caused by the submitted popup overwriting the inherited style reference. Previously, the style ref options were hidden from the dropdown because the same UI is shown in the ruleform and the end user portals and the desire was to avoid end user confusion. In order to support developer use, pzPopulateNegativeFormat has been updated to expose the missing options in the dropdown.|
|SR-C87986||428573||Resize handle correctly changed for RTL locale||When the locale was set to RTL, dragging sections to the left caused a resize and dragging sections to the right moved them to the left. This has been resolved by ensuring the resizable handle for workarea is correctly changed when the locale is RTL.|
|SR-C88178||429527||docx4j jar updated for compatibility with Office365||After generating a docx file with Office365, an error appeared indicating the document had invalid XML data and couldn't be opened. Once the error message was dismissed, the file could be opened normally. This was caused by an incompatibility between Office365 and the Plutext docx4j jar, and the Plutext jar has now been updated to version 6.1.1 to resolve this issue.|
|SR-C88236||428788||Debug logging added to HTTP API for improved diagnostics||Debug loggers have been added to the HTTP API to provide more complete diagnostics for an error where users are redirected to login screen after providing valid credentials. As a workaround, restarting the node server will resolve the login issue.|
|SR-C88309||426998||Tooltip added for data table refresh icon||An enhancement has been added to provide a tooltip for the refresh icon during data table edits.|
|SR-C88776||428380||Added check for blank Value List Property referenced in Dropdown Control||When a value list property was referred in the Dropdown control, the dropdown was shown as empty. This was traced to a property of type value list / value group, ClipboardProperty.getName() api returning as empty. To resolve this, a check has been added to ensure the value is populated with the correct property name if it is blank.|
|SR-C88882||431069||External mapping definitions will be used for exported property names||Under the "External Mapping" tab on the class definition, if the property names specified were not the exact format as the column names defined in the database table, an exception was generated when using the "Export" feature. For this functionality, the system was generating an SQL which used the property names instead of column names. This resulted in an invalid column exception and the export did not work. To correct this, updates have been made to NativeSqlApiResolver in the function resolver to check for the property name and replace it with mapping defined in external mapping.|
|SR-C88948||426227||Command-line BIX extract properly exits with failure status if the rule is not found||Running a BIX extract from the command line was returning 0 for both success and failure. This was caused by the error message in this scenario not properly setting the flag if an extract rule did not exist, and has been corrected to ensure the command exits with status code 1 if it is not able to get the list of extract rules.|
|SR-C89013||427677||Added skip for unneeded old validation from revalidate and save Service REST||An error on the revalidate and save of a Service REST rule has been resolved by skipping unneeded old Service REST validation present in the system.|
|SR-C89156||429486||Blank paramter passed as inshandle invokes NoWorkID harness instead of exception||In releases prior to 8.1, the Obj-Open-By-Handle method was used to set an ActivityStepStatus error if a blank parameter was passed as inshandle. The activity step 8 would show as failed and invoke the NoWorkID harness. As of Pega 8.1, the code was refactored and modified to throw an InvalidArgumentException and quit the activity. In order to ensure better backwards compatibility, the error handling has been reset to show the NoWorkID harness when instanceHandle is empty.|
|SR-C89250||429743||Guardrail score ignores test rulesets||Test rulesets for a branch were unexpectedly being considered when calculating the Guardrail score. This has been corrected.|
|SR-C89316||426078||Lower major ruleset versions will not be considered during design time validation||After circumstancing a rule by property and withdrawing the rule in higher version, the same rule was circumstanced by template. Later after major skimming, attempting to perform a save-as of the circumstanced template rule resulted in an error stating that the circumstanced property already existed. During design time, the system validated the rule with rules from all other ruleset versions. In this corner case where a property-based circumstanced rule was withdrawn and then skimming was performed, the error occurred because it was being saved in a different major ruleset instead of into the same major ruleset. In order to better handle this condition, the system will not consider rules from lower major versions during design time validation.|
|SR-C89541||430730||Case Manager email correspondence opens when encryption and obfuscation are used||If the urlEncryption (true) and submitURLObfuscation(required) settings were enabled, it was not possible to open correspondence emails sent in Case Manager portal. No issue was seen when submitURLObfuscation was set to "optional" (which allows the server to accept URLS with either clear-text or obfuscated strings). Investigation showed the obfuscated values for pyActivity were not part of the HTTP request generated when the Data-Corr-Email attachment is clicked, leading to the system blocking the pop-up window request. Because bEncryptURLs, which is being set in the fragment DesktopWrapper_Variables, is not available in the harness context, the SafeURL method toURL therefore was not encrypting the URL. This has been resolved by setting both bEncryptURLs and pega.ctx.bEncryptURLs to true in the HTML fragment.|
|SR-C89619||429575||Custom section filters retained during refresh||Filtered values were not retained on refresh when filtered using a custom section. This has been resolved.|
|SR-C89656||426425||Case urgency value will not be reset when processing wait shapes||When a Wait shape was configured with the ‘Users can choose to continue process’ option unchecked, the overall work object SLA urgency was overwritten to 0 when the SLA processed the Wait shape. This was due to the Wait shape using pzWaitTImer, which has all urgency values as 0. The SLA being set to 0 did not occur if ‘Users can choose to continue process’ was checked on the Wait shape because pxSystemFlow was not set to true in that case. To prevent the SLA override, a check has been added that will skip setting the urgency setting if there is a wait shape.|
|Rule-Connect-SOAP error fixed for WAS/JBOSS environments||After upgrade, SOAP webservice was failing with the error “Couldn't create OMElement from string value for the activity InvokeAxis2 in class Rule-Connect-SOAP". This occurred on sites using a WebSphere/JBoss environment, and was traced to an issue where the WAS classloader was loading its default jar at the same time the Pega classloader was loading the same jar into JVM. This has been resolved.|
|SR-C89783||429588||Documentation updated for making the database driver JAR file available to Pega||The community guide located at https://community.pega.com/knowledgebase/articles/jdbc-driver-configura… has been updated to reflect the following:
Make the database driver JAR file available to Pega Platform in one of the following ways:
* Ensure that the database driver JAR file is on the Java class path, for example, ojdbc7.jar for Oracle, sqljdbc4.jar for MS SQL, and so on. For information about how to add the driver file to the class path, refer to your application server and development environment documentation.
* Add the database/drivers setting to the prconfig.xml file. The value for the setting is a list of Java driver class names separated by a semicolon, as shown in the following example.
|SR-C89969||431208||Webchat error fixed for Operator Template with User access role||While running Webchat in an external application where the interface had any operator selected as an "Operator Template" with a User access role, the error "The chatbot is experiencing problems; If the issue is related to your current case, you can withdraw it by typing cancel" appeared. This was traced to an issue with creating/modifying instances of the class Data-NLP-Report-Summary, which is done in the Interaction API via pxSaveNLPSummary. To resolve this, the class has been added to the PegaRULES:User4 role so that any user access group can have write access to this class.|
|SR-C90261||428124||Hotfix installer updated to adhere to installorder file included in the package||In order to ensure hotfixes are always installed in the proper order, the installer has been updated to iterate over a set that is ordered according to the INSTALLORDER.PEGA file included in the DL file at packaging time.|
|SR-C90467||429609||Validations are correctly run on rescheduled reports||When using the OOTB schedule report functionality, UI validations were bypassed if the existing schedule was deleted and the report was rescheduled. This has been corrected by updating the Review harness to display the Perform harness when clicking Update.|
|SR-C91121||430390||Data Page seatch results have expanded data available to view||It was not possible to expand a search result and see Ruleset, Updated by, etc, for Data Pages. This was traced to the Layout Properties of section pzSearchDrilldown having a visibility condition of .pzCategoryActionKeys != 'Rule-Declare-Pages' after being reconfigured during prediction studio implementation for rule transition. To resolve this, the necessary related table for data pages has been added to the pzSearchDrilldown section.|
|SR-C91156||429630||Autocomplete Menu Selection for privileges tab Role updated||When a few characters were typed in the autocomplete for "Role" in the privileges tab and the desired value was selected, the selection did not stick. The second time the value was selected it was retained. Investigation showed that the post value source element had a stale reference after section reload, and this has been resolved by adding code to re-initialise the reference with the latest element.|
|SR-C91370||429580||System updated to jackson-databind-2.9.8.jar||The jackson-databind jar has been upgraded to v2.9.8.|
|SR-C91501||428973||Support added for base64Binary type in the SOAP envelope||In order to support the sending of files more than 10 MB in size as a SOAP attachment, a condition has been added to populate base64Binary type as a multipart message in the SOAP envelope. This allows a text node with binary content to be optimized for xop/MTOM.|
|SR-C91521||428629||DX API updated for improved security||Modifications have been made to the DX API to improve system security.|
|SR-C91750||429617||Summarized report after editing shows Count as expected||When creating a report with a number of fields and summarizing it in the report browser, the summary gave proper counts. However, after clicking on "edit report" and then running summarize on the same column, the generated report gave the Sum of the number column instead of the Count. To resolve this, the implementation used to update a hidden value for the dropdown has been set to initialize to the Count option.|
|SR-C91907||433772||Thread context preserved when processing a case in interaction||Thread context was not being preserved correctly when a case was opened from an interaction. This has been corrected.|
|SR-C91927||431510||ValidateSurveyStream updated to ensure validation runs on a named page||After creating new survey rules, trying to re-validate and save in survey-specific rules was failing to re-validate in standard/personal edition. This was an issue with the ValidateSurveyStream activity running on an unnamed page: in this activity, the stepPage name is set to a parameter and passed to datatransform for the processing of the rule. Since the steppage was unnamed, an exception was thrown. To resolve this, steps have been added in the ValidateSurveyStream activities for question, question group, and survey that will copy the primary page into the named page and pass it as a parameter.|
|SR-C91979||431156||Null check added for Grid content in a read-only RTE||ui_grid.js was trying to initialize a grid from the markup of mail content. Since there were some missing attributes, script errors were thrown that resulted in an endless busy indicator. This is now fixed by adding the necessary null checks in Grid code.|
|SR-C92060||432777||Null check added to resolve issue with manipulating operator access group list||When using an operator access group list where there were multiple access groups already listed, picking any one of them except the last and clicking '+' (Add item) to create new line item or clicking on the delete icon to delete the row was generating a Pega busy indicator which never resolved. This was traced to the value label.prop("tagName") being returned as undefined, and has been resolved by adding a null check.|
|SR-C92202||430396||Improved error handling and logging added for null partitions encountered in VBD aggregation||A NPE was thrown during VBD aggregation when a partition was found with no data, a condition likely created by a failed insert or failed replication. To better handle this scenario, code has been added for better error handling and more informative logging.|
|SR-C93079||430562||Action queue explicitly cleared in closeAllDocuments method||After logging in to the app studio and performing some changes in the case designer, attempting to switch to data explorer or other tabs generated an alert indicating "Remaining tabs have unsaved work". After the alert was generated and closed, a "Maximum limit of opens tabs is reached" popup was then displayed even when there were no open tabs. This was traced to a change in the event handler for "DesktopAction" which caused the system to immediately move from the alert to triggering createNewWork, which then used the same dynamic document as the original alert. To resolve this, the system will clear the action queue pega.c.actionSequencer.clearQueue() in the closeAllDocuments method.|
|SR-C93234||432368||FCM support added||Support has been added for the use of FCM for Android push notifications.|
|SR-C93341||433631||Hash handling security updates||Several updates have been made to improve hash handling security.|
|SR-C93344||431349||Bcrypt password hash increased to 2^12||Bcrypt password hashes have been increased to 2^12 iterations for new passwords.|
|SR-C93555||431600||BulkMover updated to not treat Numerics as strings||When attempting to update Pega platform 8.1.1 to 8.1.3 with Oracle on a Windows machine with German locale using the out-of-place upgrade of the rules schema, the migration failed at the migration step with the error message "ORA-01722: Ungültige Zahl". This was traced to BulkMover failing when trying to convert a string to a Numeric due to the locale using commas as the decimal separator, and has been resolved by updating BulkMover to not treat Numerics as strings.|
|SR-C94950||433176||Rule lock is released after alternate approved operator rejects it||When using the rule check-in approval process, if a rule check-in candidate was rejected by an approved operator other than the one who checked it in, the lock on the original rule was not released. This has been corrected so the lock is released after the rule is rejected in the case worker portal.|
|SR-C95232||432328||Removed extranous tick mark on negative numbers in Excel export||All negative amounts had an extra ( ‘ ) in front when report definition results were exported to Excel. This was a byproduct of a security update, and has been resolved.|
|SR-C96297||433777||Enhancements added in support of AES/PDC integration||The following enhancements have been added in support of AES/PDC integration:
- QueueStatistics for Oracle and multi-tenant environments
-Postgres statistics are reset after every push (this can be disabled by changing the DSS ResetTableStats)
-Enabled Debug statements before all connect-rest/connect-soap calls
-Handling for Listener Information issues
-Elastic search updates
-The connect timeout has been enhanced from 30 sec to 60 sec for all REST connectors.
-Data pages can be used for picking the End point URL
-Elastic Search Count details can be pushed to PDC
|SR-C96362||433333||XSS filter added to API form handling||An XSS scripting filter has been added for properties that can be changed via API.|
|SR-C96760||433394||Resolved system performance issues for clusters of >15 DF nodes||The introduction of distributed event logging used to facilitate data flow troubleshooting in Pega 8.1 created a negative impact on performance for extremely large clusters (>15 DF nodes). To resolve this, the distributed logs have been removed and the system will save events in the database instead.|