É possível usar uma classe de extração especial para extrair tabelas que contém células com pares de chaves/valor. Um novo atributo de evento é criado para cada chave extraída de um evento.
O exemplo a seguir mostra uma tabela no sistema de origem que contém atributos de valor de chave referentes a um evento.
Tabela "WF_ITEMS" (tabela de eventos do sistema, cabeçalho da tabela para itens de trabalho)
ID (chave) |
TYPE |
TEXT |
CREATOR |
STAT |
… |
---|---|---|---|---|---|
000000532657 |
F |
Crie uma justificativa para o ajuste do benefício do empregado 00001448 devido a qualquer evento. |
Criando uma justificativa de ajuste devido a um evento... |
COMPLETED |
… |
… |
… |
… |
… |
… |
… |
Para cada um desses elementos de trabalho (ou seja, para cada linha da tabela "WF_ITEMS"), há atributos arbitrários armazenados na tabela "WF_ITEM_ATTRIBUTES" como chave/valor:
Tabela "WF_ITEM_ATTRIBUTES"
ID (chave) |
ATTRIBUTE (chave) |
VALUE |
… |
---|---|---|---|
000000532657 |
DATEOFVALIDITY |
20020101 |
… |
000000532657 |
EMPLOYEENUMBER |
00001448 |
… |
000000532657 |
EVENT |
CREATED |
… |
000000532657 |
OBJECTTYPE |
FAMILY |
… |
000000532657 |
_WF_INITIATOR |
USWF-BATCH |
… |
000000532657 |
_WF_PRIORITY |
5 |
… |
… |
… |
… |
… |
Classe de extração
com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.ZTableKeyValueFieldsToAttributes_sap2ppm
Essa classe de extração cria um novo atributo para o evento do sistema de origem a partir de cada valor de chave encontrado, e o valor se torna o valor do atributo. Para essa classe, é necessário especificar os nomes da coluna de chave e valor como parâmetros separados por "#-#".
Todos os campos de chave e valor devem ser especificados como campos a serem lidos (elemento XML fieldtoread). Não são permitidos campos adicionais para serem lidos.
A seguinte configuração se refere à classe de extração JDBC mencionada acima:
O seguinte exemplo de evento foi lido com a configuração acima:
<event>
<attribute type="WF_ITEMS-ID">000000532656</attribute>
<attribute type="WF_ITEMS-CREATOR">Criando uma justificativa de ajuste devido a um evento...</attribute>
<attribute type="WF_ITEMS-STAT">COMPLETED</attribute>
<attribute type="WF_ITEMS-TEXT">Crie uma justificativa para o ajuste do benefício do empregado 00001448 devido a qualquer evento.</attribute>
<attribute type="WF_ITEMS-TYPE">F</attribute>
‘ <attribute type="WF_ITEM_ATTRIBUTES-DATEOFVALIDITY ">20020101</attribute>
<attribute type="WF_ITEM_ATTRIBUTES-EMPLOYEENUMBER ">00001448</attribute>
<attribute type="WF_ITEM_ATTRIBUTES-EVENT ">CREATED</attribute>
<attribute type="WF_ITEM_ATTRIBUTES-OBJECTTYPE ">FAMILY</attribute>
<attribute type="WF_ITEM_ATTRIBUTES-_WF_INITIATOR ">USJOSWIGT</attribute>
<attribute type="WF_ITEM_ATTRIBUTES-_WF_PRIORITY ">5</attribute>
</event>
Caracteres especiais nas chaves
Os valores das colunas de chave são usados no atributo XML tipo dos elementos XML atributo. Esses valores podem conter caracteres que não podem ser usados nesse atributo XML. Por isso, os valores do atributo tipo do elemento XML atributo são verificados em relação à presença de caracteres XML inválidos, e esses caracteres são filtrados, se necessário.