INC-221950 · Issue 720052
SendEmailNotification activity updated for forgotten password flow
Resolved in Pega Version 8.8
The "Trouble logging in?" mechanism was not working after update due to the verification code not being sent to the user. This was an issue with security policy, and has been resolved by disabling the checkbox "Require authentication to run" for the SendEmailNotification activity in this scenario. The SendEmailNotification activity is used to send mails to the user during the forgotten password flow and requires the provision to run in an unauthenticated context for this usecase.
INC-223240 · Issue 723230
Added debug logging and exception recovery for unexpected data object
Resolved in Pega Version 8.8
When rules were complied in lower environment and deployed into production, they later became corrupted and system behavior changed. The error "Java generation failed: caught exception while expanding property pyGetCasePredictionsByClassName on page CurrentRecord" was generated. Investigation showed the auto-populate property pyGetCasePredictionsByClassName was attempting to get the metadata property "pzDataObjectParams": this was a string value in this scenario instead of the expected java object, and caused the exception. To resolve this, a debugger has been added which will check if the property is a java object or not. If it is not, the system will skip the processing and then display an error message with a stack trace.
INC-224034 · Issue 735692
Data page definition reload made more robust
Resolved in Pega Version 8.8
The data page was intermittently being removed from the cache. This was traced to the use of a thread from ThreadContainer to reload the data page definition: a null thread could be returned if the request came from a master agent, which would then cause the definition reload to fail. This has been resolved by updating the system to use the current thread in context to reload the data page definition.
INC-224268 · Issue 724023
Cleaned up outdated prprivcommon class references
Resolved in Pega Version 8.8
After update, an exception was generated related to FirstUseAssembler. This was a missed use case for the WriteEFormToFile activity from previous work which restricted loading classes from prprivcommon.jar, and has been resolved by removing references to the following classes which were made inaccessible by the changes to prprivcommon: com.pega.pegarules.storage.FileStorageManager com.pega.pegarules.storage.fs.resadaptor.RAFile com.pega.pegarules.storage.fs.resadaptor.OutputStreamWrapper
INC-225046 · Issue 729892
Currency Code updates
Resolved in Pega Version 8.8
A Section configured with an editable currency input using auto-formatting failed to render at runtime if configured using Type -> Number, Symbol -> Currency, Other currency, and Currency -> "USD". The error "Invalid Locale : USD" was logged. This was an unintended side effect of work done to configure currency codes for the Number control, and has been resolved by accounting for the locale settings and handling the condition for the error "Invalid local-USD" so that the the UI rendering appears as expected. In addition, when the Currency control was configured with editable mode "Editable" and "Display value using read-only formatting" checked, read-only formatting generation did not happen for the control. Entering a value and tabbing out caused the ReloadCell activity to return empty content, which resulted in the server returning full HTML markup with a message "Operation Successful". Because the ReloadCell activity handler expected only control markup with formatted value to be returned, the HTML markup containing inline CSS styles in it appeared in the Currency input field on tab out. There was a workaround of unchecking "Display value using read-only formatting" on the control's presentation tab, but this has been resolved by using Post value infrastructure to get the formatted value from the server.
INC-225687 · Issue 739708
Handling added to avoid incorrect true value for DateTimeisPastOrFuture
Resolved in Pega Version 8.8
When the Function pxDateTimeisPastOrFuture() was called with the arguments "" (the empty String) and "false", it sometimes returned "true" instead of "false". This function internally calls the Function CompareDates() which takes two Strings as arguments. In this case, one is provided by the caller of pxDateTimeisPastOrFuture, the other one is generated at runtime, as the current date/time. As the second argument of pxDateTimeisPastOrFuture, the generated date/time will be the first parameter, while the second one is the date/time argument for pxDateTimeisPastOrFuture. If that argument is the empty String, is will be replaced by the current date/time. This means that the value for the second parameter is determined after the first parameter and that can result in a gap in time by a few milliseconds. This in turn results in "true" as the return value for pxDateTimeisPastOrFuture. This has been resolved by adding handling for a blank string so "false" is returned correctly.
INC-225696 · Issue 736797
Explicit expiration added to avoid searching for expired requestor
Resolved in Pega Version 8.8
A login page was taking long time to display. This was traced to pre-authentication cookie in the browser pointing to the requestor object on the server which triggered a lookup across the entire cluster of servers to find the requestor. This was not only taking time, but the attempt to find the requestor in the cluster would always fail to return results as the requestor was not passivated but instead removed after two minutes. To resolve this, an expiration has been added to the Pega-RULES cookie when the value is pre-authenticated. The time to expire is derived based on the short-lived requestor time for unauthenticated requestors + 1 minute, and will be 2 minutes by default. This will avoid searching for a requestor across all nodes in cluster when the requestor has already timed out and been destroyed by server.
INC-225788 · Issue 728057
Performance improvements for save-as
Resolved in Pega Version 8.8
Performance issues were seen when using save-as for rules such as Declare expression, When rules, activity, etc. This was traced to a very large number of extra database queries that were being executed while building the Declarative Cache. To resolve this, an update has been made so the queries used for the Declarative Cache will only be executed when required.
INC-226762 · Issue 727390
Data page definition reload made more robust
Resolved in Pega Version 8.8
The data page was intermittently being removed from the cache. This was traced to the use of a thread from ThreadContainer to reload the data page definition: a null thread could be returned if the request came from a master agent, which would then cause the definition reload to fail. This has been resolved by updating the system to use the current thread in context to reload the data page definition.
INC-226764 · Issue 745051
Performance improvements for save-as
Resolved in Pega Version 8.8
Performance issues were seen when using save-as for rules such as Declare expression, When rules, activity, etc. This was traced to a very large number of extra database queries that were being executed while building the Declarative Cache. To resolve this, an update has been made so the queries used for the Declarative Cache will only be executed when required.