com.basecmp.core.usecasesteps.miscellaneous
Class CsvExport

java.lang.Object
  extended byBaseCmpUsecaseStep
      extended bycom.basecmp.core.usecasesteps.miscellaneous.CsvExport

public class CsvExport
extends BaseCmpUsecaseStep

Führt ein SQL-Statement aus und exportiert die Daten des Resultset in eine CSV-Datei.

Das Statement wird aus den Config-Keys CONFIG_KEY_SELECT_COLUMNS, CONFIG_KEY_SELECT_TABLESund optional CONFIG_KEY_WHERE_CLAUSEzusammengesetzt. Die SQL-Schlüsselwörter "select", "from" und "where", werden intern erzeugt und dürfen nicht mit angegeben werden. Die Erzeugung der Statement ist durch folgende Codezeile definiert: String sql = "select " + selectColumns + " from " + selectTable + " where " + whereClause; Fehlt einer der beiden Werte wird der Fehlerausgang benutzt und die Variable ExportOk als Usecase-Attribute auf false gesetzt. Konnten beide Werte gelesen werden, wird versucht das zusammengesetzte SQL-Statement an die Datenbank abzusetzen. Im Fehlerfall wird der Fehlerausgang benutzt und die Variable ExportOk als Usecase-Attribute auf false gesetzt. Wenn das Statement erfolgreich abgesetzt werden konnte, wird das Resultset iteriert und dabei jeder Datensatz als CSV-Zeile in eine Datei geschrieben. Der Name der Datei wird als Konfiguartionswert unter dem Variablennamen CONFIG_KEY_FILENAMEerwartet. zusätzlich kann eine Konfigurationsvariable aus basecmp_sytem.properties als Pfad in CONFIG_KEY_CONFIG_PATHNAMEangegeben werden. Die exportierten Datensätze können mit dem aktuellen Datum markiert werden. Um dieses Feature zu aktivieren muss der Wert CONFIG_KEY_MARK_EXPORTEDauf true gesetzt sein. Ist MarkEported auf true gesetzt, wird mit den Werten aus CONFIG_KEY_MARKING_TABLE, CONFIG_KEY_MARKING_COLUMNund CONFIG_KEY_MARK_EXPORTED_WHERE_CLAUSEein Update-Statement gebildet, welches mit die gewünschte Spalte der Datensätze mit dem aktuellen Datum -NOW()- setzt. Die Spalte muss ein Datumsfeld sein! Das Update-Statement bildet sich wie folgt: String sqlMarkExported = "update " + markExportedUpdateTable + " set " + markExportedUpdateColumn + "=NOW() where " + markExportedWhereClause; Da das Update-Statement nur einmal ausgeführt wird und nicht pro exportiertem Datensatz, muss das Update-Statement mit der Menge des Select-Statements korrelieren, d.h. die gleichen Datensätze in der Where-Clause auswählen! Um eine Headline in der CSV-Datei zu erzeugen, kann der Parameter FirstCsvLine benutzt werden. Der Inhalt von FirstCsvLine wird -wenn vorhanden- als erstes in die CSV-Datei geschrieben. Erwartete Konfiguartionswerte:

Erzeugte Request-Attribute: Created on 12.01.2004

See Also:
Serialized Form
Author:
Wolfgang Schröder

Field Summary
static java.lang.String CONFIG_KEY_APPEND_DATE_SUFFIX
           
static java.lang.String CONFIG_KEY_CONFIG_PATHNAME
           
static java.lang.String CONFIG_KEY_CSV_DEFINITION_LINE
           
static java.lang.String CONFIG_KEY_FILENAME
           
static java.lang.String CONFIG_KEY_MARK_EXPORTED
           
static java.lang.String CONFIG_KEY_MARK_EXPORTED_WHERE_CLAUSE
           
static java.lang.String CONFIG_KEY_MARKING_COLUMN
           
static java.lang.String CONFIG_KEY_MARKING_TABLE
           
static java.lang.String CONFIG_KEY_SELECT_COLUMNS
           
static java.lang.String CONFIG_KEY_SELECT_TABLES
           
static java.lang.String CONFIG_KEY_WHERE_CLAUSE
           
 
Constructor Summary
CsvExport()
           
 
Method Summary
 void execute(UsecaseContext uc, int unlockKey)
           
protected  void initStep(java.lang.Integer stepId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONFIG_KEY_APPEND_DATE_SUFFIX

public static final java.lang.String CONFIG_KEY_APPEND_DATE_SUFFIX
See Also:
Constant Field Values

CONFIG_KEY_CONFIG_PATHNAME

public static final java.lang.String CONFIG_KEY_CONFIG_PATHNAME
See Also:
Constant Field Values

CONFIG_KEY_CSV_DEFINITION_LINE

public static final java.lang.String CONFIG_KEY_CSV_DEFINITION_LINE
See Also:
Constant Field Values

CONFIG_KEY_FILENAME

public static final java.lang.String CONFIG_KEY_FILENAME
See Also:
Constant Field Values

CONFIG_KEY_MARK_EXPORTED

public static final java.lang.String CONFIG_KEY_MARK_EXPORTED
See Also:
Constant Field Values

CONFIG_KEY_MARK_EXPORTED_WHERE_CLAUSE

public static final java.lang.String CONFIG_KEY_MARK_EXPORTED_WHERE_CLAUSE
See Also:
Constant Field Values

CONFIG_KEY_MARKING_COLUMN

public static final java.lang.String CONFIG_KEY_MARKING_COLUMN
See Also:
Constant Field Values

CONFIG_KEY_MARKING_TABLE

public static final java.lang.String CONFIG_KEY_MARKING_TABLE
See Also:
Constant Field Values

CONFIG_KEY_SELECT_COLUMNS

public static final java.lang.String CONFIG_KEY_SELECT_COLUMNS
See Also:
Constant Field Values

CONFIG_KEY_SELECT_TABLES

public static final java.lang.String CONFIG_KEY_SELECT_TABLES
See Also:
Constant Field Values

CONFIG_KEY_WHERE_CLAUSE

public static final java.lang.String CONFIG_KEY_WHERE_CLAUSE
See Also:
Constant Field Values
Constructor Detail

CsvExport

public CsvExport()
Method Detail

execute

public void execute(UsecaseContext uc,
                    int unlockKey)
             throws java.lang.Exception
Throws:
java.lang.Exception

initStep

protected void initStep(java.lang.Integer stepId)


Copyright © 2004 by basecmp® - Professional Web Solutions