Auslesen der ersten bzw. letzten Zeile einer Sortierung

Die zu verwendende Java-Klasse com.idsscheer.ppm.xmlextractortools.extractor.jdbc2ppm. Zeilenumbruch
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 Zeilenumbruch

'jdbc_tableconfiguration.dtd'>

<jdbc_tableconfiguration>

<configuration name="SortWithInteger">

<docspec>

<doctable name="AUFTRAGSKOPF">

<pkfield name="NUMMER"/>

</doctable>

</docspec>

<table name="POSITIONSBETRAG_MAX" Zeilenumbruch

tablename="AUFTRAGSPOSITION" Zeilenumbruch

classtouse="com.idsscheer.ppm.xmlextractortools. Zeilenumbruch

extractor.jdbc2ppm. Zeilenumbruch

ZSortWithInteger_jdbc2ppm">

<parameter name="SORTCRITERION">

<value>BETRAG</value>

</parameter>

<parameter name="USE">

<value>MAX</value>

</parameter>

<pkfield name="NUMMER" fktablename="AUFTRAGSKOPF" Zeilenumbruch

fkfieldname="NUMMER"/>

<fieldtoread name="POSITION"/>

<fieldtoread name="BETRAG"/>

</table>

<table name="POSITIONSBETRAG_MIN" Zeilenumbruch

tablename="AUFTRAGSPOSITION" Zeilenumbruch

classtouse="com.idsscheer.ppm.xmlextractortools. Zeilenumbruch

extractor.jdbc2ppm. Zeilenumbruch

ZSortWithInteger_jdbc2ppm">

<parameter name="SORTCRITERION">

<value>BETRAG</value>

</parameter>

<parameter name="USE">

<value>MIN</value>

</parameter>

<pkfield name="NUMMER" fktablename="AUFTRAGSKOPF" Zeilenumbruch

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="..." Zeilenumbruch

classtouse="com.idsscheer.ppm.xmlextractortools. Zeilenumbruch

extractor.jdbc2ppm. Zeilenumbruch

ZSortWithInteger_jdbc2ppm">

<parameter name="SORTCRITERION">

<value>...</value>

</parameter>

<parameter name="USE">

<value>...</value>

</parameter>

...

Siehe Kap. 

JDBC-Tabellenkonfiguration

...

</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
(optional)

Tabelle, aus der Informationen gelesen werden sollen. Standardwert: Wert aus XML-Attribut name

classtouse

com.idsscheer.ppm.xmlextractortools.
extractor. jdbc2ppm.ZSortWithInteger_jdbc2ppm:

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:
MIN (es wird der Datensatz mit dem kleinsten Integer-Wert des Sortierkriteriums gewählt)
MAX (es wird der Datensatz mit dem größten Integer-Wert des Sortierkriteriums gewählt)

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.