Definição de cálculos de atributos

Para calcular uma medida ou criar uma dimensão, é usado o valor de um atributo existente ou é especificado o algoritmo para cálculo do atributo no arquivo de configuração XML (elemento XML calcattr). O nome de atributo especificado tem de ser incluído na definição de atributos importados para o sistema PPM (arquivos AttributeTypes.xml e AttributeNames.xml). O tipo de dados e a unidade base são definidos pela definição de atributos. O cálculo de um atributo é sempre feito na unidade base do tipo de atributo. O resultado também é guardado como um valor na unidade base.

Os atributos apenas são válidos em uma instância de processo. Não é possível calcular atributos para outras instâncias de processo ou incluí-las no cálculo.

O cálculo de um atributo pode ser dependente de outros atributos, que podem por sua vez ser atributos calculados. Todos os atributos especificados com o elemento XML depends são calculados antes que o cálculo do atributo atual seja executado. As dependências cíclicas são detectadas durante a importação da configuração de medida e reconhecidas por uma mensagem de erro.

Opcionalmente, você pode especificar um valor padrão (elemento XML defaultvalue), que pode ser atribuído ao valor de atributo caso não tenha sido possível calcular com sucesso. O valor padrão deve sempre ser especificado com uma unidade que seja válida para o tipo de dados do atributo. Essa é a única maneira de o valor da unidade base ser calculado corretamente.

Se uma regra de cálculo for utilizada (elemento XML cálculo), o valor padrão será utilizado sempre que não for possível calcular com êxito. Entretanto, se um algoritmo for utilizado para o cálculo (elemento XML calcattr), o valor padrão será utilizado somente em combinação com as seguintes classes de cálculo:

Todas as outras classes de cálculo ignoram o valor padrão.

Se um atributo não puder ser calculado e nenhum valor padrão for especificado, o atributo não será criado para a instância de processo ou para os objetos da instância de processo, e uma mensagem correspondente será emitida.

A estrutura XML para definição de um cálculo de atributo é semelhante a esta:

...

<calcattr name="..." type="..." objectname="..."

scale="..." delete="...">

<depends attrname="..." type="..."/>

<defaultvalue>"..."</defaultvalue>

Ou

<calculation> ... </calculation>
</calcattr>

...

or

<calcclass name="..."/>

</calcattr>

...

Marca XML

Descrição

name

Designação interna do atributo a ser calculado.
O atributo é criado para todos os tipos de objeto especificados por type na instância de processo que está sendo processada. Todos os atributos existentes são substituídos.

type

Tipo de objeto para o qual o atributo é gravado

PROCESS: O atributo calculado é gravado na instância de processo.
OT_FUNC: O atributo calculado é gravado em todas as funções da instância de processo.
OT_ORG: O atributo calculado é gravado em todas as unidades organizacionais da instância de processo.
OT_EVT: O atributo calculado é gravado em todos os eventos da instância de processo.
RELATION: O atributo calculado é gravado na relação da instância de processo especificada usando relname.

relname
(opcional)

Apenas para type="RELATION". Especifica a relação com a qual o cálculo de atributo deve se relacionar. A ser usado em vez de dependsrel.

objectname
(opcional)

Designação interna da função (atributo de objeto AT_OBJNAME_INTERN) na qual o atributo é gravado. Esta opção só pode ser usada para o cálculo dos atributos de função. Vários nomes de objeto são especificados separados por vírgulas, os espaços reservados * e ? podem ser usados conforme necessário, no nome de objeto.

scale
(opcional)

O resultado de uma regra de cálculo é gravado no atributo, na escala especificada.
O valor da escala depende do tipo de dados do atributo no qual o cálculo é baseado.
Se nada for especificado, o resultado será emitido na unidade base do tipo de dados do atributo.

delete

Se o valor for sim, um valor de atributo calculado anteriormente será excluído antes do novo cálculo (por exemplo, especificado para a definição de atributos de tempo críticos usados pelo sistema de alerta antecipado, ver capítulo Dimensões de tempo para o sistema de alerta antecipado). Valor padrão: no

Para especificar seletivamente uma regra de cálculo para uma ou mais funções específicas, especifique o nome da função correspondente no atributo XML objectname.

Exemplo

A regra de cálculo só é executada para funções cujas designações internas correspondam ao padrão especificado.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE keyindicatorconfig SYSTEM

'KeyindicatorConfiguration.dtd'>

<keyindicatorconfig>

...

<calcattr name="AT_END_TIME" type="OT_FUNC"

objectname="FCT_AUFT??_*,

FCT_END_*_?,

*_AUFTRAG,FCT_AUFTR_START">

<calculation>

...

</calculation>

</calcattr>

...

</keyindicatorconfig>

A definição de uma regra de cálculo é concluída especificando os seguintes elementos XML:

Elemento XML

Descrição

depends
(opcional)

Nome e tipo de um atributo (PROCESS, OT_FUNC, OT_EVT, OT_ORG, ou RELATION), que tem de existir para o cálculo ser executado. Se o atributo especificado for um atributo calculado, isso será calculado em primeiro lugar. O atributo relname especifica a relação em que existe uma dependência (apenas para type="RELATION").
Vários elementos depends podem ser especificados em simultâneo.
Não deve ser usado em conjunto com dependsrel.

dependsrel
(opcional)

Nome da relação em que há uma dependência (apenas para type="RELATION"). Para ser usado em vez de relname.
Não deve ser usado em conjunto com depends.

defaultvalue
(opcional)

Valor padrão do atributo se por qualquer motivo o atributo não puder ser calculado.

calcclass
calculation

Especificação única da regra de cálculo usando um dos dois elementos XML.
Você usa calcclass para especificar o algoritmo quando é inserido um caminho de classe Java completo. O uso de calculation especifica uma fórmula de cálculo diretamente em notação XML.

calcparam
(opcional)

Apenas para calcclass. Transfere qualquer número de parâmetros (calcparam) ao chamar uma classe de cálculo. A designação interna única do parâmetro é definida usando key e o valor de parâmetro correspondente usando value.

Para calcular um atributo usando o elemento XML calculation, está disponível um conjunto abrangente de regras para a definição de regras de cálculo.

Exemplo

O exemplo abaixo mostra a definição XML do cálculo do tempo de processamento para uma instância de processo. O tempo de processamento é definido como a diferença entre a hora de início mais antiga e a hora de término mais recente de todas as funções em uma instância de processo. Para armazenar o valor de medida, é selecionado o atributo AT_KI_PROCESSTIME (tipo: intervalo de tempo). O cálculo só deve ser realizado se os dois atributos AT_START_TIME e AT_END_TIME forem especificados para pelo menos uma função da instância de processo. Não tem necessariamente que ser a mesma função. Se o cálculo falhar por algum motivo, o atributo resultante será associado ao valor padrão de 0 SECOND.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE keyindicatorconfig SYSTEM

'KeyindicatorConfiguration.dtd'>

<keyindicatorconfig>

...

<calcattr name="AT_KI_PROCESSTIME" type="PROCESS">

<depends attrname="AT_END_TIME" nodetype="OT_FUNC">

<depends attrname="AT_START_TIME" nodetype="OT_FUNC">

<defaultvalue>0 SECOND</defaultvalue>

<calculation>

<timespan>

<filteredattribute name="AT_END_TIME"

nodetype="OT_FUNC" filter="LATEST"/>

<filteredattribute name="AT_START_TIME"

nodetype="OT_FUNC" filter="EARLY"/>

</timespan>

</calculation>

</calcattr>

...

</keyindicatorconfig>

Um atributo calculado contém sempre o valor do resultado e a unidade do resultado. A unidade do resultado é sempre especificada na unidade base correspondente àquela do tipo de dados do atributo de evento.