System-Events inkl. Änderungen auslesen

Informationen zu Änderungsbelegen aus den SAP-Tabellen CDPOS und CDHDR werden in speziellen Quellsystemattributen von System-Events unter Verwendung einer besonderen Klasse gespeichert.

Änderungsbelege werden durch eine geeignete Konfiguration einer Datentabelle ausgelesen. Zum Lesen der Änderungsbelege wird die Klasse com.idsscheer.ppm.xmlextractortools.
extractor.sap2ppm.ZChangeDocTable_sap2ppm verwendet.

Wenn es zu einem gelesenen System-Event keine Änderungsbelege gibt, werden nur die konfigurierten Tabellenfelder als Quellsystemattribute übernommen.

In der Konfiguration der Datentabelle, aus der die Änderungsbelege gelesen werden sollen, müssen folgende Bedingungen angegeben werden:

<table name="..." classtouse="com.idsscheer.ppm.

xmlextractortools.extractor.sap2ppm.

ZChangeDocTable_sap2ppm">

<booleancondition>

<condition fieldname="OBJECTCLAS" ...>

...

</condition>

<condition fieldname="OBJECTID" ...>

...

</condition>

<condition fieldname="TABNAME" ...>

...

</condition>

<booleancondition logicaloperator="OR">

<condition fieldname="TABKEY" ...>

...

</condition>

<condition fieldname="TABKEY" ...>

...

</condition>

...

</booleancondition>

</booleancondition>

...

</table>

Andere Bedingungen dürfen nicht angegeben werden.

Die folgende Tabelle zeigt die Quellsystemattribute, die aus gelesenen Änderungsbeleginformationen erzeugt werden. Als Identifizierer der Datentabelle wurde in der Konfiguration CH_DOCS angegeben.

Quellsystemattribut

Bezeichnung

CH_DOCS-SUM_OF_CHANGES

Gesamtanzahl der Änderungen des gelesenen Belegs (Anzahl der Speichervorgänge).

CH_DOCS-FIRST_CHANGE_DATE
CH_DOCS-FIRST_CHANGE_TIME

Datum der ersten Änderung
Uhrzeit der ersten Änderung

CH_DOCS-LAST_CHANGE_DATE
CH_DOCS-LAST_CHANGE_TIME

Datum der letzten Änderung
Uhrzeit der letzten Änderung

CH_DOCS-CHANGE_USER_<x>

Name des Bearbeiters, der Änderungsbelege erzeugt hat. Das Attribut wird für jeden Bearbeiter erzeugt. <x> ist die laufende Nummer des Bearbeiters.

CH_DOCS-NUM_OF_CHANGES_USER_<x>

Gesamtanzahl der Änderungen, die der Bearbeiter durchgeführt hat. <x> ist die laufende Nummer des Bearbeiters.

Beispiel

Der gezeigte Dateiauszug veranschaulicht die Konfiguration zum Auslesen der Änderungen der Tabellen VBAK und VBAP:

<configuration name="SD_CHANGE_DOC_SUM">

<docspec>

<docreftable name="VBAK">

<condition fieldname="ERDAT#-#ERZET"

logicaloperator="creationtimestamp">

<value>yyyyMMdd</value>

<value>HHmmss</value>

</condition>

<pkfield name="VBELN" />

</docreftable>

<doctable name="VBAP">

<pkfield name="VBELN" fktablename="VBAK"

fkfieldname="VBELN"/>

<pkfield name="POSNR" />

<fieldtoread name="VBELN"/>

<fieldtoread name="POSNR"/>

<fieldtoread name="ERDAT"/>

<fieldtoread name="ERZET"/>

<fieldtoread name="ERNAM"/>

</doctable>

</docspec>

<table name="CH_DOCS" classtouse="com.idsscheer.ppm.

xmlextractortools.extractor.

sap2ppm.ZChangeDocTable_sap2ppm">

<booleancondition>

<condition fieldname="OBJECTCLAS">

<value>VERKBELEG</value>

</condition>

<condition fieldname="OBJECTID"

logicaloperator="eq_concatEventAttrValues">

<value>VBAP-VBELN</value>

</condition>

<condition fieldname="TABNAME" logicaloperator="in">

<value>VBAK</value>

<value>VBAP</value>

</condition>

<booleancondition logicaloperator="OR">

<condition fieldname="TABKEY"

logicaloperator="eq_concatEventAttrValues">

<value>MANDANT#-#</value>

<value>VBAP-VBELN#-#</value>

<value>VBAP-POSNR</value>

</condition>

<condition fieldname="TABKEY"

logicaloperator="eq_concatEventAttrValues">

<value>MANDANT#-#</value>

<value>VBAP-VBELN</value>

</condition>

</booleancondition>

</booleancondition>

<pkfield name="VBELN" fktablename="VBAP"

fkfieldname="VBELN"/>

<pkfield name="POSNR" fktablename="VBAP"

fkfieldname="POSNR"/>

</table>

</configuration>

Der Operator eq_concatEventAttrValues vergleicht den Inhalt des angegebenen Feldes mit zusammengesetzten Attributwerten der angegebenen Felder. Dabei werden die in den XML-Elementen value angegebenen Werte als Identifizierer bereits gelesener Quellsystemattribute interpretiert.

Hinweis zu den Wertzusammensetzungen der Felder OBJECTID und TABKEY

Die Konkatenation der einzelnen Feldwerte (<value>...</value>) erfolgt mittels der angegebenen Trennzeichenkette #-# zwischen den einzelnen Feldwerten. Die Zusammensetzung der Wertangaben der Felder OBJECTID und TABKEY ist im Beispiel wie folgt:

OBJECTID

Wertangabe

Bezeichnung

Beispielwert

VBAP-VBELN

Die Übereinstimmung mit dem bereits gelesenen Wert des Feldes VBELN der Tabelle VBAP wird als Bedingung für das Feld OBJECTID festgelegt.

0000004972

TABKEY

Wertangabe

Bezeichnung

Beispielwert

MANDANT

Parameter, der durch die Nummer des SAP-Mandanten, aus welchem ausgelesen wird, ersetzt wird

800

VBAP-VBELN

Wert des bereits gelesenen Feldes VBELN der Tabelle VBAP

0000004972

VBAP-POSNR

Wert des bereits gelesenen Feldes POSNR der Tabelle VBAP

000020

Für das Feld TABKEY (Key der geänderten Tabellenzeile) ergibt sich auf Basis der Beispielwerte gemäß obiger Konfiguration zum einen der konkatenierte Wert 800#-#0000004972#-#000020 und zum anderen 800#-#0000004972.

Der folgende Auszug aus der Ausgabedatei zeigt ein mögliches System-Event:

<event>

<attribute type="CH_DOCS-CHANGE_USER_1">

sapuser

</attribute>

<attribute type="CH_DOCS-CHANGE_USER_2">

ANFEL

</attribute>

<attribute type="CH_DOCS-FIRST_CHANGE_DATE">

20030919

</attribute>

<attribute type="CH_DOCS-FIRST_CHANGE_TIME">

181020

</attribute>

<attribute type="CH_DOCS-LAST_CHANGE_DATE">

20030930

</attribute>

<attribute type="CH_DOCS-NUM_OF_CHANGES_USER_1">

1

</attribute>

<attribute type="CH_DOCS-NUM_OF_CHANGES_USER_2">

3

</attribute>

<attribute type="CH_DOCS-SUM_OF_CHANGES">

4

</attribute>

<attribute type="VBAP-ERDAT">20030919</attribute>

<attribute type="VBAP-ERNAM">ANFEL</attribute>

<attribute type="VBAP-ERZET">174938</attribute>

<attribute type="VBAP-POSNR">000010</attribute>

<attribute type="VBAP-VBELN">0000007500</attribute>

</event>