CIB merge technischer Leitfaden

6. Aufrufparameter im Detail

6.25. Parameter --directory-write

Der Befehl --directory-write=<virtueller Dateiname>=<Dateiname> schreibt den Inhalt von <virtueller Dateiname> aus dem virtuellen Verzeichnis in die Datei <Dateiname>. Etwa angegebene Schalter +/-/! usw. werden nicht in den Namen übernommen.


Syntax
--directory-write=<virtueller Dateiname>=<Dateiname>

Beispiele
--directory-set=out=out.log
--directory-write=out.log=!out.log

Die virtuelle Datei mit dem Namen out.log wird genommen und der Inhalt in out.log geschrieben

 

  • Gegenüberstellung: dateibehaftete und dateilose Dateneingabe

Ausgehend von einem klassischen dateibehafteten Beispiel werden Alternativen mit den eben genannten Mitteln vorgestellt.

Die Ausgabe des RTF kann dateilos mit in anderen Dokumenten beschriebenen Mitteln erfolgen und wird hier nicht erwähnt!


  • Java Mischauftrag (Merge-Job) und Abholung des Fehlertextes und der Fehlernummer

Dateneingabe mit Datei:

Die daten.csv soll in die Eingabe input.rtf gemischt werden. Die Ausgabe heißt output.rtf. Fehler kommen in merge.log. Alle Dateien befinden sich im Dateisystem unter Verzeichnis test. 

JCibMergeJob t_Job = new JCibMergeJob();
t_Job.initialize();
t_Job.setProperty(ICibMergeJob.PROPERTY_WORKSPACE, "test\\");
t_Job.setProperty(ICibMergeJob.PROPERTY_ERRORFILE, "merge.log");
t_Job.setProperty(ICibMergeJob.PROPERTY_DATAFILE, "daten.csv");
t_Job.setProperty(ICibMergeJob.PROPERTY_INPUTFILE, "input.rtf");
t_Job.setProperty(ICibMergeJob.PROPERTY_OUTPUTFILE, "output.rtf");
t_Job.execute();
int error =
((Integer)t_Job.getProperty(ICibMergeJob.PROPERTY_ERROR)).intValue();
if(error > 0)
{
String errortext = (String)t_Job.getProperty(ICibMergeJob.PROPERTY_ERRORTEXT);
}

Dateneingabe ohne Datei:

Nur daten.csv soll im ersten Schritt dateilos übergeben werden. Der Inhalt sei in der String Variable csv_data. Hierfür wird folgende zusätzliche Property gesetzt. (Der Rest bleibt unverändert)

t_Job.setProperty(ICibMergeJob.PROPERTY_DICTIONARY_SET, "daten.csv=" + csv_data);

 

  • Mischauftrag über Parameterdatei (Java, C++ oder COModSuite)

Dateneingabe mit Datei:

Inhalt der Datei merge.par:

-L!merge.log
-V
-Ddaten.csv
-Iinput.rtf
-O!output.rtf
-M@
-@1
-MEnde

Logdatei bestimmen

Version melden

Daten-, Ein- und Ausgabedateien bestimmen

Dateinamen melden

Einzeldokument mischen

Rufen Sie „cibmrg32.exe -@merge.par“ auf, um den Auftrag zu starten.

 

Dateneingabe ohne Datei:

Analog zum Fall in Java ist das in der Parameterdatei auch möglich:

Die Parameterdatei merge.par muss um folgende Angabe ergänzt werden (Rest bleibt unverändert)

--dictionary-set-inline=daten.csv
Var1;Var2;Var3…
Wert1.1;Wert1.2;Wert1.3… Wert2.1;Wert2.2;Wert2.3… … end-of-file

 

  • Auftrag aus C++

Dateneingabe mit Datei:

const char *const arguments[]=
{     
      „cibmerge“, 
      „-L!merge.log“, 
      „-Ddaten.csv“, 
      „-Iinput.rtf“, 
      „-O!output.rtf“,
      0
};
cibmerge(sizeof(arguments)/sizeof(*arguments) – 1, arguments);

 

Dateneingabe ohne Datei:

Hier werden die Daten in Stringkonstanten übergeben. Eine bessere Möglichkeit wäre es, sie über stringstreams der STL dynamisch zusammenzustellen:

Die Argumente müssen um folgende Angabe erweitert werden (Rest bleibt unverändert):

       „--dictionary-set=daten.csv\n“
       „Var1;Var2;Var3…\n“
       „Wert1.1;Wert1.2;Wert1.3…\n“
       „Wert2.1;Wert2.2;Wert2.3…\n“
       „…\n“