Serienbriefe

Mit Con-form können Sie Daten aus Adabas-Dateien extrahieren, d.h. automatisch Dokumente erstellen, die die extrahierten Daten enthalten. Dazu müssen Sie ein Natural-Programm schreiben, das das Statement COMPOSE benutzt (siehe Natural-Dokumentation).

Dieses Dokument beschreibt die folgenden Themen:


Das Statement COMPOSE

Das folgende Beispiel zeigt eine von mehreren Möglichkeiten einen Serienbrief anzulegen. Es wird angenommen, dass Sie mit Con-nect auf einem Mainframe arbeiten (siehe Con-nect Benutzerhandbuch, Abschnitte über Prozeduren und Dokumente).

Um einen Serienbrief zu erstellen, können Sie folgendermaßen vorgehen:

  1. Schreiben Sie ein Natural-Programm, das Daten aus der Datenbank liest. Dieses Programm muss den Namen der Adabas-Datei sowie die Namen der Felder enthalten, die aus dieser Datei benutzt werden. Es muss außerdem das Statement COMPOSE ASSIGNING enthalten, wie z.B.:

    COMPOSE ASSIGNING
        'ANREDE' = ANREDE
        'NAME' = NACHNAME
        'STRASSE' = STRASSE
        'STADT' = WOHNORT

    Die ASSIGNING-Klausel weist den Con-form-Variablen, die in Ihrem Dokument vorkommen, Werte zu. Die Operanden links vom Gleichheitszeichen (in Apostrophe eingeschlossen) sind die Variablennamen, die Sie in Ihrem Dokument verwenden. Die Operanden rechts vom Gleichheitszeichen sind die Felder, die aus der Adabas-Datei extrahiert werden.

  2. Legen Sie in Con-nect mit der Befehlsfolge "Dokument EINGEBEN" ein Dokument an. Dies ist das Skelett für Ihren Serienbrief. Es enthält den Text und die Variablen, die mit den Daten aus der Adabas-Datei ersetzt werden sollen.

    .LM 0;.RM 60
    &anrede &name
    &strasse
    &stadt
    .SL
    Sehr geehrte/r &anrede &name.,
    .SL
    .LM 0;.RM 60
    Ihr Abonnement unseres Magazins läuft bald aus.
    Wenn Sie nun handeln und das Abonnement um ein weiteres Jahr
    verlängern, bieten wir Ihnen einen Rabatt von 40% - Sie sparen
    DM 38,00 !
    .GRUSS

    Anmerkung:
    Das Makro .GRUSS im obigen Beispiel wurde im Formatierprofil FPROFILE definiert.

  3. Benutzen Sie die Befehlsfolge "Prozedur EINGEBEN", um das Natural-Programm in Con-nect zu definieren.

  4. Benutzen Sie die Befehlsfolge "Dokument dokumentname INFO", um die Prozedur mit dem Con-nect-Dokument zu verknüpfen. Definieren Sie die Prozedur als Versorgungsprozedur.

  5. FORMATIEREN Sie das Dokument.

    Vorsicht:
    Wenn Sie den Befehl FORMATIEREN in Con-nect benutzen, darf die Prozedur keine COMPOSE-Statements mit anderen Klauseln als ASSIGNING oder EXTRACTING enthalten.

Den Serienbrief testen

Das folgende Beispiel für einen Serienbrief liefert verschiedene Ergebnisse, je nachdem, ob der Empfänger weiblich oder männlich ist. Das Beispiel zeigt auch den Vorteil der Anweisung .SV. Diese Anweisung ist hilfreich, wenn Sie testen möchten, ob der Serienbrief wie gewünscht aussieht, bevor Sie die Variablen mit Daten aus der Datenbank ersetzen lassen.

.LM 0;.RM 60
.FI ON;.JU ON
.SV geschlecht=W
.SV geehrt=geehrte
.SV anrede=Frau
.SV name=Schmitt
.SV strasse=Bergstr. 99
.SV stadt=22220 Bergheim
.SV magname=NATURWUNDER
.** Die oben definierten Variablen sind hilfreich, wenn Sie testen
.** möchten, ob der Serienbrief richtig ausgegeben wird. Um die
.** Variablen mit Daten aus der Datenbank zu ersetzen, müssen Sie
.** ein Natural-Programm schreiben, das das Statement COMPOSE benutzt.
.** Wenn Sie die Variablen mit Daten aus der Datenbank ersetzen
.** wollen, müssen Sie die obigen .SV-Anweisungen löschen.
.IF &geschlecht = M
.TH
.SV magneu=SPORT-MAGAZIN
.SV text1=Höhepunkte der Olympiade
.SV text2=Neues über die Medaillengewinner
.SV durchwahl=334450
.EL
.SV magneu=UMWELT & GESUNDHEIT
.SV text1=Neueste Erkenntnisse aus der Ernährungsforschung
.SV text2=Rezepte für Vegetarier
.SV durchwahl=334451
.EI
&anrede &name.$
&strasse.$
&stadt.$
.SL 3
.RA ON
&$DA.. &$MG &$CN.&$YE
.RA OFF
.SL 3
Sehr &geehrt &anrede &name.,
.SL
Ihr Abonnement des Magazins &magname läuft demnächst aus. Wenn Sie
nun handeln und das Abonnement um ein weiteres Jahr verlängern,
erhalten Sie einen Rabatt von 40% - Sie sparen 38,00 DM!
Lassen Sie sich dieses Angebot nicht entgehen!
.SL
Außerdem möchten wir Ihnen unser neuestes Magazin &magneu vorstellen,
das folgende Themen behandelt: &text1 und &text2..
Wenn Sie an &magneu interessiert sind, füllen Sie einfach den
beigefügten Bestellschein aus oder rufen Sie gebührenfrei an unter
101-202-&durchwahl..
.SL
Mit freundlichen Grüßen
.SL 4
J. Becker$
Vertriebsleiter

Die formatierte Ausgabe sieht folgendermaßen aus:

Beispiel für Serienbrief

Wenn die Variablen "geschlecht", "geehrt" und "anrede" aus dem obigen Con-form-Dokument die folgenden Werte enthalten, sieht die formatierte Ausgabe anders aus:

.SV geschlecht=M
.SV geehrt=geehrter
.SV anrede=Herr

In diesem Fall sieht die formatierte Ausgabe folgendermaßen aus:

Beispiel für Serienbrief

Dialog-Modus für Eingabe

Dieser Modus erlaubt die Interaktion zwischen einem Natural-Programm und einem Textformatiersystem beim Formatieren der Eingabedaten. Ein Natural-Programm ist somit in der Lage, Rohtext an Con-form zu übergeben.

.TE - Terminal-Eingabe

.TE ON
.TE OFF

Die Anweisung .TE kann nur zusammen mit dem COMPOSE-Statement von Natural verwendet werden.

.TE ON wird im Con-form-Dokument definiert. Diese Anweisung unterbricht den Formatierprozess und aktiviert die Texteingabe vom Terminal.

.TE OFF wird im Natural-Programm definiert, mit dem Statement COMPOSE MOVING. Diese Anweisung stoppt die Texteingabe vom Terminal, und Con-form macht weiter mit dem Formatierprozess.

Ein Beispiel für den Dialog-Modus für die Eingabe finden Sie in der Natural-Dokumentation bei der Beschreibung des COMPOSE-Statements.