Werte eines Feldes aufsummieren

Werte eines Feldes können durch Angabe von Parametern im jeweiligen table-Element der Tabellenkonfiguration je nach Datentyp entweder ganzzahlig oder dezimal aufsummiert werden. Dazu ist eine eigene Klasse zu verwenden.

Beispiel

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE xmlextractor_tableconfiguration SYSTEM

'xmlextractor_tableconfiguration.dtd'>

<xmlextractor_tableconfiguration>

<configuration name="SUM">

<docspec>

<docreftable name="...">

...

</docreftable>

<doctable name="...">

...

</doctable>

</docspec>

<table name="VBEP"

classtouse="com.idsscheer.ppm.xmlextractortools.

extractor.sap2ppm.ZNumberOperation_sap2ppm">

<parameter name="FIELDS">

<value>BMENG</value>

<value>WMENG</value>

</parameter>

<parameter name="OPERATION">

<value>SUM_DECIMAL</value>

</parameter>

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

fkfieldname="VBELN"/>

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

fkfieldname="POSNR"/>

</table>

</configuration>

</xmlextractor_tableconfiguration>

In der Beispielkonfiguration ist festgelegt, dass jeweils für jedes der Fließkommazahl-Felder BMENG bzw. WMENG die Summe mehrerer Werte, die zu einer Verkaufsbelegposition (POSNR) eines Verkaufsbelegs (VBELN) gehören, berechnet und diese in ein neues System-Event-Attribut geschrieben wird. Der Name des neuen Attributs wird gebildet aus <tablename>-<operator><fieldname>, z.B. VBEP-SUM_DECIMALWMENG. Für die Aufsummierung von Feldwerten wird die Klasse com.idsscheer.ppm.xmlextractortools.extractor.sap2ppm.
ZNumberOperation_sap2ppm verwendet.

Zum Verkaufsbeleg 5696 existieren im SAP-System folgende Positionsnummern:

VBELN

POSNR

WMENG

BMENG

5696

10

353.000

103.000

5696

10

215.000

52.000

5696

10

127.000

313.000

5696

20

89.000

79.000

5696

20

456.000

29.000

5696

30

23.000

269.000

5696

30

87.000

159.000

5696

30

124.000

256.000

5696

30

59.000

237.000

Beim Auslesen mit der Beispielkonfiguration werden pro Positionsnummer für jedes der Felder BMENG bzw. WMENG die Dezimalsummen gebildet und folgende System-Events erzeugt:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE eventlist SYSTEM "event.dtd">

<eventlist>

<event>

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

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

<attribute type="VBEP-SUM_DECIMALBMENG">468.000</attribute>

<attribute type="VBEP-SUM_DECIMALWMENG">695.000</attribute>

</event>

<event>

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

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

<attribute type="VBEP-SUM_DECIMALBMENG">108.000</attribute>

<attribute type="VBEP-SUM_DECIMALWMENG">545.000</attribute>

</event>

<event>

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

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

<attribute type="VBEP-SUM_DECIMALBMENG">921.000</attribute>

<attribute type="VBEP-SUM_DECIMALWMENG">293.000</attribute>

</event>

</eventlist>