Use a classe com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.
ZFirstFieldChange_sap2ppm para extrair informações sobre a primeira alteração de um campo da tabela de um sistema SAP. Especifique a classe com o atributo XML classtouse na configuração da tabela do elemento XML table.
Cálculo
Para alguns documentos do sistema SAP, existe apenas um campo para a data da última alteração. O valor inicial deste campo no primeiro documento de alteração é interpretado como a data de criação do documento. Este valor é extraído, juntamente com a classe a ser usada, das tabelas do documento de alteração CDHDR e CDPOS.
As condições para usar a classe devem ser as seguintes:
<table name="name" classtouse="com.idsscheer.ppm.
xmlextractortools.
extractor.sap2ppm.
ZFirstFieldChange_sap2ppm">
<booleancondition>
<condition fieldname="OBJECTCLAS" ...>
...
</condition>
<condition fieldname="OBJECTID" ...>
...
</condition>
<condition fieldname="TABNAME" ...>
...
</condition>
<condition fieldname="TABKEY" ...>
...
</condition>
<condition fieldname="FNAME" ...>
...
</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 na 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 (ver o capítulo Extrair eventos do sistema, incluindo alterações).
Exemplo (de uma configuração SAP)
Com essa configuração, irá extrair dados sobre quem modificou pela última vez o campo que contém o estado de aprovação das requisições de compra e quando:
<table name="ORIGINAL_ERDAT" classtouse="com.idsscheer.ppm.
xmlextractortools.extractor.sap2ppm.
ZFirstFieldChange_sap2ppm">
<booleancondition>
<condition fieldname="OBJECTCLAS" logicaloperator="eq">
<value>EINKBELEG</value>
</condition>
<condition fieldname="OBJECTID"
logicaloperator="eq_concatEventAttrValues">
<value>EKPO-EBELN</value>
</condition>
<condition fieldname="TABNAME" logicaloperator="eq">
<value>EKPO</value>
</condition>
<condition fieldname="TABKEY"
logicaloperator="eq_concatEventAttrValues">
<value>CLIENT#-#EKPO-EBELN#-#EKPO-EBELP</value>
</condition>
<condition fieldname="FNAME" logicaloperator="eq">
<value>AEDAT</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="EBELN" fktablename="EKPO"
fkfieldname="EBELN"/>
<pkfield name="EBELP" fktablename="EKPO"
fkfieldname="EBELP"/>
<fieldtoread name="CDPOS-VALUE_OLD"/>
</table>
O resultado da extração de valor com esta configuração da tabela pode ser o seguinte em um evento de sistema criado:
<event>
...
<attribute type="ORIGINAL_ERDAT-VALUE_OLD">
20010402
</attribute>
...
</event>