Mit der Klasse com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.
ZFirstFieldChange_sap2ppm lesen Sie Informationen zur ersten Änderung eines Tabellenfeldes aus einem SAP-System aus. Sie geben die Klasse in der Tabellenkonfiguration im XML-Element table mit dem XML-Attribut classtouse an.
Berechnung
Für einige Belege im SAP-System gibt es nur ein Feld für das letzte Änderungsdatum. Der initiale Wert dieses Feldes im ersten Änderungsbeleg wird als Erstelldatum des Beleges interpretiert. Dieser Wert wird mit der zu verwendenden Klasse aus den Änderungsbelegtabellen CDHDR und CDPOS gelesen.
Die Bedingungen für die Verwendung der Klasse müssen folgendermaßen aussehen:
<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="<Feld, das im Tabkey verwendet wird>"
fktablename="<Fremdschlüsseltabelle, aus
der das Feld gelesen wird>"
fkfieldname="<Fremdschlüsseltabellenfeld>"/>
... Weitere Felder, die im Tabkey verwendet werden
<fieldtoread name="CDPOS-VALUE_OLD"/>
... Sonstige Felder aus der CDPOS-Tabelle
<fieldtoread name="CDHDR-UDATE"/>
... Sonstige Felder aus der CDHDR-Tabelle
</table>
Die Zusammensetzung der Wertangaben der Felder OBJECTID und TABKEY ist die Gleiche wie bei der Klasse com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.
ZChangeDocTable_sap2ppm (siehe Kapitel System-Events inkl. Änderungen auslesen).
Beispiel (für SAP-Konfiguration)
Mit dieser Konfiguration soll ausgelesen werden, wann und wer zuletzt das Feld mit dem Freigabestatus von Bestellanforderungen geändert hat:
<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>MANDANT#-#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>
Das Ergebnis der Wertextraktion mit dieser Tabellenkonfiguration könnte in einem erzeugten System-Event bspw.folgendermaßen aussehen:
<event>
...
<attribute type="ORIGINAL_ERDAT-VALUE_OLD">
20010402
</attribute>
...
</event>