Extrair eventos do sistema, incluindo alterações

As informações sobre documentos de alteração das tabelas SAP CDPOS e CDHDR são armazenadas em atributos do sistema de origem especiais, de eventos do sistema que usam uma classe específica.

Os documentos de alteração são extraídos usando uma configuração adequada de uma tabela de dados. A classe com.idsscheer.ppm.xmlextractortools.extractor.
sap2ppm.ZChangeDocTable_sap2ppm é usada para extrair os documentos de alteração.

Se não houver documentos de alteração para eventos do sistema extraídos, somente os campos da tabela configurada serão transferidos como atributos do sistema de origem.

As seguintes condições devem ser especificadas na configuração da tabela de dados da qual os documentos de alteração devem ser extraídos:

<table name="..." classtouse="com.idsscheer.ppm.

xmlextractortools.extractor.sap2ppm.

ZChangeDocTable_sap2ppm">

<booleancondition>

<condition fieldname="OBJECTCLAS" ...>

...

</condition>

<condition fieldname="OBJECTID" ...>

...

</condition>

<condition fieldname="TABNAME" ...>

...

</condition>

<booleancondition logicaloperator="OR">

<condition fieldname="TABKEY" ...>

...

</condition>

<condition fieldname="TABKEY" ...>

...

</condition>

...

</booleancondition>

</booleancondition>

...

</table>

Não especifique outras condições.

A tabela a seguir exibe os atributos do sistema de origem que são criados a partir das informações extraídas do documento de alteração. CH_DOCS foi especificado como identificador da tabela de dados na configuração.

Atributo do sistema de origem

Descrição

CH_DOCS-SUM_OF_CHANGES

Número total de alterações no documento extraído (número de operações de salvamento).

CH_DOCS-FIRST_CHANGE_DATE
CH_DOCS-FIRST_CHANGE_TIME

Data da primeira alteração
Hora da primeira alteração

CH_DOCS-LAST_CHANGE_DATE
CH_DOCS-LAST_CHANGE_TIME

Data da última alteração
Hora da última alteração

CH_DOCS-CHANGE_USER_<x>

Nome do processador que criou documentos de alteração. O atributo é criado para cada processador.<x> é o número consecutivo do processador.

CH_DOCS-NUM_OF_CHANGES_USER_<x>

Número total de alterações realizadas pelo processador.<x> é o número consecutivo do processador.

Exemplo

O extrato de arquivo abaixo ilustra a configuração para extrair as alterações nas tabelas VBAK e VBAP:

<configuration name="SD_CHANGE_DOC_SUM">

<docspec>

<docreftable name="VBAK">

<condition fieldname="ERDAT#-#ERZET"

logicaloperator="creationtimestamp">

<value>yyyyMMdd</value>

<value>HHmmss</value>

</condition>

<pkfield name="VBELN" />

</docreftable>

<doctable name="VBAP">

<pkfield name="VBELN" fktablename="VBAK"

fkfieldname="VBELN"/>

<pkfield name="POSNR" />

<fieldtoread name="VBELN"/>

<fieldtoread name="POSNR"/>

<fieldtoread name="ERDAT"/>

<fieldtoread name="ERZET"/>

<fieldtoread name="ERNAM"/>

</doctable>

</docspec>

<table name="CH_DOCS" classtouse="com.idsscheer.ppm.

xmlextractortools.extractor.

sap2ppm.ZChangeDocTable_sap2ppm">

<booleancondition>

<condition fieldname="OBJECTCLAS">

<value>VERKBELEG</value>

</condition>

<condition fieldname="OBJECTID"

logicaloperator="eq_concatEventAttrValues">

<value>VBAP-VBELN</value>

</condition>

<condition fieldname="TABNAME" logicaloperator="in">

<value>VBAK</value>

<value>VBAP</value>

</condition>

<booleancondition logicaloperator="OR">

<condition fieldname="TABKEY"

logicaloperator="eq_concatEventAttrValues">

<value>CLIENT#-#</value>

<value>VBAP-VBELN#-#</value>

<value>VBAP-POSNR</value>

</condition>

<condition fieldname="TABKEY"

logicaloperator="eq_concatEventAttrValues">

<value>CLIENT#-#</value>

<value>VBAP-VBELN</value>

</condition>

</booleancondition>

</booleancondition>

<pkfield name="VBELN" fktablename="VBAP"

fkfieldname="VBELN"/>

<pkfield name="POSNR" fktablename="VBAP"

fkfieldname="POSNR"/>

</table>

</configuration>

O operador eq_concatEventAttrValues compara o conteúdo do campo especificado com valores de atributo combinados dos campos especificados. Os valores especificados nos elementos XML value são interpretados como identificadores dos atributos do sistema de origem já extraídos.

Nota sobre os valores dos campos OBJECTID e TABKEY

Os valores de campos individuais (<value>...</value>) são concatenados usando a cadeia de caracteres separadora especificada #-# entre os valores de campos individuais. No exemplo, os valores dos campos OBJECTID e TABKEY contêm o seguinte:

OBJECTID

Valor

Descrição

Valor de exemplo

VBAP-VBELN

O valor já extraído do campo VBELN na tabela VBAP deve corresponder como uma condição para o campo OBJECTID.

0000004972

TABKEY

Valor

Descrição

Valor de exemplo

CLIENT

Parâmetro que é substituído pelo número do cliente SAP do qual foi feita a extração.

800

VBAP-VBELN

Valor do campo extraído VBELN da tabela VBAP.

0000004972

VBAP-POSNR

Valor do campo extraído POSNRVBELN da tabela VBAP.

000020

Com base nos valores de exemplo da configuração acima, os valores concatenados 800#-#0000004972#-#000020 e 800#-#0000004972 são o resultado para o campo TABKEY (chave da linha da tabela alterada).

O extrato do arquivo de saída abaixo ilustra um possível evento de sistema:

<event>

<attribute type="CH_DOCS-CHANGE_USER_1">

sapuser

</attribute>

<attribute type="CH_DOCS-CHANGE_USER_2">

ANFEL

</attribute>

<attribute type="CH_DOCS-FIRST_CHANGE_DATE">

20030919

</attribute>

<attribute type="CH_DOCS-FIRST_CHANGE_TIME">

181020

</attribute>

<attribute type="CH_DOCS-LAST_CHANGE_DATE">

20030930

</attribute>

<attribute type="CH_DOCS-NUM_OF_CHANGES_USER_1">

1

</attribute>

<attribute type="CH_DOCS-NUM_OF_CHANGES_USER_2">

3

</attribute>

<attribute type="CH_DOCS-SUM_OF_CHANGES">

4

</attribute>

<attribute type="VBAP-ERDAT">20030919</attribute>

<attribute type="VBAP-ERNAM">ANFEL</attribute>

<attribute type="VBAP-ERZET">174938</attribute>

<attribute type="VBAP-POSNR">000010</attribute>

<attribute type="VBAP-VBELN">0000007500</attribute>

</event>