FAQ

Site: CIB eLearning
Course: CIB merge
Book: FAQ
Printed by: Guest user
Date: Tuesday, 15 June 2021, 2:51 PM

1. Gibt es Möglichkeiten einen ganzen RTF "Ordner" mit einem Auftrag zu optimieren?

Einen ausführlichen Leitfaden zur Rohtextoptimierung finden Sie hier.

In diesem Leitfaden wird auch die Optimierung eines ganzen Verzeichnisses mit CIB merge als ausführbare Datei, als Library oder mit der Comod Suite eingehend behandelt.

Hinweis: Verwenden Sie unbedingt die gleiche CIB merge Version und dasselbe Betriebssystem wie im Produktiveinsatz Ihres Projekts.


2. Wenn ich {IF (PAGE}{NUMPAGES} "Seite {PAGE} von {NUMPAGES}" ""} in ein RTF einbaue, funktioniert es mit Word, mit CIB Merge wird die Bedingung aber nicht korrekt ausgewertet und ist immer unwahr.

WENN Anweisungen etc. werden von der CIB Merge Komponente verarbeitet. Diese nimmt derzeit jedoch keine Formatierung des Textes vor, so dass Berechnungen mit Feldern, die erst zum Formatierungszeitpunkt (Druck, Konvertierung) endgültig bekannt sind (z.B. (Gesamt)seiten(an)zahl, Druckdatum), derzeit nicht möglich sind.

Wenn Sie mit Ihrer Anweisung steuern wollen, dass z.B. auf der letzten Seite eines Dokumentes eine Fusszeile nicht erscheinen soll, dann fügen Sie am Schluß ein Dokument ein, das eine leere Fusszeile enthält.


3. Wie kann ich Anführungszeichen in CSV-Feldinhalten und in WENN-Feldern eines Dokumentbausteins verwenden?

In CSV Feldinhalten, die in Anführungszeichen geklammert angeliefert werden, müssen Anführungszeichen die zum Inhalt gehören "doppelt maskiert" werden.

Der Feldinhalt
...;"ein ""tolles"" Haus";...
ergibt also im Dokument die Ausgabe
ein "tolles" Haus
.

Wollen Sie in Ihren Dokumentenbausteinen Anführungszeichen im DANN- oder SONST-Teil einer Bedingung verwenden? Diese müssen Sie mit Backslash maskieren:
So ergibt also
{ WENN {REF toll} = "TRUE " "ein \"tolles\" Haus" "ein normales Haus"}
für A=TRUE im Dokument
ein "tolles" Haus.

4. CIB merge macht anscheinend Probleme bei großen Datenmengen. Es verbraucht immer mehr Speicher und macht das System "dicht".

Dieses Verhalten ist höchstwahrscheinlich auf ihren verwendeten Text zurückzuführen. Dort sind vermutlich einige Felder mit

\* FORMATVERBINDEN

oder

\* MERGEFORMAT

versehen. Dadurch "denkt" merge, daß das Feldergebnis erst aufgesammelt werden muß, um anschließend den Schalter anzuwenden. Dies belastet die Performance unnötig.

Entfernt man den Schalter des Feldes, dann weiß merge, dass sobald Textteile berechnet sind, diese auch ausgegeben werden können. Merge macht dann intern ein "update_and_write" statt "update", Schalter anwenden und dann erst "write".

Achten sie bei Änderungen an der Formatierung in Word darauf, dass die von Word unter gewissen Umständen automatisch hinzugefügten Schalter

\* FORMATVERBINDEN

oder 

\* MERGEFORMAT

wieder manuell entfernt werden.

*) je nach Wordversion werden die Schalter deutsch oder englisch angezeigt.


5. Gibt es eine Möglichkeit, in CIB merge Tabellen auch spaltenweise dynamisch zu vergrößern?

Spalten haben in Word immer ein feste Breite und Tabellen immer eine feste Spaltenanzahl. Einzelne Spalten können nicht dynamisch hinzugefügt werden, Sie können die Dynamik aber durch einen "Tausch" der gesamten Tabelle erreichen:

  1. Bereiten Sie für Ihre verschiedenen Fälle jeweils einen Baustein mit einer entsprechenden Tabelle vor (Tabelle1.rtf mit einer Spalte, Tabelle2.rtf mit zwei Spalten ...)
  2. und geben Sie per CSV Feld "Spaltenanzahl" die Anzahl der Spalten an:
    Unknown macro: {EINFÜGENTEXT "Tabelle Unknown macro} .rtf"}

Dadurch vermeiden Sie komplizierte WENN Abfragen für das Einfügen dieser Tabellen.


6. Tipp: Schleifen im Rohtext: NÄCHSTER DEF statt Multi-CSV

Diesmal ein Tipp für fortgeschrittene RTF-Anwender die CIB merge mit Multi-CSV Dateien nutzen, weil Sie viele dynamische Tabellen verarbeiten

Sie können mitten in einem RTF-Text einem bestehenden Aliasnamen eine neue CSV-Datei zuordnen oder einen neuen Alias definieren. Benutzen Sie dazu im RTF-Dokument die Anweisung

 {NÄCHSTER “DEF:Aliasname}

zum Beispiel

{NÄCHSTER “DEF:Person;X:\\Daten\\Personal.csv\}

. Die CSV-Datei können Sie dann selbstverständlich wieder per REF-Anweisung dynamisch hinzufügen. Das kann beispielsweise dann so aussehen:

{NÄCHSTER“DEF:Personal;{REF Dateiname}}

, oder mit einer weiteren Indirektion:

{NÄCHSTER “DEF:Personal;{ REF Datenpfad}Personal_{REF Abteilungsnummer }.csv}

Der große Vorteil dabei ist: Die einzelnen CSV-Dateien müssen beim Schreiben der Multi-CSV Datei noch nicht bekannt sein. Die Zuordnung im Dokument ist noch flexibler und erhöht die Dynamik um eine weitere Stufe. Sie sparen sich eventuell die Multi-CSV Datei völlig. Für diejenigen, die an der Grenze der von CIB merge akzeptierten Anzahl geöffneter Dateien waren: Verwenden Sie wie in der obigen von der Abteilungsnummer abhängigen Personaldatei stets den gleichen Alias. So wird immer nur eine Datei geöffnet (das macht natürlich nur Sinn, wenn die CSV-Dateien dem gleichen Zweck dienen).


7. Wie kann ich die Fehlerausgabe in CIB merge steuern?

Neuer Parameterschalter für CIB merge: Die individuell einstellbare Fehlerausgabe

Als Entwickler von Textbausteinen und Rohtexten kennen Sie die Fehlerdokumentation von CIB merge. Jeder Fehler, der beim Mischen der Textbausteine und Daten entsteht, wird akribisch in einem Logbuch, der Fehlerausgabedatei, eingetragen. So kommt es beispielsweise beim erstellen komplexerer Texte schon mal vor, dass Variablen in einer Steuerdatei fehlen. Bei Fehlern dieser Art hat CIB merge bisher automatisch den Mischvorgang abgebrochen.

Auch in sensiblen Umgebungen kann der Mischprozeß bei “kleinen Störungen sofort abgebrochen werden. Dieses Verhalten des Programms ist zwar durchaus “im Sinne des Erfinders, kann aber in manchen Fällen stören und zu unnötiger Mehrarbeit führen.

Aus diesem Grund ist im neuen Release von CIB merge der Umgang mit Fehlern über einen Parameterschalter frei wählbar.

Dies wird mit dem Schalter “-B" oder “/B" für BREAK eingestellt. Es gibt dabei verschiedene Skalierungsmöglichkeiten bishin zum völligen ignorieren von Fehlern, so dass Texte bis zum Ende gemischt werden und die Anwendung so unbeirrt weiter läuft und den Wert “O" für erfolgreiches Mischen zurück übergibt.

Wird der Schalter nicht gesetzt, wird wie bisher sofort bei Fehlern abgebrochen.

Der Schalter BREAK lässt darüber hinaus in folgende Stufen skalieren: “all (Standard), “loop", “doc", “par", “never" und “ok".

Bei “all" wird sofort abgebrochen. “Loop" bricht Programmschleifen ab, wenn innerhalb der Schleife ein Fehler auftritt. Diese Einstellung ist besonders wichtig um Endlosschleifen, die zum Beispiel aufgrund falscher Variablen entstehen können, zu verhindern. Falls bei Serienbriefen ein Fehler auftritt, wird mit der Einstellung “doc" nach dem aktuellen Dokument abgebrochen. So wird ein Berg fehlerhafter Briefe verhindert.

Einen Fehler bei der Parameterübergabe lässt “par nicht durchgehen und bricht die Verarbeitung weiterer Parameter aus der Parameterdatei ab. Mit der Einstellung “never" und “ok" ignoriert CIB merge sämtliche Fehler. Der Unterschied zwischen diesen beiden Einstellungen liegt im Rückgabewert. Bei “never" wird der Wert des ersten Fehlers an die CIB merge aufrufende Applikation zurückgegeben; bei “ok" wird trotz möglicherweise aufgetretener Fehlern ein erfolgreicher Mischvorgang zurück gemeldet.


8. Wie kann ich in eine RTF Datei ein Carriage Return einfügen?

Es gibt verschiedene Möglichkeiten in eine RTF Datei ein Carriage Return einzufügen:

a) Einfaches Einfügen eines Absatzes unter Word
b) Beim direkten Bearbeiten der RTF Datei heisst das Kommando \par
c) Bei Anlieferung aus einer CSV Datei muss die Übergabe 0X0D sein