Unterstützte Natural-Merkmale

In diesem Kapitel wird beschrieben, welche Natural-Funktionen und -Merkmale von Natural Advanced Facilities unterstützt werden und wie Sie diese benutzen können.


DEFINE PRINTER Statement

Das Statement DEFINE PRINTER wird verwendet, um einer Report-Nummer einen symbolischen Namen zuzuordnen und um die Zuordnung eines Reports zu einem logischen Ziel (Destination, d.h. Drucker) zu steuern.

Anmerkung:
Das Statement DEFINE PRINTER ist in der Natural-Statements-Dokumentation ausführlich beschrieben. Im vorliegenden Abschnitt werden nur die Klauseln beschrieben, die für Natural Advanced Facilities gelten.

Dieser Abschnitt enthält außerdem Informationen zum Thema Gemischte Reports unter Verwendung von DEFINE PRINTER (siehe unten).

Die folgende Syntax des DEFINE PRINTER-Statements für NAF unterscheidet sich von der allgemeinen DEFINE PRINTER-Syntax, weil nicht alle Schlüsselwörter zutreffen:

DEFINE PRINTER ([logical-printer-name = ]n )
[OUTPUToperand1 ]

PROFILE operand2
DISP operand3
COPIESoperand3
PRTYoperand4

   
 
../graphics/dot3.gif 4

logical-printer-name ist der Name, der dem Drucker n zugewiesen werden soll. Dies ist der Name, der für die rep-Notation in einem DISPLAY- oder WRITE-Statement verwendet wird. Der Wert für n kann im Bereich von 1 bis 31 liegen.

Der Operand OUTPUT ist das Ziel (Destination) innerhalb des Online-Spooling-Systems und ist ein logischer Drucker (LPF). Dieser logische Drucker muss in der Spool-Datei definiert sein (siehe Funktion 31.2), muss aber nicht Teil des derzeit aktiven Benutzerprofils sein.

Mit der PROFILE-Klausel geben Sie als operand2 den Namen einer Druckersteuerzeichentabelle an, wie sie im NTCC-Makro oder in der Spool-Datei definiert ist (siehe NTCC-Tabelle, Funktion 31.8).

Bei der DISP-Klausel sind die möglichen Werte für operand2 DEL, HOLD und KEEP. Wenn die DISP-Klausel weggelassen wird, wird die für den logischen Drucker angegebene Disposition verwendet.

Mit der COPIES-Klausel geben Sie die Anzahl der zu druckenden Exemplare an. Die möglichen Werte für operand3 sind 1 bis 255. Wenn die COPIES-Klausel weggelassen wird, wird die für den logischen Drucker angegebene Anzahl von Exemplaren verwendet.

Mit der PRTY-Klausel geben Sie die Priorität für den Spool-Out an. Die möglichen Werte für operand4 sind 1 bis 255 (wobei 1 für die niedrigste und 255 für die höchste Priorität steht). Wenn die PRTY-Klausel weggelassen wird, wird die für den logischen Drucker angegebene Priorität verwendet.

Im Allgemeinen verwendet Natural Advanced Facilities die logischen Druckerdefinitionen im physischen Hauptspeicher (nicht die in der Spool-Datei). Es sind zwei verschiedene Situationen zu unterscheiden:

  • Der angeforderte logische Drucker ist im aktiven Benutzerprofil enthalten.

  • Der angeforderte logische Drucker ist nicht im aktiven Benutzerprofil enthalten.

Wenn ein DEFINE PRINTER-Statement für Drucker n einen logischen Drucker anfordert, der im aktiven Benutzerprofil enthalten ist (siehe Beispiel 1 unten), werden die logischen Druckerdefinitionen im Speicher nicht überschrieben. Ein nachfolgendes Natural-Programm wird daher dieselben logischen Druckerdefinitionen antreffen. Die logischen Druckerdefinitionen sind so lange gültig, bis ein anderes DEFINE PRINTER-Statement veranlasst, dass sie überschrieben werden.

Wenn ein DEFINE PRINTER-Statement für Drucker n einen logischen Drucker anfordert, der nicht im aktiven Benutzerprofil enthalten ist (siehe Beispiel 2 unten), wird die n--te logische Druckerdefinition im Speicher durch die angeforderte überschrieben. Ein nachfolgendes Natural-Programm wird auf geänderte logische Druckerdefinitionen stoßen, die durch das vorherige DEFINE PRINTER-Statement festgelegt wurden (weil davon ausgegangen wird, dass die geänderten logischen Druckerdefinitionen auch von nachfolgenden Natural-Programmen verwendet werden sollen).

Die folgenden Beispiele zeigen, wie das Statement DEFINE PRINTER funktioniert.

Beispiel 1 - Logischer Drucker ist im aktiven Benutzerprofil enthalten:

DEFINE PRINTER (2) OUTPUT 'LPF1'
...
...
WRITE (2) 'text'
...
WRITE (1) 'different text'
... 

Wenn das obige Natural-Programm ausgeführt wird, wird die Ausgabe des WRITE (2)-Statement unter Verwendung der Definitionen von LPF1 gespoolt. Das Statement WRITE (1) verwendet standardmäßig LPF1, da es kein Statement DEFINE PRINTER (1) gibt. Daher verwenden sowohl das WRITE (1)- als auch das WRITE (2)-Statement denselben logischen Drucker.

Wenn ein nachfolgendes Natural-Programm ein WRITE (2)-Statement ausführt und das Programm kein DEFINE PRINTER (2)-Statement enthält, wird die Ausgabe unter Verwendung der Definitionen von LPF2 gespoolt.

Beispiel 2 - Logischer Drucker ist nicht im aktiven Benutzerprofil enthalten:

Wenn der OUTPUT-Operand des DEFINE PRINTER-Statement nicht mit einem der logischen Druckernamen im aktiven Benutzerprofil identisch ist, werden die Werte für das Druckerprofil mit den im OUTPUT-Operanden angegebenen neuen Werten überschrieben.

...
DEFINE PRINTER (2) OUTPUT 'LPF9'
...

Der Operand OUTPUT des obigen DEFINE PRINTER-Statement bewirkt, dass die Definitionen von LPF2 mit den Werten überschrieben werden, die LPF9 zugewiesen sind, einschließlich des logischen Druckernamens. Das aktive Benutzerprofil wird wie folgt geändert:

Diese Definition bleibt für das Benutzerprofil so lange gültig, bis ein anderes DEFINE PRINTER (2)-Statement ausgeführt wird. So wird die Ausgabe aller nachfolgenden WRITE (2)-Statements innerhalb derselben Natural-Sitzung unter Verwendung der Definitionen von LPF9 gespoolt, wenn kein weiteres DEFINE PRINTER (2)-Statement ausgeführt wird.

Gemischte Reports unter Verwendung von DEFINE PRINTER

Natural-Programme müssen manchmal verschiedene Reports für denselben physischen Drucker erstellen. In diesem Fall muss auf den OUTPUT-Operanden des DEFINE PRINTER-Statement geachtet werden.

Wenn Sie DEFINE PRINTER-Statements für verschiedene logische Drucker, aber mit demselben OUTPUT-Operanden (d.h. demselben logischen Druckernamen) verwenden, wird nur ein Report erstellt. Dieser Report enthält die Ausgaben aller WRITE-, PRINT- oder DISPLAY-Anweisungen in gemischter Reihenfolge.

Beispiel:

DEFINE PRINTER (1) OUTPUT 'LPF1'     /* LPF same as in (0020)
DEFINE PRINTER (2) OUTPUT 'LPF1'     /* LPF same as in (0010)
WRITE (1) 'This is for report 1'
WRITE (2) 'This is for report 2'
WRITE (1) 'This is for report 1'
END

Wenn Sie DEFINE PRINTER-Statements für verschiedene logische Drucker und mit verschiedenen OUTPUT-Operanden (d. h. verschiedenen logischen Druckernamen) verwenden, werden mehrere Reports erstellt. Um diese Reports an denselben physischen Drucker weiterzuleiten, muss für die logischen Drucker dasselbe Ziel/Formular angegeben werden.

Beispiel:

DEFINE PRINTER (1) OUTPUT 'LPF1'     /* LPF different from (0020)
DEFINE PRINTER (2) OUTPUT 'LPF2'     /* LPF different from (0010)
WRITE (1) 'This is for report 1'
WRITE (2) 'This is for report 2'
WRITE (1) 'This is for report 1'
END

Texte mittels Con-form hervorheben

Sie können alle gedruckten Reports oder Teile davon hervorheben., indem Sie mit Con-form-Anweisungen benutzen, z.B. während einer Con-nect-Session.

Folgende Con-form-Anweisungen werden unterstützt:

Anweisung Beschreibung
.BF Die Textzeilen zwischen zwei .BF-Anweisungen werden fett gedruckt.
.BP Der in der nächsten Eingabezeile enthaltene Text wird fett gedruckt.
.US Der in der nächsten Eingabezeile enthaltene Text wird unterstrichen.
char B Rückschritt zur Überlagerung eines Zeichens durch ein anderes.
char U1... char U0 Text zwischen den Symbolen U1 und U0 wird unterstrichen.
char M1... char M0 Text zwischen den Symbolen M1 und M0 wird fett gedruckt.

Dabei steht char für ein beliebiges Sonderzeichen, das unter Verwendung der folgenden Con-form-Anweisung als Escape-Zeichen definiert worden ist:

.OP ESC=char

Anmerkung:
Text kann nur in Fettdruck gedruckt werden, wenn der Natural-Profileparameter INTENS (siehe Natural Parameter-Referenz-Dokumentation) auf einen Wert größer als 1 gesetzt worden ist.

Hardcopy-Funktion - %H

Wenn das Natural-Terminalkommando %H als Antwort auf eine Eingabeaufforderung abgesetzt wird, erzeugt es die Ausgabe von Natural-Reports und Dialogbildschirm-Layouts auf einem Drucker. Die Ausgabe erfolgt auf dem ersten freien (FREE) physischen Drucker, der für den definierten logischen Drucker für Hardcopy zugeordnet ist (siehe Funktionen 12, 30.5, 31.1 und 33). Das %H-Kommando ist für die aktuelle Seite wirksam und wird am Ende der Programmausgabe automatisch deaktiviert.

Wird %H bei einer durch ein INPUT-Statement erzeugten Bildschirm-Maske (Objekttyp Map) verwendet, wird der gesamte Inhalt des Seitenpuffers auf das Ausgabegerät gespoolt.

Das gleiche gilt für das Statement SET CONTROL 'H'.

FETCH- und STACK-Statements benutzen

Der NATSPOOL-Nukleus schließt die Reports, wenn Natural in den Kommandomodus zurückkehrt. Wenn ein Natural-Anwendungsprogramm ein STACK COMMAND-Statement verwendet, um ein anderes Natural-Programm zu laden, wird der Kommandomodus aktiviert und die vom aufrufenden Programm erstellten Reports werden geschlossen und entsprechend ihrem Ziel (Disposition) gedruckt (vorausgesetzt, Natural befindet sich im ET-Status, d.h. es steht kein END OF TRANSACTION-Statement des Benutzers an).

Wenn jedoch ein FETCH-Statement verwendet wird, wird intern nicht in den Kommandomodus gewechselt, und die vom aufrufenden Programm erstellten Reports werden erst geschlossen und gedruckt, wenn das aufgerufene Programm endet. Auf diese Weise können mehrere Natural-Programme an der Erstellung eines einzigen Reports beteiligt sein.

Beispiel 1 - STACK-Statement benutzen:

* PGM-1
WRITE (1) 'output from PGM-1'
STACK COMMAND 'PGM-2'
END
* PGM-2
INPUT 'something' F1 (A8) (AD=MI)
END

Wenn das Programm PGM-1 ausgeführt wird, wird der durch das WRITE (1)-Statement erstellte Report geschlossen und sofort gedruckt.

Beispiel 2 - FETCH-Statement benutzen:

* PGM-1
WRITE (1) 'output from PGM-1'
FETCH 'PGM-2'
END
* PGM-2
WRITE (1) 'output from PGM-2'
INPUT 'something' F1 (A8) (AD=MI)
END

Wenn das Programm PGM-1 ausgeführt wird, wird der mit dem Statement WRITE (1) erstellte Report nicht sofort gedruckt. Wenn das INPUT-Statement im Programm PGM-2 ausgeführt wird, hat der Report den Status LOAD (der Report ist noch nicht geschlossen). Der Report wird erst nach Beendigung von PGM-2 geschlossen und gedruckt. Die von PGM-2 erzeugte Ausgabe wird in denselben Report geschrieben wie die Ausgabe von PGM-1.

ET/BT-Logik

Der NATSPOOL-Nukleus versucht nur dann, ein Adabas-ET-Kommando für einen bestimmten Report zu erteilen, wenn die Schließen-Anforderung (Close) ausgeführt wird. Die Schließen-Anforderung wird ausgeführt, wenn Natural (intern) in den Kommandomodus zurückkehrt oder wenn ein CLOSE PRINTER-Statement ausgeführt wird. Zu diesem Zeitpunkt wird geprüft, ob sich Natural im ET-Status befindet, d.h. ob ein END OF TRANSACTION-Statement des Benutzers anhängig ist. Der NATSPOOL-Nukleus gibt nur dann ein ET-Kommando aus, wenn Natural im ET-Status ist (wenn kein Benutzer-ET ansteht). Dadurch wird sichergestellt, dass die Reports vollständig in der Spool-Datei gespeichert werden und dass die Logik der Benutzertransaktionen nicht beeinträchtigt wird.

Besondere Aufmerksamkeit muss der Reihenfolge der Statements END OF TRANSACTION und CLOSE PRINTER (rep) gewidmet werden, wie in den Beispielen 6 bis 8 unten gezeigt wird.

Bei der Erstellung von langen Reports in einer Adabas-Spool-Datei muss das Transaktionszeitlimit für ET-Logik-Benutzer (Parameter ADARUN TT) entsprechend definiert sein. Wenn das Zeitlimit überschritten wird, wird der Report aus der Spool-Datei zurückgezogen.

Die Größe der Hold-Warteschlange (Parameter ADARUN NH) muss ausreichend sein, um den Rückmeldecode 145 (HOLD QUEUE OVERFLOW) während der Erstellung eines Reports zu verhindern.

Der Datenschutzbereich (Parameter ADARUN LP) muss groß genug sein, um Rückmeldecode 9 zu verhindern.

Beispiel 1:

READ (1) PERSONNEL BY NAME
  UPDATE ...
    WRITE (1) 'string'
  END OF TRANSACTION
END

Die Datei PERSONNEL wird aktualisiert, und der Report wird gedruckt. Ein ET wird durch Natural (und nicht durch NATSPOOL) ausgegeben.

Beispiel 2:

READ (1) PERSONNEL BY NAME
  UPDATE ...
    WRITE (1) 'string-1'
  END OF TRANSACTION
    WRITE (1) 'string-2'
END

Die Datei PERSONNEL wird aktualisiert, und der Report wird gedruckt.

Das Statement END OF TRANSACTION zwingt Natural zur Ausgabe eines ET. Sobald dieser ET ausgeführt ist, wird die Datei PERSONNEL aktualisiert, die Ausgabe string-1 wird in der Spool-Datei gespeichert und der Report befindet sich im Status LOAD. Da Natural sich jetzt im Status ET befindet, gibt NATSPOOL einen weiteren ET aus, um die Ausgabe string-2 zu speichern. Der Status des Reports wird auf TOBE gesetzt.

Tritt zwischen der Ausführung von END OF TRANSACTION und dem nachfolgenden ET von NATSPOOL eine Unterbrechung auf, wird die Ausgabe string-2 aus der Spool-Datei zurückgesetzt und der Report bleibt im Status LOAD. Wenn das obige Programm kein END OF TRANSACTION hätte und die Taste CLEAR gedrückt würde, dann würde der gesamte Report zurückgesetzt werden. Dies liegt daran, dass Natural beim Drücken der CLEAR-Taste einen BT ausgibt.

Der Report kann wiederhergestellt werden (d.h. der Status TOBE kann erzwungen werden), indem der Funktionscode RC mit Funktion 10 ausgegeben wird.

Beispiel 3:

READ (1) PERSONNEL BY NAME
  UPDATE ...
  WRITE (1) 'string'
END

Die Datei PERSONNEL und der Report befinden sich im Status HOLD. Wenn der Benutzer die Taste CLEAR drückt oder die Natural-Sitzung beendet, wird der Report aus der Spool-Datei zurückgesetzt (Backout).

Es wird kein ET ausgegeben, und der Report kann weder storniert noch von einem anderen Benutzer wiederhergestellt werden.

Beispiel 4:

READ (1) PERSONNEL BY NAME
  UPDATE ...
  WRITE (1) 'string'
BACKOUT TRANSACTION
END

Die Änderung an der Datei PERSONNEL und der Report werden zurückgesetzt (Backout). Es wird kein ET ausgegeben.

Beispiel 5:

READ (1) PERSONNEL BY NAME
  WRITE (1) 'string'
END

Der Report wird gedruckt und es wird von NATSPOOL (nicht von Natural) ein ET ausgegeben.

Beispiel 6:

READ (1) PERSONNEL BY NAME
  UPDATE ...
    WRITE (1) 'string'
  END OF TRANSACTION
  CLOSE PRINTER (1)
END

Die Datei PERSONNEL wird aktualisiert und der Report wird gedruckt, sobald das CLOSE PRINTER-Statement ausgeführt wird. Es wird von Natural (nicht von NATSPOOL) ein ET ausgegeben.

Beispiel 7:

READ (1) PERSONNEL BY NAME
  UPDATE ...
    WRITE (1) 'string'
  CLOSE PRINTER (1)
  END OF TRANSACTION  /* issued too late
END

Während der Close-Verarbeitung (erzwungen durch das Statement CLOSE PRINTER) befindet sich die Datei PERSONNEL noch im Hold-Zustand. Da der Druckbeginn während der Close-Verarbeitung ausgelöst wird, wird der Report nicht gedruckt, sondern verbleibt in der Spool-Datei im Status TOLA (END OF TRANSACTION zu spät ausgegeben). Ein ET wird von Natural (nicht von NATSPOOL) ausgegeben.

Beispiel 8:

READ (1) PERSONNEL BY NAME
  UPDATE ...
    WRITE (1) 'string'
  CLOSE PRINTER (1)
END

Während der Close-Verarbeitung (erzwungen durch das Statement CLOSE PRINTER) befindet sich die Datei PERSONNEL noch in Wartestellung. Da der Druckbeginn während der Close-Verarbeitung ausgelöst wird, wird der Report nicht gedruckt, sondern verbleibt in der Spool-Datei im Status "nicht geschlossen, Transaktionsende fehlt" (NOCL = not closed, END OF TRANSACTION missing).

Es wird kein ET ausgegeben, und der Report kann weder storniert noch von einem anderen Benutzer wiederhergestellt werden.

Wiederherstellung nach abnormaler Beendigung

Wenn der TP-Monitor während des NATSPOOL-Druckvorgangs abnormal beendet wird, geht der Report nicht verloren. Der Report verbleibt mit Status ONPR in der Spool-Datei.

Nach einem Neustart des TP-Monitors kann der Report wiederhergestellt werden, indem der Funktionscode RC mit der Funktion 10 abgesetzt wird. Dadurch wird der Report-Status TOBE erzwungen. Danach kann der Drucker neu gestartet werden, um den Report zu drucken.

Batch-Utilities NSPOBAT, SPPBATPR und SPPPRINT

Diese Utility-Module dienen zum Lesen der Spool-Datei und zum Drucken von Reports im Batch-Modus. Die Module sind als SPPBATPR, NSPOBAT und SPPPRINT in der Natural-System-Library SYSPOOL katalogisiert.

Nachfolgend finden Sie Informationen über:

NSPOBAT

Reports, die mit NSPOBAT gedruckt werden, werden, ähnlich wie in Funktion 10 (Reports/Queues), nach ihrer Ziel-/Formularidentifikation ausgewählt.

Alle Reports, die mit Disposition D, K oder H ausgewählt wurden, werden so oft gedruckt, wie bei der Erstellung des Reports angefordert wurde. Reports mit anderen Dispositionen werden nicht gedruckt.

Um nach Beendigung des Druckjobs alle Reports mit Disposition D oder H aus der Spool-Datei zu löschen, geben Sie als letzten Parameter PURGE an. Reports mit anderen Dispositionen werden nicht gelöscht.

SPPBATPR

Reports, die mit SPPBATPR gedruckt werden, werden, ähnlich wie in Funktion 10 (Reports/Queues), nach ihrer Ziel-/Formularidentifikation ausgewählt.

Alle Reports, die mit Disposition D oder K ausgewählt wurden, werden so oft gedruckt, wie bei der Erstellung des Reports angefordert wurde.

Um nach Beendigung des Druckjobs alle Reports mit Disposition D oder H aus der Spool-Datei zu löschen, geben Sie als letzten Parameter PURGE an.

SPPPRINT

Mit SPPPRINT gedruckte Reports werden nach Ziel/Formular, Disposition, Benutzerkennung und nach der Anzahl der Tage (Alter in Tagen) oder dem Erstellungsdatum ausgewählt.

Die Anzahl der Tage bestimmt, dass alle Reports gedruckt werden, die die Anzahl der Tage überschreiten, die als Speicherlimit für die Spool-Datei angegeben ist.

Das Erstellungsdatum bestimmt, dass alle Reports gedruckt werden, deren Erstellungsdatum vor dem definierten Datum liegt.

Alle ausgewählten Reports werden so oft gedruckt, wie bei der Erstellung des Reports angegeben.

Um alle Reports nach Beendigung des Druckjobs aus der Spool-Datei zu löschen, geben Sie PURGE als letzten Parameter an.

Beispiel - Formular A und ROOM*

Im folgenden Beispiel werden aus der Spool-Datei alle Reports mit Formular A und einer Zielangabe (Destination) beginnend mit ROOM gedruckt.

Beispiel - Batch-Ausführung unter z/OS:

//SPPBATPR  JOB SPPBATPR,CLASS=G,MSGCLASS=X
//LIST      EXEC PGM=NATBATCH,PARM='IM=F,FSPOOL=(,XXX)'
//STEPLIB   DD   DSN=NATURAL.V41.LOAD,DISP=SHR
//          DD   DSN=ADABAS.V61.LOAD,DISP=SHR
//DDCARD    DD   DSN=NATURAL.V41.SOURCE(ADAPARM),DISP=SHR
//CMPRINT   DD   SYSOUT=X
//CMPRT01   DD   SYSOUT=X
//CMSYNIN   DD   *
LOGON SYSPOOL
SPPBATPR DESTINATION=ROOM*,FORM=A
FIN
/*

Beispiel - Batch-Ausführung unter z/VSE:

// JOB SPPBATPR
// OPTION PARTDUMP
// ASSGN SYS010,SYSLST
// ASSGN SYS000,SYSRDR
// EXEC NATBATCH,PARM='SYSRDR'
IM=F,FSPOOL=(XXX,XXX)
/*
ADARUN SVC=XXX,DA=XXX,DEVICE=XXX,MODE=MULTI
/*
LOGON SYSPOOL
SPPBATPR DESTINATION=ROOM*,FORM=A
FIN
/*
/&

Beispiel - Batch-Ausführung unter BS2000:

Anmerkung:
Der Forms-Modus muss IM=F sein.

/.SPPBATPR LOGON
/SYSFILE SYSOUT=LST.SPPBATPR
/EXEC NATB41
LOGON SYSPOOL
SPPBATPR DESTINATION=ROOM*,FORM=A
FIN
/LOGOFF

Löschen ohne Printout

Wenn Sie Reports unter Verwendung von NSPOBAT, SPPBATPR oder SPPPRINT löschen möchten, ohne sie zu drucken, können Sie zu DUMMY zuweisen. In z/VSE müssen Sie eine Dummy-Zuweisung für SYSLST (//ASSGN SYSLST,IGN) vornehmen.

Beispiel 1:

LOGON SYSPOOL 
SPPBATPR DESTINATION=xxxxxxxx,FORM=y,PURGE=PURGE 
FIN

Alle Reports mit Ziel (Destination) xxxxxxxx und Formular y werden nach erfolgtem Druck aus der Spool-Datei gelöscht.

Beispiel 2:

Alle Reports aus der Spool-Datei werden gedruckt und nach erfolgtem Druck aus der Spool-Datei gelöscht.

LOGON SYSPOOL
SPPBATPR DESTINATION=*,FORM=*,PURGE=PURGE
FIN

Spezielle User-Exits

USPINIT

Nach dem Start des Programms MENU in der Library SYSPOOL wird dieses Unterprogramm aufgerufen. Mit diesem Unterprogramm können Sie Ihre eigenen Einstellungen, Berechtigungen usw. festlegen. Die Einstellungen für die Meldungszeile (%M) und die PF-Tastenzeile (%Y) dürfen Sie nicht verändern.

USPEXIT

Nach Beendigung der SYSPOOL-Anwendung wird dieses Unterprogramm aufgerufen. Sie können dieses Unterprogramm zur Steuerung Ihres Umfeldes verwenden.

USPSER01

Dieses Unterprogramm wird vom Spool-Server während einer Natural-Session verwendet. Es erhält die Kontrolle, bevor ein Block an den Drucker gesendet wird. Die gelieferte Source enthält alle Parameterinformationen. Wenn Sie Daten in diesem Unterprogramm ändern, werden die geänderten Daten ungeprüft an den Drucker gesendet.

Wenn Ihr Drucker einen anderen User-Exit benötigt, können Sie mit den mit USPSER01 gelieferten Parameterinformationen ein User-Exit-Unterprogramm schreiben, das Ihren Anforderungen entspricht, und es in der Natural-System-Library SYSPRINT katalogisieren. Um den User-Exit dem Drucker zuzuweisen, verwenden Sie die Funktion 31.4. Dort tragen den Namen des User-Exit-Unterprogramms in das Feld Server-Exit ein. Ihr User-Exit übernimmt dann die Kontrolle, bevor ein Block an den Drucker gesendet wird.

Weitere Einzelheiten finden Sie unter Funktion 31.4 (Printer) im Abschnitt Objekte - Funktion 31.

Lade- und Entladeprogramme SPPULDUS und SPPLODUS

Mit dem Programm SPPULDUS kann der Natural-Administrator Objekte (Benutzerprofile, logische Drucker, physische Drucker usw.) aus einer Spool-Datei in die Arbeitsdatei (Work File) 3 entladen. SPPULDUS wird in der Library SYSPOOL ausgeliefert.

Die folgenden Funktionscodes stehen bei SPPULDUS zur Verfügung:

Code Beschreibung
1 Benutzerprofil entladen.
2 Logischen Drucker entladen.
3 Zuordnungstabelle entladen.
4 Physischen Drucker entladen.
5 Deckblätter entladen.
6 Anwendung entladen.
7 Cluster entladen.
8 NTCC-Tabelle entladen.
9 Kalender entladen.
A Nachrichtenköpfe entladen (nur bei BS2000).
* Alle Objekte entladen.

Um Objekte aus der Arbeitsdatei (Work File) 3 in eine Spool-Datei zu laden, kann der Administrator das Programm SPPLODUS verwenden. SPPLODUS wird in der Library SYSPOOL ausgeliefert.

Im Batch-Modus kann SPPLODUS außerdem verwendet werden, um Objekte aus einer vom Benutzer erstellten Arbeitsdatei, die zu CMWKF03 zugewiesen ist, in eine Spool-Datei zu laden. Um mehrere Objekte im Batch-Modus zu ändern, entladen Sie zunächst die Objekte mit SPPULDUS in diese Arbeitsdatei, ändern dann die Objekte mit einem beliebigen Bearbeitungs-/Änderungswerkzeug und laden schließlich die Objekte mit SPPLODUS zurück. Informationen zum Layout der entladenen Objekte finden Sie in der Online-Hilfe von Natural Advanced Facilities (wählen Sie im Hilfe-Menü Funktion 99 und dann Funktion 1).

Anmerkung:
Beim Ausführen von SPPLODUS muss keiner der oben aufgeführten Funktionscodes angegeben werden.

Beispiel - SPPULDUS bei Funktionscode * unter z/OS:

//SPPULDUS  JOB  CLASS=K,MSGCLASS=X
//SPPULDUS  EXEC PGM=NAT41OBT,REGION=2000K,PARM='FSPOOL=(XXX,XXX),IM=D'
//STEPLIB   DD   DSN=NATURAL.V41.LOAD,DISP=SHR
//          DD   DSN=ADABAS.V61.LOAD,DISP=SHR
//DDCARD    DD   DSN=NATURAL.V41.SOURCE(ADAPARM),DISP=SHR
//CMPRINT   DD   SYSOUT=X
//CMWKF03   DD   DSN=NAF41.UNLOAD,DISP=SHR
//CMSYNIN   DD   *
LOGON SYSPOOL
SPPULDUS
*
.
FIN

Beispiel - SPPULDUS bei Funktionscode * unter z/VSE:

// JOB SPPULDUS
// OPTION LOG
// ASSGN SYSLST,00E
// EXEC PROG=ADAV61LB
// EXEC PROG=ALL41LB
// ASSGN SYS000,READER
// EXEC NATBATCH,SIZE=NATBATCH,PARM='SYSRDR'
FSPOOL=(XXX,XXX),IM=D
/*
ADARUN DA=XXX,SVC=XXX,TNAE=XXX,TT=XXX
/*
LOGON SYSPOOL
SPPULDUS
*
.
FIN
/*
/&

The Beispiel-Job zur Ausführung von SPPULDUS bewirkt folgende Ausgabe:

NEXT LOGON SYSPOOL
LOGON ACCEPTED TO LIBRARY SYSPOOL
NEXT SPPULDUS
  
DATA *
UNLOADED USER PROFILES            :               17
UNLOADED LOGICAL PRINTERS         :               33
UNLOADED ALLOCATIONS              :              101
UNLOADED PHYSICAL PRINTERS        :               48
UNLOADED EJECT CONTROLS           :               51
UNLOADED MESSAGE HEADERS          :                2
  
DATA .
NEXT FIN
NAT9995 Natural-Session TERMINATED NORMALLY

Beispiel - SPPULDUS bei Funktionscode * unter BS2000:

/.ULDUS LOGON
/REMARK *******************************
/REMARK *** Unload Spool File       ***
/REMARK *******************************
/SYSFILE SYSLST=LI.LST.ULDUS
/SYSFILE SYSOUT=LI.OUT.ULDUS
/FILE DA,UNLOAD,LINK=W03
/SETSW ON=2
/SYSFILE SYSIPT=(SYSCMD)
/SYSFILE SYSDTA=(SYSCMD)
/EXEC NAT41B
AUTO=ON,ETID=' '
/EOF
LOGON SYSPOOL
SPPULDUS
*
.
FIN
/SYSFILE SYSLST=(PRIMARY)
/SYSFILE SYSOUT=(PRIMARY)
/LOGOFF NOSPOOL

Beispiel - SPPLODUS unter z/OS, z/VSE und BS2000:

.
.
.
LOGON SYSPOOL
SPPLODUS
FIN
.
.
.