Use the rv_measure_calc to edit scenario values

To edit the scenario values, in a worksheet, using rv_measure_calc, the worksheet must be part of a cycle-module combination with the Report Source type set to Embedded.
Note: A cell is modified in a worksheet, based on the specified rules:

The current measure must also be defined in the rv_measure_calc parameter. The properties are:

  • targetmeassure
  • weightmeasure_multiply
  • weightmeasure_divide
  • measure_spread
  • spread_type
  • spread_rounding
  • spread_error_correction
  • ifemptymeasurespread_measure_spread (& ifemptymeasurespread_targetmeasure ifemptymeasurespread_weightmeasure_multiply, ifemptymeasurespread_weightmeasure_divide, Ifemptymeasurespread_spread_rounding, Ifemptymeasurespread_spread_error_correction)

The values are spread using the Infor BI OLAP SplashValue command. The applicable parameters:

  • AllocationMode (0 - 5)
  • TargetCell (tuple)
  • SourceCell (tuple)
  • Value (numeric expression)
  • Rounding (logical expression)
  • DecimalPlaces (numeric expression)
  • ErrorCorrection (logical expression)

Set the SourceCell ("spread like measure"):

  • If the value of “measure_spread” is not specified, the measure defined in the ifemptyspreadmeasure_spread_measure property is used.
    • Based on this value, the properties defined in ifemptyspreadmeasure for multiply, divide, target, spread_rounding, and error_correction are also used.
    • If the ifemptyspreadmeasure_spread_measure value is also not defined, the default spread measure in rv_measure_spreadlike is used.
    • If the value for rv_measure_spreadlike is also not specified, you cannot edit the scenario values.
  • The SplashValue.SourceCell parameter must be set to if(not isnull(measure_spread), measure_spread, if(not isnull(ifemptyspreadmeasure_spread_measure), ifemptyspreadmeasure_spread_measure, rv_measure_spreadlike)).

When you edit an existing value (original value <> 0):

  • The updated value from the modified cell is used, if the spread_type measure is set to "value".
  • The difference between the original and updated value is used, if the spread_type measure is set to "delta".
  • The value is multiplied and divided, to calculate the weighted_difference measure, using the values specified for the weightmeasure_multiply and weightmeasure_divide measures, respectively.
    Note: 
    • If the value of either weightmeasure_multiply or weightmeasure_divide are not defined, you must calculate the value using the existing value.
    • If the value of measure_spread measure is not defined, the default rv_measure_spreadlike = like_measure is used.

    If these values are not defined, the modified data cannot be saved.

  • The value is updated using the &LIKEFULL weighted_difference like_measure.

When you specify a new value (original value = 0):

  • The value is multiplied and divided, to calculate the weighted_difference measure, using the values specified for the weightmeasure_multiply and weightmeasure_divide measures, respectively.
    Note: 
    • If the value of either weightmeasure_multiply or weightmeasure_divide are not defined, you must calculate the value using the existing value.
    • If the value of measure_spread measure is not defined, the default rv_measure_spreadlike = like_measure is used.

    If these values are not defined, the modified data cannot be saved.

  • The value is updated using the #LIKEFULL weighted_difference like_measure measure.
  • If the measure_spread value is null, the measure defined in the ifemptyspreadmeasure_spread_measure property is used. This measure also uses the properties defined in ifemptyspreadmeasure to multiply and divide the values for the target. The spread measure definition when a value is not specified is like_measure = nvl(measure_spread, nvl(ifemptyspreadmeasure_spread_measure, v_measure_spreadlike)). Consequently, if the value of this measure is also null, the default spread measure in rv_measure_spreadlike is used. If this measure is not defined, the edit fails because the spreading criteria is not specified.

To determine the rounding of values:

  • If spread_rounding is defined as a positive integer, the SplashValue command inlcudes the rounding:
    • SplashValue.Rounding parameter: 1=1 (true)
    • SplashValue.DecimalPlaces parameter: spread_rounding
  • If spread_rounding is null, negative, or is not defined: the Rounding is 0=1.
    • SplashValue.Rounding parameter: 0=1 (false)
    • SplashValue.DecimalPlaces parameter: undefined
    Note: If the measure_spread is null, ifemptyspreadmeasure_spread_rounding parameter is used.
  • Example of Spread results as integer values (such as forecasted cars):
    <Table>
    <Row name="[SOP_FREV]">
    <Property name="targetmeasure" value="[SOP_FMI]" /><Property name="weightmeasure_divide" value="[SOP_FSELL]" />
    <Property name="measure_spread" value="[SOP_FUNITS]" /><Property name="spread_type" value="value" />
    <Property name="spread_rounding" value="0" /></Row>
    </Table>

Set Error correction:

  • If spread_error_correction is TRUE or not defined, the SplashValue command includes error correction, that is, one base element can receive a rounded value to ensure the sum of all spread results equals the (aggregate) splashed value. The SplashValue.ErrorCorrection parameter is set to 1=1 (true).
  • If spread_error_correction is FALSE, the SplashValue command does not include error correction. The SplashValue.ErrorCorrection parameter is set to 0=1 (false).
Note: If the measure_spread is null, ifemptyspreadmeasure_spread_error_correction parameter is used.

The cells that are edited but not submitted to OLAP (using the Recalculate option) are marked with a Blue background and an edit flag. When these edits are updated using the Recalculate option, these edited cells are reverted to the standard format.

However, if a calculation rule is defined, that is, a non-calculated target measure is not defined in the rv_measure_calc measure for the cell; the edits are discarded by OLAP when you recalculate the data and the original value of the cell is retained.