Extrair o documento da última alteração de vários campos de tabela

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>

...