Optimized strategy execution engine compatibility: known issues and fixes
Understand how upgrading from Pega Plaform™ versions prior to 8.1 to version 8.1 and beyond might affect your decision strategies.
Prior to Pega Platform version 8.1, decision strategies processed all computations methodically, copying over all page properties from one shape to another on the strategy canvas. In the case of complex strategies that contain sophisticated logic with multiple propositions, this behavior could cause performance issues as a result of prolonged processing times.
To address that, starting from Pega Platform version 8.1, the Strategy rules use the optimized strategy execution engine to improve their processing speed. The engine optimizes the strategy processing time by avoiding unnecessary computations, such as needless copying of page properties. In addition, the engine can improve the strategy logic without physically moving the shapes on the strategy canvas, for example, by automatically filtering unused properties before applying computations. Therefore, you might experience different strategy behavior after an upgrade, when switching to the optimized strategy mode. For example, your strategies might produce different results.
Investigate the following list to discover the potential changes in the strategy behavior that you might experience so that you can react to them accordingly.
- Ability to select the Primary page from the Entities section when configuring single test runs
- Correct type conversion in Data Join and Exclusion conditions
- Validations errors when assigning values to a Page property
- Strategy validation bans name conflicts between strategy shapes and page and classes records
- Rule resolution is successful in multi-level external strategies that are running in the optimized mode
- Strategies correctly recognize shapes as optimized on the canvas
- Prompt to correct Interaction History fields no longer appears when Interaction History is disabled in the Proposition Import shape
- Consistent declare expression behavior
- Converting from double to decimal in DSMClipboardPage in alignment with the Pega Platform
- Strategies always set pxInteractionID
- Strategy Results always reference the context of the corresponding strategy
- Ability to successfully run strategies that have expressions
- The Group By shape no longer adds extra digits after aggregation
- The value of pySubjectType can have up to 255 characters
- New validation steps prevent shapes from running multiple times when referenced from a nested context
In version 7.4, when configuring a single case test run for multi-level strategies, the top-level strategy does not display the Primary page as an available entity for testing, even if the Sub Strategy is configured to run in the context of the Primary.Customer page.
In version 8.4, you can select Primary can for single case test runs while in the optimized mode.
In a Data Join or Exclusion shape in which the condition compares a double property with a lower-precision property (such as an integer), the unified expression type inherits from the right-hand expression. The right-hand expression might be of the lower precision type and cause the Data Join to incorrectly match such value as 1.2 as equal to integer value 1. This behavior remains a known issue in Pega Platform versions 8.1, 8.2, and 8.3.
In version 8.4, for strategies running in the optimized mode, if both expression sides are of numerical type, then the unified expression inherits from the more precise type.
In Pega Platform versions prior to 8.4, you can assign values to a Page property through a Set Property shape.
In version 8.4, Pega Platform displays a validation error when you incorrectly assign a value to a property of type Page in the Set Property shape.
Prior to version 8.4, you can save a strategy in which a Pages & Classes entry name conflicts with a shape name or an Embedded Strategy shape variable alias.
Starting from 8.4, a validation error prevents saving a strategy in which a Pages & Classes entry name conflicts with a shape name or an Embedded Strategy shape variable alias.
Rule resolution is successful in multi-level external strategies that are running in the optimized mode
In version 8.3, rule resolution fails if a data flow references a multi-level external strategy with different applies to classes, as demonstrated in the following sample scenario:
- Data Flow A (applies to class X) calls Strategy B
- Strategy B (applies to class X) calls Strategy C
- Strategy C (applies to class Y) calls Strategy D
- Strategy D (applies to class Y) calls Proposition Filter D
- Proposition Filter D (applies to class Y)
Starting from version 8.3.1, rule resolution no longer fails for such scenarios.
In Pega Platform versions 8.1 and 8.2, in a scenario in which a Sub Strategy and Set Property shapes are connected to the Results shape, and you enable strategy optimization, the Set Property does not show as optimized.
In version 8.3 and beyond, after turning on strategy optimization, all optimized shapes show as such on the strategy canvas.
Prompt to correct Interaction History fields no longer appears when Interaction History is disabled in the Proposition Import shape
Consider the following scenario for Pega Platform version 8.2:
- On the strategy canvas, in the Proposition Data shape, select Enable interaction history.
- Don't select any property.
- Disable the Enable interaction history checkbox.
- Confirm your settings.
In this scenario, a prompt is displayed to correct the shape fields, even though you disabled Interaction History.
In Pega Platform versions 8.3 and beyond, there is no field validation, irrespective of whether you selected Enable interaction history.
In Pega Platform versions prior to 8.3, the strategy Test Run panel triggers declare expressions regardless of the declare expression dynamic system setting of the data flow.
Decision strategies do not trigger declare expressions in the strategy logic when the strategy runs a single test run, batch test run or through the Actions > Run dialog window.
In version 7.4, when converting a value from double to decimal and then summing up that value with another decimal (for example, 5.2 + 5), you might get results such as 10.199999999999999289457264239899814128875732421875, instead of 10.2.
To eliminate that behavior, the DsmClipboardPage behavior was changed in versions 7.3.1 and 8.1 and later to align with the Pega Platform clipboard page method of converting property values from double to decimal.
In version 7.4, decision strategies that contain a Group By shape do not always set the pxInteractionID property, causing downstream components, such as the Adaptive Model, to fail when referenced in data flows.
In version 8.1 and later, the Group By shape was changed to create pages with default properties (for example, pxInteractionID).
In version 7.4, if a strategy that is referenced in the Embedded Strategy shape does not have external input, all SR pages that correspond to that strategy have the context of the top-level page.
Starting from version 8.1, each Strategy Results (SR) page in multi-level strategies references the context of the corresponding strategy.
In version 7.4, the Switch shape that contains an expression might produce incorrect results. In version 8.1 and beyond, such expressions as Primary.Date_of_Birth+"T000000.000 GMT" in Switch shapes generate validation errors.
In version 8.1 an beyond, expressions in Switch shapes don't generate validation errors.
The Group By shape adds extra digits when converting a decimal property value to a double value and then performing a sum operation. For example, a Group By shape might produce 10.434000000000001 instead of the expected 10.434.
This behavior was fixed in optimized strategies in version 8.1.
In version 7.4, the pySubjectType property can store names that have a maximum length of 32 characters.
In version 8.1, the maximum length was increased to 255 characters. As a result, the value of pyComputeSegmentLogicForShape might return different results in comparison with version 7.4.
New validation steps prevent shapes from running multiple times when referenced from a nested context
Consider the following sample scenario for Pega Platform 7.4 and 8.1:
- In a strategy, add an Iteration shape and set that shape to iterate ten times and output all results.
- Connect the Iteration shape to the Results shape.
- Add Embedded Strategy "A" that iterates over the Iteration shape outputs.
- Connect the Embedded Strategy shape to the Results shape.
- Add an Embedded Strategy "B" shape within Embedded Strategy "A".
- Configure Embedded Strategy "B" to iterate over the Iteration shape.
- Confirm your settings and run the strategy.
In this scenario, the strategy produces 210 results instead of the expected 110 (10 from the Iteration shape and 100 from the Embedded Strategy shapes).
In version 8.2 and beyond, extra validations do not allow shapes within an Embedded Strategy shape to reference shapes outside of the context.