Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Migrated to Confluence 5.3

Allgemein

Der GenerationProvider DatasourceProvider ist eine HilfeklasseHilfsklasse, die alle notwendigen Methoden zur Ausführung eines Arbeitsschrittes (Generation) Datenquellen-Abfrage beinhaltet.

Funktionsumfang

 

MethodeBeschreibung
executerun

Diese Methode ermöglicht die Ausführung eines Arbeitsschritteseiner Datenbankabfrage. Im Methodenaufruf muss die Quelle als Instanz eines BusinessObjekts angegeben werden, das dem Klassentyp nach zum Arbeitsschritt passt. Wurde in Nuclos ein Arbeitsschritt "Erstelle Rechnung aus Auftrag" mit der Quellentität "Auftrag" und der Zielentität "Rechnung" angelegt, müssen die übergebenen Werte entsprechend typisiert sein. Als zweiter Parameter wird die vom System generierte Java-Klasse des Arbeitsschrittes angegeben, welche beim Speichern eines Arbeitsschrittes in Nuclos automatisch erzeugt wird und in der generation.jar gefunden werden kannDatenquelle aus "Report und Formular" angegeben werden.

Der Rückgabewert der Methode ist das BusinessObjekt der eben angelegten Instanzein DatasourceResult-Objekt, das die gefundenen Treffer (rows) und die abfragbaren Spalten (columns) beinhaltet.

Codeblock
public static <SDatasourceResult run(Class<? extends BusinessObject,Datasource> TdatasourceClass) extends BusinessObject> T 
            execute(S s, Class<? extends Generation<S,T>> genClassthrows BusinessException;

Für eine Datenabfrage können u.U. Parameter zur Präzisierung der Abfrage notwendig sein. In diesem Fall gibt es eine zweite run-Methode(), die eine Map mit den Werten an die Abfrage weiterleiten kann:

Codeblock
public DatasourceResult run(Class<? extends Datasource> datasourceClass, Map<String, Object> params) throws BusinessException;

 

Das DatasourceResult - Objekt stellt das Suchergebnis der Datenbankabfrage dar. Hauptbestandteile sind:

  • rows (Gefundene Zeilen/Treffer der angegebenen Datenbankabfrage; Jede Zeile wird als Object[] -Array dargestellt, wobei jedes Object in diesem Array den Inhalt der entsprechenden Spalte aufnimmt)
  • cols (Spalten vom Typ DatasourceColumn, welches die Metainformationen Spaltenname und Spalten-Datentyp beinhaltet; Jede gefundene Zeile/row besitzt die hier hinterlegten Spalten)

Die Abfrage der Ergebnisse basiert auf folgendem Prinzip: Iteriert werden die Ergebnisse mittels getRow(Zeilenindex). Jede Zeile wird als Object[] Array zurückgeliefert. Möchte man auf einen bestimmten Spaltenwert in diesem Object[] typisiert zugreifen, erhält man mittels Aufruf getColumns().get(Spaltenindex) die Metainformation der gewünschten Spalte und kann den Wert getRow(Zeilenindex)[Spaltenindex] dem Klassentyp entsprechend casten oder mit dem Spaltennamen beschriften.

Ein Beispiel finden Sie hier.