Die zu verwendende Java-Klasse com.idsscheer.ppm.xmlextractortools.extractor.jdbc2ppm.
ZSortWithInteger_jdbc2ppm sortiert Datensätze in einer Datentabelle mithilfe des angegebenen Sortierkriteriums
und schreibt entweder den ersten oder letzten Datensatz in die zu erzeugenden System-Events.
Die Klasse ist im Attribut classtouse des XML-Elements table anzugeben.
Beispiel
Mit der Klasse werden über Fremdschlüsselbeziehungen referenzierte Datensätze in der Tabelle AUFTRAGSPOSITION mittels eines ganzzahligen Kriteriums (Betrag der Position) sortiert. Als Sortierkriterium wird das Feld BETRAG verwendet. Aus der Sortierung wird schließlich einmal der Datensatz mit dem größten Wert des Sortierkriteriums (für POSITIONSBETRAG_MAX) und ein andermal mit dem niedrigsten Wert (für POSITIONSBETRAG_MIN) – jeweils mit der entsprechenden Positionsnummer – in die erzeugten System-Events geschrieben. Der folgende Dateiauszug veranschaulicht die Konfiguration zum Auslesen unter den o.g.Bedingungen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE jdbc_tableconfiguration SYSTEM
'jdbc_tableconfiguration.dtd'>
<jdbc_tableconfiguration>
<configuration name="SortWithInteger">
<docspec>
<doctable name="AUFTRAGSKOPF">
<pkfield name="NUMMER"/>
</doctable>
</docspec>
<table name="POSITIONSBETRAG_MAX"
tablename="AUFTRAGSPOSITION"
classtouse="com.idsscheer.ppm.xmlextractortools.
extractor.jdbc2ppm.
ZSortWithInteger_jdbc2ppm">
<parameter name="SORTCRITERION">
<value>BETRAG</value>
</parameter>
<parameter name="USE">
<value>MAX</value>
</parameter>
<pkfield name="NUMMER" fktablename="AUFTRAGSKOPF"
fkfieldname="NUMMER"/>
<fieldtoread name="POSITION"/>
<fieldtoread name="BETRAG"/>
</table>
<table name="POSITIONSBETRAG_MIN"
tablename="AUFTRAGSPOSITION"
classtouse="com.idsscheer.ppm.xmlextractortools.
extractor.jdbc2ppm.
ZSortWithInteger_jdbc2ppm">
<parameter name="SORTCRITERION">
<value>BETRAG</value>
</parameter>
<parameter name="USE">
<value>MIN</value>
</parameter>
<pkfield name="NUMMER" fktablename="AUFTRAGSKOPF"
fkfieldname="NUMMER"/>
<fieldtoread name="POSITION"/>
<fieldtoread name="BETRAG"/>
</table>
</configuration>
</jdbc_tableconfiguration>
Ein System-Event, das mit dieser Konfiguration ausgelesen wird, sieht bspw. folgendermaßen aus:
<event>
<attribute type="AUFTRAGSKOPF-NUMMER">
4711
</attribute>
<attribute type="POSITIONSBETRAG_MAX-POSITION">
20
</attribute>
<attribute type="POSITIONSBETRAG_MAX-BETRAG">
100000
</attribute>
<attribute type="POSITIONSBETRAG_MIN-POSITION">
50
</attribute>
<attribute type="POSITIONSBETRAG_MIN-BETRAG">
470
</attribute>
</event>
Die Sortierkriterien (hier Betrag) sind automatisch Bestandteil der System-Event-Spezifikation.
Die Vorlage für die Erstellung der gezeigten Konfiguration sieht folgendermaßen aus:
<table name="..." tablename="..."
classtouse="com.idsscheer.ppm.xmlextractortools.
extractor.jdbc2ppm.
ZSortWithInteger_jdbc2ppm">
<parameter name="SORTCRITERION">
<value>...</value>
</parameter>
<parameter name="USE">
<value>...</value>
</parameter>
...
Siehe Kap.
...
</table>
Folgende Tabelle zeigt noch einmal die wichtigsten Konfigurationseinträge der obigen table-Definition:
XML-Element /-Attribut |
Wert: Bezeichnung |
---|---|
name |
Angegebener Name wird den gelesenen Quellsystemattributen als Präfix vorangestellt |
tablename |
Tabelle, aus der Informationen gelesen werden sollen. Standardwert: Wert aus XML-Attribut name |
classtouse |
com.idsscheer.ppm.xmlextractortools. Zu verwendende Java-Klasse |
parameter name |
|
SORTCRITERION |
Erster anzugebender Parameter. Genau ein XML-Element value muss angegeben werden (Feldname des Sortierkriteriums). Das angegebene Feld darf nur Integer-Werte enthalten. |
USE |
Zweiter anzugebender Parameter. Genau ein XML-Element value muss angegeben werden. Zulässige Werte: Aus der auf Basis des angegebenen Sortierkriteriums ermittelten Liste von Datensätzen wird entweder der erste oder letzte Datensatz zum Auslesen gewählt. |
Setzen Sie die Klasse zum Auslesen der ersten bzw. letzten Zeile aus einer Sortierung nur begrenzt ein, da es teilweise aufgrund der Sortier- und Selektionsvorgänge zu Performance- und Speichereinbußen kommen kann.