Usar rv_measure_calc para editar os valores de cenário
rv_measure_calc
, a planilha deve fazer parte de uma combinação de ciclo-módulo com o tipo de Origem do relatório definido para Incorporado.
Usar a medida de difusão para editar valores de cenário
A medida atual também deve ser definida no parâmetro rv_measure_calc
. As propriedades são:
- 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)
Os valores são difundidos usando o comando SplashValue do Infor BI OLAP. Os parâmetros aplicáveis:
- AllocationMode (0 - 5)
- TargetCell (tupla)
- SourceCell (tupla)
- Valor (expressão numérica)
- Arredondamento (expressão lógica)
- DecimalPlaces (expressão numérica)
- ErrorCorrection (expressão lógica)
Defina a SourceCell ("difundir como medida"):
- Se o valor de "measure_spread" não estiver especificado, a medida definida na propriedade ifemptyspreadmeasure_spread_measure será utilizada.
- Com base nesse valor, as propriedades definidas em ifemptyspreadmeasure para multiply, divide, target, spread_rounding e error_correction também são utilizadas.
- Se o valor ifemptyspreadmeasure_spread_measure também não estiver definido, a medida de difusão padrão em rv_measure_spreadlike será usada.
- Se o valor para rv_measure_spreadlike também não tiver sido especificado, não será possível editar os valores do cenário.
- O parâmetro SplashValue.SourceCell deve ser definido como if(not isnull(measure_spread), measure_spread, if(not isnull(ifemptyspreadmeasure_spread_measure), ifemptyspreadmeasure_spread_measure, rv_measure_spreadlike)).
Ao editar um valor existente (valor original <> 0):
- O valor atualizado a partir da célula modificada será usado se a medida
spread_type
estiver definida para "valor". - A diferença entre o valor original e o atualizado é usada se a medida
spread_type
estiver definida para "delta". - O valor é multiplicado e dividido para calcular a medida
weighted_difference
usando os valores especificados para as medidasweightmeasure_multiply
eweightmeasure_divide
, respectivamente.Nota:- Se o valor de weightmeasure_multiply ou weightmeasure_divide não estiver definido, será preciso calculá-lo usando o valor existente.
- Se o valor da medida
measure_spread
não estiver definido, o valor padrãorv_measure_spreadlike
=like_measure
será usado.
Se esses valores não tiverem sido definidos, os dados modificados não poderão ser salvos.
- O valor é atualizado usando
&LIKEFULL weighted_difference like_measure
.
Quando você especifica um novo valor (valor original = 0):
- O valor é multiplicado e dividido para calcular a medida
weighted_difference
usando os valores especificados para as medidasweightmeasure_multiply
eweightmeasure_divide
, respectivamente.Nota:- Se o valor de weightmeasure_multiply ou weightmeasure_divide não estiver definido, será preciso calculá-lo usando o valor existente.
- Se o valor da medida
measure_spread
não estiver definido, o valor padrãorv_measure_spreadlike
=like_measure
será usado.
Se esses valores não tiverem sido definidos, os dados modificados não poderão ser salvos.
- O valor é atualizado usando a medida
#LIKEFULL weighted_difference like_measure
. - Se o valor
measure_spread
for nulo, a medida definida na propriedadeifemptyspreadmeasure_spread_measure
será usada. Essa medida também usa as propriedades definidas emifemptyspreadmeasure
para multiplicar e dividir os valores para o alvo. A definição de medida de difusão quando um valor não está especificado élike_measure = nvl(measure_spread, nvl(ifemptyspreadmeasure_spread_measure, v_measure_spreadlike))
. Assim, se o valor dessa medida também for nulo, a medida de difusão padrão emrv_measure_spreadlike
será usada. Se essa medida não estiver definida, a edição falhará porque os critérios de difusão não estão especificados.
Para determinar o arredondamento dos valores:
- Se
spread_rounding
for definido como um número inteiro positivo, o comando SplashValue incluirá o arredondamento:- Parâmetro SplashValue.Rounding: 1=1 (true)
- Parâmetro SplashValue.DecimalPlaces: spread_rounding
- Se
spread_rounding
for nulo, negativo ou não estiver definido: o arredondamento será 0=1.- Parâmetro SplashValue.Rounding: 0=1 (false)
- Parâmetro SplashValue.DecimalPlaces: indefinido
Nota: Se measure_spread for nula, o parâmetro ifemptyspreadmeasure_spread_rounding será usado. - Exemplo de resultados de difusão como valores inteiros (como carros previstos):
<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>
Definir correção de erro:
- Se spread_error_correction for TRUE ou não estiver definido, o comando SplashValue incluirá correção de erro, ou seja, um elemento base poderá receber um valor arredondado para garantir que a soma de todos os resultados da difusão seja igual ao valor distribuído (agregado). O parâmetro SplashValue.ErrorCorrection é definido como 1=1 (true).
- Se spread_error_correction for FALSE, o comando SplashValue não incluirá a correção de erro. O parâmetro SplashValue.ErrorCorrection é definido como 0=1 (false).
As células que são editadas, mas não enviadas ao OLAP (usando a opção Recalcular) são marcadas com um plano de fundo azul e um sinalizador de edição. Quando essas edições são atualizadas usando a opção Recalcular, as células editadas são revertidas para o formato padrão.
Porém, se uma regra de cálculo estiver definida, ou seja, uma medida de destino não calculada não estiver definida na medida rv_measure_calc_ para a célula, as edições serão descartadas pelo OLAP quando você recalcular os dados e o valor original da célula será mantido.