• Nenhum resultado encontrado

Regras chave de merge

No documento ARIS PROCESS PERFORMANCE MANAGER (páginas 31-38)

7.2 Regras chave

7.2.4 Regras chave de merge

<sharedfragmentkeyrule> <refobjects> <refobject objecttype="OT_EVT"> <objectname name="EVT_ACE"/> <objectname name="EVT_GIK"/> </refobject> </refobjects> <keyparts> <keypart attributetype="AT_XYZ"/> </keyparts> </sharedfragmentkeyrule> ... </keyrules>

7.2.4 Regras chave de merge

As regras chave de merge são usadas para mesclar eventos de merge em uma instância de processo. Dessa forma, os fragmentos de instância de processo associados usando chaves de processo são vinculados para formar uma instância de processo.

As chaves de merge são calculadas a partir de atributos de objeto específicos do fragmento de instância do processo. Eles são usados para reconstruir a lógica do processo da instância de processo e os fragmentos não vinculados são vinculados devidamente.

O PPM diferencia entre dois procedimentos de merge:  Merge baseada na chave

 Merge baseada na ordem de classificação

O procedimento de merge relevante é especificado no arquivo de configuração XML

*_merger.xml. A estrutura desse arquivo é especificada na DTD mergerconfig.dtd.

ARQUIVO MERGERCONFIG.DTD (PARTE 1)

<!ELEMENT mergerconfig ( mergehandling, connectorhandling? )>

<!ELEMENT mergehandling ( sharedfragmentmerge?, processmerge?, eventmerge+ )> <!ATTLIST mergehandling eventmode (startevent | endevent | importtime) "importtime"> <!ELEMENT sharedfragmentmerge ( algorithm )>

<!ELEMENT processmerge ( algorithm?, mergeattributes?)> <!ATTLIST processmerge

mode (replace|update) 'replace'>

<!ELEMENT eventmerge ( mode, condition?, algorithm? )> <!ATTLIST eventmerge

key ID #IMPLIED

priority CDATA #IMPLIED> <!ELEMENT condition EMPTY>

<!ATTLIST condition

classname NMTOKEN #REQUIRED value (TRUE|FALSE) 'TRUE' comment CDATA #IMPLIED> <!ELEMENT algorithm EMPTY> <!ATTLIST algorithm

classname NMTOKEN #REQUIRED comment CDATA #IMPLIED>

<!ELEMENT mergeattributes (attribute+)> <!ELEMENT attribute EMPTY>

<!ATTLIST attribute key CDATA #REQUIRED>

<!ELEMENT mode ( keymerge | sortmerge )> <!ELEMENT keymerge EMPTY >

<!ELEMENT sortmerge ( criterion*, algorithm? )> <!ELEMENT criterion EMPTY>

<!ATTLIST criterion

name NMTOKEN #REQUIRED>

Marca XML Descrição

mergerconfig Agrupamento da configuração de merge mergehandling Tipo de merge a ser configurado. Tem de ser

especificado pelo menos um elemento

eventmerge.

sharedfragmentmerge (opcional)

Algoritmo diferente do algoritmo padrão para mesclar os fragmentos compartilhados com fragmentos de instância de processo

processmerge (opcional)

Algoritmo diferente do algoritmo padrão para mesclar os fragmentos de instância de

processo. Os modos Substituir ou Atualizar estão disponíveis para seleção. O valor padrão é Substituir.

eventmerge Algoritmo diferente do algoritmo padrão para mesclar os eventos de merge

chave (opcional)

ID que pode ser usado para to referenciar o elemento eventmerge.

prioridade (opcional)

Prioridade do elemento eventmerge – quanto mais baixo o valor inteiro, maior a prioridade. condição

(opcional)

Condição para mesclagem de eventos de merge

classname Nome da classe JAVA, que verifica a condição especificada

Marca XML Descrição

valor (opcional)

A condição é atendida se a verificação da classe JAVA retornar o valor especificado (TRUE ou FALSE). O valor padrão é TRUE. algoritmo

(opcional)

Regra de cálculo (classe JAVA)

classname Classe JAVA que implementa uma regra de cálculo específica

modo Procedimento de merge para mesclagem de eventos

keymerge Merge de eventos baseada em chave, com base em chaves de merge definidas

sortmerge Merge de eventos baseada na ordem de classificação de funções

critério Critério (atributo de função) a ser usado como base para ordenar os fragmentos. Podem ser especificados diversos critérios.

name Nome do atributo de função

ARQUIVO MERGERCONFIG.DTD (PARTE 2)

<!ELEMENT connectorhandling ( multiindegreehandling?, multioutdegreehandling?, andhandling?, orhandling?, xorhandling?)>

<!ELEMENT multiindegreehandling (algorithm) > <!ELEMENT multioutdegreehandling (algorithm) > <!ELEMENT andhandling (algorithm) >

<!ELEMENT orhandling (algorithm) > <!ELEMENT xorhandling (algorithm) >

Marca XML Descrição

connectorhandling (opcional)

Tratamento de conectores em gráficos de processo especificando uma classe JAVA (algorithm)

multiindegreehandling (opcional)

Algoritmo que controla a inserção de

conectores com várias conexões de entrada para a merge de objetos

multioutdegreehandling (opcional)

Algoritmo que controla a inserção de conectores com várias conexões de saída para a merge de objetos

Marca XML Descrição

andhandling (opcional)

Algoritmo para tratamento de conectores AND

orhandling (opcional)

Algoritmo para tratamento de conectores OR

xorhandling (opcional)

Algoritmo para tratamento de conectores XOR

Exemplo

A merge de eventos baseada em chave é usada para vincular fragmentos de instância de processo.

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

<!DOCTYPE mergerconfig SYSTEM "mergerconfig.dtd"> <mergerconfig> ... <mergehandling> <eventmerge> <mode> <keymerge/> </mode> </eventmerge> </mergehandling> ... </mergerconfig>

Durante a merge de evento, o conjunto combinado de atributos de ambos os eventos de merge é copiado para o evento restante. Os atributos de objeto existentes não são substituídos. O primeiro evento de merge importado é excluído.

7.2.4.1 Merge baseada na chave

A merge baseada na chave é usada para mesclar eventos com chaves de merge idênticas. O primeiro evento de merge importado é excluído e a quantidade de chaves de merge idênticas é reduzida. O processo de merge é repetido até que não existam mais chaves de merge

idênticas na atual instância de processo.

As regras chave de merge são definidas no arquivo XML KeyRules.xml. Isso é feito especificando os atributos de um evento de fragmento envolvido na criação da chave de merge. A própria chave de merge é criada combinando os valores de atributo especificados.

EXEMPLO

O extrato de arquivo abaixo define uma regra chave de merge que usa o nome de objeto interno do evento (tipo de atributo AT_OBJNAME_INTERN) para criar a chave de merge para o evento inicial e final em um fragmento de instância de processo. Já que diversos fragmentos com a mesma definição de fragmento podem ocorrer em uma instância de processo, a chave de merge é estendida para incluir o valor do atributo AT_END_TIME.

<!DOCTYPE keyrules SYSTEM "keyrules.dtd"> <keyrules> ... <processkeyrule> ... </processkeyrule> ... <mergekeyrule> <refobjects> <refobject objecttype="OT_EVT"> <objectname name="EVT_START"/> <objectname name="EVT_END"/> </refobject> </refobjects> <keyparts> <keypart attributetype="AT_OBJNAME_INTERN"/> <keypart attributetype="AT_END_TIME"/> </keyparts> </mergekeyrule> ... </keyrules>

7.2.4.2 Merge baseada na ordem de classificação

A merge baseada em ordem de classificação mescla eventos baseados em determinados critérios de classificação. Qualquer quantidade de critérios de classificação pode ser

especificada na forma de tipos de atributo de função. O evento seguinte para uma função é mesclado com o evento predecessor da função seguinte.

Por padrão, os procedimentos alfanuméricos e cronológicos são implementados no PPM. O método usado é especificado pelo tipo de dados do critério de classificação especificado.

Um exemplo de um critério de classificação pode ser o atributo de função AT_END_TIME com o tipo de dados TIME.

Em uma merge baseada em ordem de classificação, os fragmentos de instância de processo importados podem não incluir regras. Os fragmentos de instância de processo com funções consecutivas estão divididos em EPCs mínimas (evento-função-evento).

Aviso

Certifique-se de que o critério de classificação definido está disponível em cada função das instâncias que devem ser fundidas e inclui os valores correspondentes.

No PPM 4.0 e superior, pode usar ambos os métodos de merge em uma configuração do cliente.

Exemplo

O atributo de função AT_END_TIME é usado para a merge baseada em ordem de

classificação. O carimbo de data/hora tem de ser especificado para cada função da instância. <?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE mergerconfig SYSTEM "mergerconfig.dtd"> <mergerconfig>

...

<mergehandling> <eventmerge> <mode>

<sortmerge>

<criterion name = "AT_END_TIME" /> </sortmerge> </mode> </eventmerge> </mergehandling> ... </mergerconfig>

Se o atributo de classificação para diversas funções tiver o mesmo valor E forem usadas regras para criar caminhos paralelos na instância de processo mesclada.

Exemplo

Como o critério de classificação usado (AT_END_TIME) retorna um valor idêntico para as duas funções FCT 1 e FCT 2, as regras AND são usadas para criar um caminho paralelo na instância de processo mesclado.

7.2.4.3 Combinar métodos de merge

Para poder mesclar fragmentos usando métodos diferentes deve definir vários métodos de merge. Para isso, os atributos key e priority são adicionados à configuração de merge (elemento XML eventmerge).

O valor do atributo key especifica o nome do método de merge e é referenciado pelo atributo de gráfico AT_INTERNAL_EVENT_MERGE_MODE para fragmentos a serem importados. O método com a prioridade mais baixa (elemento XML priority) é usado quando fragmentos com diferentes métodos de merge são mesclados durante uma operação de importação.

O método de merge padrão é usado para fragmentos em que o atributo

AT_INTERNAL_EVENT_MERGE_MODE não é especificado. O método padrão é o que é

definido na configuração de merge sem especificar uma chave.

Aviso

Especifique prioridades diferentes para todos os métodos de merge.

Para especificar o método de merge a ser usado para diferentes tipos de evento de sistema, especifique a chave para o método de merge relevante no atributo de processo

AT_INTERNAL_EVENT_MERGE_MODE para as EPCs de definição de fragmento. Todos os

eventos de sistema importados com esta definição de fragmento são automaticamente mesclados usando o método especificado.

Aviso

Se o método de merge especificado no fragmento a ser importado não existir, o fragmento não será importado e uma mensagem de erro será exibida. A mensagem de erro também é

guardada no atributo AT_MERGE_ERROR_MESSAGE para o fragmento correspondente. O valor true é também inserido para o atributo AT_MERGE_ERROR_FLAG.

Exemplo

A configuração de merge seguinte é usada para a importação de dados e define 3 métodos: <?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE mergerconfig SYSTEM "mergerconfig.dtd"> <mergerconfig> <mergehandling> <eventmerge priority="10"> <mode> <keymerge/> </mode> </eventmerge>

<eventmerge key="SORTMERGE_ID" priority="3"> <mode>

<sortmerge>

<criterion name = "AT_ID" /> </sortmerge>

</mode> </eventmerge>

<eventmerge key="SORTMERGE_DATE" priority="4"> <mode>

<sortmerge>

<criterion name = "AT_START_TIME" /> </sortmerge>

</mode> </eventmerge> </mergehandling> </mergerconfig>

Os fragmentos sem o atributo AT_INTERNAL_EVENT_MERGE_MODE são mesclados usando o método de merge baseado em chave. Os fragmentos com o valor de atributo

SORTMERGE_ID são mesclados com base na ordem de classificação, de acordo com o

atributo de função AT_ID. Os fragmentos com o valor de atributo SORTMEGRE_DATE são mesclados com base na ordem de classificação, de acordo com o atributo de função

No documento ARIS PROCESS PERFORMANCE MANAGER (páginas 31-38)