Auslesen des letzten Änderungsbeleges mehrerer Tabellenfelder

Informationen zu Änderungsbelegen werden in den Änderungsbelegtabellen CDHDR (Änderungsbelegkopf) und CDPOS (Änderungsbelegpositionen) gespeichert. Das Auslesen solcher Informationen ist mittels einer geeigneten Konfiguration der jeweiligen Datentabelle (XML-Element table) möglich. Dazu ist die Klasse com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.
ZChangeDocTableNew_sap2ppm zu verwenden.

Beispiel (Auszug aus der Tabellenkonfiguration, allgemeines Dateigerüst)

Eine Konfiguration mit Bedingungen, die in einem table-Element angegeben werden müssen, könnte bspw. folgendermaßen aussehen:

...

<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="<Feld, das in TABKEY verwendet wird>"

fktablename="<Fremdschlüsseltabelle, aus

der das Feld gelesen wird>"

fkfieldname="<Fremdschlüsseltabellenfeld>"/>

... weitere Felder, die in 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. Nachfolgend sehen Sie ein konkreteres Beispiel.

Beispiel (Auszug aus einer Tabellenkonfiguration aus Configuration Package PPM4MM)

Mit der beispielhaften Konfiguration soll ausgelesen werden, wann zuletzt eines der Sperrgrundfelder der logistischen Rechnungen geändert wurde:

...

<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>

...

Ein mit dieser Beispielkonfiguration erzeugtes System-Event könnte bspw. folgendermaßen aussehen:

...

<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>

...