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>