As informações acerca dos documentos de alteração são armazenadas nas tabelas do documento de alteração CDHDR (cabeçalho do documento de alteração) e CDPOS (elementos do documento de alteração). Esta informação pode ser extraída executando a configuração correspondente para a tabela de dados relevante (elemento XML table). Use a classe com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.
ZChangeDocTableNew_sap2ppm para esse efeito.
Exemplo (extrato da configuração da tabela, estrutura geral do arquivo)
Uma configuração com condições que têm de ser especificadas em um elemento table poderia ter a seguinte aparência:
...
<table name="tablename" classtouse="com.idsscheer.ppm.
xmlextractortools.extractor.sap2ppm.
ZChangeDocTableNew_sap2ppm">
<booleancondition>
<condition fieldname="OBJECTCLAS" logicaloperator="...">
...
</condition>
<condition fieldname="OBJECTID" logicaloperator="...">
...
</condition>
<condition fieldname="TABNAME" logicaloperator="...">
...
</condition>
<condition fieldname="TABKEY" logicaloperator="...">
...
</condition>
<condition fieldname="FNAME" logicaloperator="in">
...
</condition>
</booleancondition>
<pkfield name="OBJECTCLAS"/>
<pkfield name="OBJECTID"/>
<pkfield name="CHANGENR"/>
<pkfield name="TABNAME"/>
<pkfield name="TABKEY"/>
<pkfield name="FNAME"/>
<pkfield name="CHNGIND"/>
<pkfield name="<Campo que é usado em TABKEY>"
fktablename="<Tabela de chave estrangeira, da qual
o campo é extraído>"
fkfieldname="<Campo da tabela de chave estrangeira>"/>
... Outros campos usados em TABKEY
<fieldtoread name="CDPOS-VALUE_OLD"/>
... Outros campos da tabela CDPOS
<fieldtoread name="CDHDR-UDATE"/>
... Outros campos da tabela CDHDR
</table>
...
A combinação de valores especificados nos campos OBJECTID e TABKEY é a mesma que para com.idsscheer.ppm.xmlextractortools.extractor.
sap2ppm.ZChangeDocTable_sap2ppm class. Abaixo é exibido um exemplo mais concreto.
Exemplo (extrato de uma configuração da tabela do pacote de configuração PPM4MM)
A configuração de exemplo destina-se a extrair a hora na qual um dos campos dos motivos de bloqueio de faturas logísticas foi alterado:
...
<table name="CDPOS" classtouse="com.idsscheer.ppm.
xmlextractortools.extractor.sap2ppm.
ZChangeDocTableNew_sap2ppm">
<booleancondition>
<condition fieldname="OBJECTCLAS" logicaloperator="eq">
<value>INCOMINGINVOICE</value>
</condition>
<condition fieldname="OBJECTID"
logicaloperator="eq_concatEventAttrValues">
<value>RSEG-BELNR#-#RSEG-GJAHR</value>
</condition>
<condition fieldname="TABNAME" logicaloperator="eq">
<value>RSEG</value>
</condition>
<condition fieldname="TABKEY"
logicaloperator="eq_concatEventAttrValues">
<value> #-#RSEG-BELNR#-#
RSEG-GJAHR#-#RSEG-BUZEI</value>
</condition>
<condition fieldname="FNAME" logicaloperator="in">
<value>SPGRP</value>
<value>SPGRM</value>
<value>SPGRT</value>
<value>SPGRG</value>
<value>SPGRV</value>
<value>SPGRQ</value>
<value>SPGRS</value>
<value>SPGRC</value>
</condition>
</booleancondition>
<pkfield name="OBJECTCLAS"/>
<pkfield name="OBJECTID"/>
<pkfield name="CHANGENR"/>
<pkfield name="TABNAME"/>
<pkfield name="TABKEY"/>
<pkfield name="FNAME"/>
<pkfield name="CHNGIND"/>
<pkfield name="BELNR" fktablename="RSEG"
fkfieldname="BELNR"/>
<pkfield name="GJAHR" fktablename="RSEG"
fkfieldname="GJAHR"/>
<pkfield name="BUZEI" fktablename="RSEG"
fkfieldname="BUZEI"/>
</table>
...
Um evento de sistema gerado com essa configuração de exemplo poderia ter a seguinte aparência:
...
<event>
<attribute type="CDPOS-CHANGE_USER_1">HUETT</attribute>
<attribute type="CDPOS-FIRST_CHANGE_DATE">20010220
</attribute>
<attribute type="CDPOS-FIRST_CHANGE_TIME">154943
</attribute>
<attribute type="CDPOS-LAST_CHANGE_DATE">20010220
</attribute>
<attribute type="CDPOS-LAST_CHANGE_TIME">154943
</attribute>
<attribute type="CDPOS-NUM_OF_CHANGES_USER_1">1
</attribute>
<attribute type="CDPOS-SUM_OF_CHANGES">1</attribute>
...
<event>
...