Aninhamento de operadores

Os operadores podem ser aninhados em qualquer profundidade. Se estiver a combinar operadores, terá de seguir as regras especificadas na DTD.

Aviso

As regras de cálculo baseadas em um aninhamento de operadores que não são permitidos resultam no cancelamento da importação quando a configuração de medidas é importada. Devido às dependências complexas, as regras de cálculo incorretas podem fazer com que o conteúdo do banco de dados fique totalmente inutilizável.

No arquivo KeyindicatorConfiguration.dtd do diretório dtd da instalação do PPM, pode verificar qual o aninhamento de operadores permitido.

Exemplo (extrato da DTD):

<!ELEMENT abs (%numericoperator; | %setoperator; |

%caseoperator; | filteredattribute | constant)>

O operador <abs> pode ser aninhado com um dos elementos XML <filteredattribute> ou <constant> ou com um operador para as entidades especificadas (unidades declaradas na notação XML à qual determinados elementos XML são associados):

Na declaração da entidade pode ver que operadores são associados a que entidade.

Exemplo (extrato da DTD):

<!ENTITY % setoperator "sum|product|card|min|max|mean">

A entidade % setoperator representa um dos operadores <sum>, <product>, <card>, <min>, <max> ou <mean>.

O exemplo seguinte mostra uma regra de cálculo em conformidade com a DTD:

<calcattr name="..." type="...">

<calculation>

<abs>

<minus>

<filteredattribute name="AT_KI_BSP1"

nodetype="OT_FUNC" objectname="this"

filter="LATEST" onerror="EXIT_NO_WARNING"/>

<filteredattribute name="AT_KI_BSP2"

nodetype="OT_FUNC" objectname="this"

filter="EARLY" onerror="EXIT_NO_WARNING"/>

</minus>

</abs>

</calculation>

</calcattr>