DEFINE PRINTER

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

PROFILE operand2
CODEPAGE operand2
FORMS operand2
NAME operand2
DISP operand2
CLASS operand2
COPIES operand3
PRTY operand4

Dieses Dokument behandelt folgende Themen:

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Verwandte Statements: AT END OF PAGE | AT TOP OF PAGE | CLOSE PRINTER | DISPLAY | EJECT | FORMAT | NEWPAGE | PRINT | SKIP | SUSPEND IDENTICAL SUPPRESS | WRITE | WRITE TITLE | WRITE TRAILER

Gehört zur Funktionsgruppe: Erstellen von Ausgabe-Reports


Funktion

Das Statement DEFINE PRINTER dient dazu, einer Report-Nummer einen symbolischen Namen zuzuordnen und die Zuweisung eines Reports zu einem logischen Bestimmungsort (Drucker) zu steuern. Dies bietet zusätzliche Flexibilität bei der Erstellung von Ausgaben für verschiedene logische Drucker-Warteschlangen.

Ist bei der Ausführung dieses Statements der angegebene Drucker bereits offen, bewirkt dieses Statement implizit, dass der Drucker geschlossen wird. Um einen Drucker explizit zu schließen, sollten Sie das Statement CLOSE PRINTER verwenden.

Weitere Informationen zum DEFINE PRINTER-Statement, siehe Unicode- und Codepage-Unterstützung in der Natural-Programmiersprache, Abschnitt Natural-Statements.

Syntax-Beschreibung

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand1 C S       A U                       ja nein
operand2 C S       A U                       ja nein
operand3 C S           N                     ja nein
operand4 C S           N P I                 ja nein

Syntax-Element-Beschreibung:

Syntax-Element Beschreibung
(n)
Druckernummer:

Allen im Verlauf einer Session zu benutzenden Druckdateien muss im Voraus eine Zugriffsmethode zugewiesen werden, und zwar über den Subparameter AM (Typ der Zugriffsmethode) des Profilparameters PRINT oder automatisch mittels einer Definition in der JCL (nur bei Zugriffsmethode AM=STD).

Die Druckernummer n kann ein Wert im Bereich von 0 − 31 sein. Dies ist die Nummer, die auch verwendet werden soll in einem DISPLAY / WRITE oder CLOSE PRINTER-Statement.

Die Druckernummer 0 verweist auf den Hardcopy-Drucker. Einige Zugriffsmethoden unterstützen den Hardcopy-Drucker nicht, z.B. AM=PC.

logical-printer-name
Logischer Druckername:

Als Option können Sie dem Drucker n einen logischen Druckernamen logical-printer-name zuweisen. Dieser Name kann für die rep-Notation in einem DISPLAY- oder WRITE-Statement benutzt werden.

Die Namenskonventionen für logical-printer-name sind identisch mit denen für Benutzervariablen. Mehrere logische Namen können ein- und derselben Druckernummer zugewiesen werden. Im Gegensatz zum Wert des OUTPUT-Operanden (siehe unten), wird logical-printer-name zur Kompilierungszeit ausgewertet und ist deshalb unabhängig vom Programmkontrollfluss.

OUTPUT operand1
Druckername:

Als operand1 können Sie einen der folgenden Namen angeben:

  • den Druckernamen innerhalb des Online Spooling-Systems,

  • den der Druckernummer zuzuweisenden Druckdateinamen,

  • den Namen eines zusätzlichen Druckers oder

  • den Namen eines Remote-JES-Druckers.

Siehe Druckername für zusätzliche Reports und Remote-Ziele weiter unten.

Der 8−Byte lange logische Druckername kann zu Anfang über den Subparameter DEST des Profilparameters PRINT definiert werden. Sein Standardwert ist vom Typ der Zugriffsmethode abhängig und kann durch operand1 überschrieben werden.

operand1 kann 1 bis 253 Zeichen lang sein. Ist operand1 eine Variable, muss die Länge mindestens 8 Bytes betragen. Sie können entweder einen Druckernamen oder einen logischen oder physischen Dataset-Namen angeben. Das mögliche Format ist abhängig von der Betriebssystemumgebung und von der über den Subparameter AM des Profilparameters PRINT für diese Druckernummer definierten Zugriffsmethode.

Wenn der angegebene Name bereits für eine andere Druckernummer definiert ist, und dieser Drucker unbenutzt ist, d.h. den Status geschlossen hat, wird die Druckausgabe zu diesem Drucker weitergeleitet, wenn der Subparameter ROUTE=ON des Profilparameters PRINT für die spezifizierte Druckernummer angegeben wurde. Passt kein Druckername zu operand1, wird der unbenutzte Drucker mit der höchsten Nummer benutzt, und sein Name wird durch operand1 überschrieben. Die Weiterleitung des Drucks erfolgt für den Benutzer unsichtbar und kann nicht mit dem SYSFILE-Kommando angezeigt werden.

Informationen zu betriebssystemabhängigen oder TP-Monitor-abhängigen Drucker-Namenskonventionen befinden sich in folgenden Abschnitten:

  Bei den folgenden Klauseln können Sie Druckersteuer-Informationen angeben, die vom Spooling-System des TP-Monitors bzw. Betriebssystem interpretiert werden sollen. Sie können eine oder mehrere dieser Klauseln angeben, aber jede von diesen nur einmal.
PROFILE operand2
Name der Druckersteuerzeichen-Tabelle:

Bei der PROFILE-Klausel geben Sie als operand2 den Namen einer Druckersteuerzeichen-Tabelle an. Die maximal zulässige Länge für operand2 ist 8 Bytes.

Sie definieren die Druckersteuerzeichen-Tabelle über den Profilparameter CCTAB (Definition der Drucker-Umschaltzeichensequenz).

Anmerkung:
Bei Natural Advanced Facilities kann die Druckersteuerzeichen-Tabelle online gepflegt werden (wie in der Natural Advanced Facilities-Dokumentation beschrieben).

CODEPAGE operand2
Name der Codepage:

Mit CODEPAGE geben Sie als operand2 den Namen (Format/Länge: A64) einer Codepage an, wie im NATCONFG-Modul angegeben.

CODEPAGE wird ignoriert, wenn das Syntax-Element nicht für das entsprechende OUTPUT-Ausgabemedium gilt.

Spooling-Systemparameter

Bei den im Folgenden aufgeführten Klauseln können Werte für Parameter des Spooling-Systems vom TP-Monitor angegeben werden. Den Standardwert dieser Klauseln können Sie mit den entsprechenden Subparametern des Profilparameters PRINT setzen (siehe PRINT Schlüsselwortparameter für DEFINE PRINTER-Statement).

Wird ein Drucker geschlossen, werden alle Optionen auf ihre Standardwerte zurückgesetzt. Wenn die Definitionen in einer Natural-Umgebung nicht eindeutig sind, empfiehlt die Software AG, sie in jedem Modul mittels des DEFINE PRINTER-Statements zu setzen.

Syntax-Element Beschreibung
FORMS operand2
Formular:

Maximale Länge des Operanden: 8 Bytes.

Der Standardwert dieser Klausel kann mit dem Subparameter FORMS des Profilparameters PRINT gesetzt werden.

NAME operand2
Listname:

Maximale Länge des Operanden: 8 Bytes.

Der Standardwert dieser Klausel kann mit dem Subparameter NAME des Profilparameters PRINT gesetzt werden.

DISP operand2
Disposition:

Maximale Länge des Operanden: 4 Bytes.

Für die DISP-Klausel sind die möglichen Werte für operand2 DEL, HOLD, KEEP und LEAV. Der Standardwert dieser Klausel kann mit dem Subparameter DISP des Profilparameters PRINT gesetzt werden. Wenn die DISP-Klausel weggelassen wird (oder falsch angegeben wird), gilt standardmäßig DEL.

CLASS operand2
Spool-Klasse:

Maximale Länge des Operanden: 1 Byte.

Der Standardwert dieser Klausel kann mit dem Subparameter CLASS des Profilparameters PRINT gesetzt werden.

COPIES operand3
Anzahl der Kopien:

operand3 muss ein Ganzzahlwert sein. Der Standardwert dieser Klausel kann mit dem Subparameter COPIES des Profilparameters PRINT gesetzt werden.

Anmerkung:
Die Angabe in der COPIES-Klausel entspricht bei Natural Advanced Facilities der Angabe beim Attribut Duplicates. Gemeint ist in beiden Fällen die Anzahl der zu druckenden Exemplare.

PRTY operand4
Listing-Priorität:

Mögliche Werte: 1 − 255.

operand4 muss ein Ganzzahlwert sein.

Der Standardwert dieser Klausel kann mit dem Subparameter PRTY des Profilparameters PRINT gesetzt werden.

Druckername unter z/OS Batch, TSO und Server

Dieses Abschnitt behandelt folgende Themen:

Für eine mit der Zugriffsmethode AM=STD definierte Druckernummer können Sie operand1 benutzen, um einen logischen oder physischen Dataset-Namen anzugeben, der dieser Druckernummer zugewiesen werden soll.

In diesem Fall kann operand1 1 bis 253 Stellen lang sein und folgenden Wert annehmen:

  • ein logischer Dataset-Name (DD-Name, 1 bis 8 Stellen);

  • ein physischer Dataset-Name eines katalogisierten Datasets (1 bis 44 Stellen) oder ein physischer Dataset-Member-Name (1 bis 44 Stellen für den Dataset-Namen plus 1 bis 8 Stellen in Klammern für den Member-Namen);

  • ein Pfad- und Member-Name einer HFS-Datei (1 bis 253 Stellen) in einer MVS-UNIX-Services-Umgebung;

  • eine JES-Spoolfile-Klasse

  • NULLFILE (bezeichnet ein Dummy-Dataset).

Logische Dataset-Namen

Beispiel:

DEFINE PRINTER (21) OUTPUT 'SYSPRINT'

Das angegebene Dataset mit dem DD-Namen SYSPRINT muss zugewiesen worden sein, bevor das DEFINE PRINTER-Statement ausgeführt wird. Weitere Informationen entnehmen Sie dem Abschnitt Zuweisung und Freigabe von Datasets weiter unten.

Die Zuweisung kann über JCL, CLIST (TSO) oder dynamische Zuweisung (SVC 99) erfolgen. Für dynamische Zuweisung können Sie die Programmier-Schnittstelle (API) USR2021N in der Library SYSEXT verwenden.

Der in dem DEFINE PRINTER-Statement angegebene Dataset-Name überschreibt den in dem Subparameter DEST des Profilparameters PRINT angegebenen Namen.

Optional kann dem Dataset-Namen DDN= vorangestellt werden, um anzuzeigen, dass es sich um einen DD-Namen handelt, und um Namenskonflikte mit zusätzlichen Reports zu vermeiden. Zum Beispiel:

DEFINE PRINTER (22) OUTPUT 'DDN=SOURCE'

Physische Dataset-Namen

Beispiel:

DEFINE PRINTER (23) OUTPUT 'TEST.PRINT.FILE'

Das angegebene Dataset muss in katalogisierter Form vorhanden sein. Wenn das DEFINE PRINTER-Statement ausgeführt wird, wird das Dataset dynamisch über SVC 99 mit dem aktuellen DD-Namen und der JCL-Option DISP=SHR zugewiesen. Weitere Informationen entnehmen Sie dem Abschnitt Zuweisung und Freigabe von Datasets weiter unten.

Wenn der Dataset-Name 8 Stellen hat oder kürzer ist und keinen Punkt (.) enthält, könnte er fälschlich als DD-Name interpretiert werden. Um dies zu vermeiden, stellen Sie ihm DSN= voran. Zum Beispiel:

DEFINE PRINTER (22) OUTPUT 'DSN=PRINTXYZ'

Falls das Dataset ein PDS-Member ist, geben Sie den PDS-Member-Namen (1 bis 8 Stellen) in Klammern hinter dem Dataset-Namen (1 bis 44 Stellen) an. Zum Beispiel:

DEFINE PRINTER (4) OUTPUT 'TEST.PRINT.PDS(TEST1)'

Falls das angegebene Member nicht existiert, wird ein neues Member unter diesem Namen angelegt.

HFS-Datei

Beispiel:

DEFINE PRINTER (14) OUTPUT '/u/nat/rec/test.txt'

Der angegebene Pfadname muss existieren. Wenn das DEFINE PRINTER-Statement ausgeführt wird, wird die HFS-Datei dynamisch zugewiesen. Falls das angegebene Member nicht existiert, wird ein neues Member unter diesem Namen angelegt.

Bei dynamischer Zuweisung des Datasets werden folgende z/OS-Pfadoptionen verwendet:

PATHOPTS=(OCREAT,OTRUNC,ORDWR)
PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
FILEDATA=TEXT

Wird eine HFS-Datei geschlossen, wird sie automatisch von z/OS freigegeben (unabhängig vom Wert des Subparameters FREE im Profilparameter PRINT).

JES-Spoolfile-Klasse

Um ein JES-Spool-Dataset zu erzeugen, geben Sie SYSOUT=x an (wobei x die gewünschte Spoolfile-Klasse ist). Für die Standard-Spoolfile-Klasse geben Sie SYSOUT=* an.

Beispiele:

DEFINE PRINTER (10) OUTPUT 'SYSOUT=A'
DEFINE PRINTER (12) OUTPUT 'SYSOUT=*'

Um zusätzliche Parameter für die dynamische Zuweisung anzugeben, verwenden Sie statt des DEFINE PRINTER-Statements die Programmierschnittstelle (API) USR2021N in der Library SYSEXT.

NULLFILE

Um ein Dummy-Dataset zuzuweisen, geben Sie NULLFILE als operand1 an:

DEFINE PRINTER (n) OUTPUT 'NULLFILE'

Dies entspricht der JCL-Definition:

// DD-name DD DUMMY

Zuweisung und Freigabe von Datasets

Wenn das DEFINE PRINTER-Statement ausgeführt wird und ein physischer Dataset-Name, eine HFS-Datei, eine Spoolfile-Klasse oder ein Dummy-Dataset angegeben wurde, wird das entsprechende Dataset dynamisch zugewiesen. Wenn eine logische Druckdatei bereits geöffnet ist, wird sie automatisch geschlossen, außer wenn der Subparameter CLOSE=FIN des Profilparameters PRINT angegeben wurde, wobei dann ein Fehler ausgegeben wird. Außerdem wird ein bestehendes Dataset mit dem gleichen aktuellen DD-Namen automatisch freigegeben, bevor das neue Dataset zugewiesen wird.

Um Fehler durch verfrühtes Öffnen von beim Programmstart noch nicht zugewiesenen Druckdateien zu vermeiden, sollten Druckdateien mit dem Subparameter OPEN=ACC (Öffnen bei erstem Zugriff) im Profilparameter PRINT definiert werden.

Im Falle einer HFS-Datei oder einer im PRINT-Profilparameter mit Subparameter FREE=ON definierten Druckdatei wird die Druckdatei automatisch freigegeben, sobald sie geschlossen worden ist.

Als Alternative für die dynamische Zuweisung und Freigabe von Datasets steht Ihnen die Programmierschnittstelle (API) USR2021N in der Library SYSEXT zur Verfügung. Diese API ermöglicht auch die Angabe zusätzlicher Parameter für die dynamische Zuweisung.

Druckdateien in Server-Umgebungen

In Server-Umgebungen kann es zu Fehlern kommen, wenn mehrere Natural-Sessions versuchen, ein Dataset mit dem gleichen DD-Namen zuzuweisen oder zu öffnen. Um dies zu vermeiden, geben Sie entweder im Profilparameter PRINT den Subparameter DEST=* an, oder Sie geben im DEFINE PRINTER-Statement OUTPUT '*' an; Natural generiert dann einen eindeutigen DD-Namen bei der Zuweisung der physischen Datasets, wenn das erste DEFINE PRINTER-Statement für die betreffende Druckdatei ausgeführt wird.

Alle Druckdateien, deren DD-Namen mit CM anfangen, werden von allen Sessions in einer Server-Umgebung gemeinsam benutzt. Eine solche Druckdatei wird von der ersten Session geöffnet, aber erst bei Beendigung des Servers physisch geschlossen. Weitere Informationen siehe Abschnitt Natural as a Server in der Operations-Dokumentation

Druckername unter z/VSE Batch

Für eine mit der Zugriffsmethode AM=STD definierte Druckernummer kann operand1 folgendes sein:

  • ein logischer Dataset-Name (DD-Name, 1 bis 7 Zeichen);

  • NULLFILE (um auf ein Dummy-Dataset zu verweisen).

Logische Dataset-Namen

Beispiel:

DEFINE PRINTER (2) OUTPUT 'SYSOUT1'

Das angegebene Dataset SYSOUT1 muss in der JCL oder in den VSE-Standard- oder Partition-Labels zugewiesen worden sein.

Der in dem DEFINE PRINTER-Statement angegebene Dataset-Name überschreibt den in dem Subparameter DEST des Profilparameters PRINT angegebenen Namen.

Optional kann dem Dataset-Namen DDN= vorangestellt werden, um anzuzeigen, dass es sich um einen DD-Namen handelt. Zum Beispiel:

DEFINE PRINTER (5) OUTPUT 'DDN=MYPRINT'

NULLFILE

Um ein Dummy-Dataset zuzuweisen, geben Sie NULLFILE als operand1 an:

DEFINE PRINTER (n) OUTPUT 'NULLFILE'

Druckername unter BS2000 Batch und TIAM

Für eine mit der Zugriffsmethode AM=STD definierte Druckernummer können Sie operand1 benutzen, um einen Dateinamen, Link-Namen oder eine Systemdatei anzugeben, der/die dieser Druckernummer zugewiesen werden soll.

In diesem Fall kann operand1 1 bis 253 Zeichen lang sein und eins der Folgenden sein:

  • *DUMMY

Es gelten die folgenden Regeln:

  1. Datei- und Link-Name können als Positions-Parameter oder Schlüsselwort-Subparameter angegeben werden. Die entsprechenden Schlüsselwörter sind FILE= und LINK=. Die gemischte Angabe von Positions-Parameter und Schlüsselwort-Subparametern ist zulässig, aber nicht empfehlenswert.

  2. Eine Zeichenkette mit einer Länge von 1 bis 8 Zeichen ohne Kommas wird als ein Link-Name interpretiert. Diese Notation ist mit früheren Versionen von Natural kompatibel. Beispiel:

    DEFINE PRINTER (1) OUTPUT 'P01'

    Die entsprechende Definition mit einem Schlüsselwort-Subparameter lautet wie folgt:

    DEFINE PRINTER (1) OUTPUT 'LINK=P01'
  3. Eine Zeichenkette von 9 bis 54 Stellen ohne Kommas wird als ein Dateiname interpretiert. Beispiel:

    DEFINE PRINTER (2) OUTPUT 'NATURALvr.TEST.PRINTER02'

    Dabei steht vr für die Produktversion.

    Die entsprechende Definition mit einem Schlüsselwortparameter lautet wie folgt:

    DEFINE PRINTER (2) OUTPUT 'FILE=NATURALvr.TEST.PRINTER02'
  4. Die folgende Eingabe wird ohne Berücksichtigung der Länge interpretiert und bildet deshalb eine Ausnahme zu den Regeln 2 und 3:

    • Eingabe Schlüsselwort: LINK=, FILE=

    • *DUMMY

    • NULLFILE (entspricht *DUMMY)

    • *

    • *,*

    • SYSOUT

    • SYSLST oder SYSLST(nn)

    Beispiel: DEFINE PRINTER (7) OUTPUT 'FILE=Y' ist eine gültige Dateizuweisung und kein Link-Name, obwohl die Zeichenkette weniger als 9 Zeichen enthält.

  5. Generische Dateinamen sehen wie folgt aus:

    Pnn.userid.tsn.date.time.number

    dabei ist

    nn eine Reportnummer
    userid eine Natural-Benutzerkennung mit 8 Zeichen
    tsn die BS2000 TSN der aktuellen Task mit 4 Ziffern
    date DDMMYYYY (Tag, Monat, Jahr)
    time HHIISS (Stunde, Minute, Sekunde)
    number eine Reihenfolgenummer mit 5 Ziffern
  6. Generische Link-Namen sehen wie folgt aus:

    NPFnnnnn

    dabei ist nnnnn eine 5-stellige Zahl, die nach jeder Generierung eines dynamischen Link-Namens jeweils um eins erhöht wird.

  7. Das Ändern der Dateizuweisung für eine Druckernummer führt zu einem impliziten CLOSE der bis dahin zugeordneten Druckdatei.

In allen Fällen empfiehlt es sich sehr, mit Schlüsselwort-Subparametern zu arbeiten, außer wenn Sie nur einen Link-Namen (zum Beispiel: P01) angeben. Dies hilft Konflikte mit Namen zusätzlicher Reports zu vermeiden und ist für Dateinamen mit weniger als 9 Zeichen von Bedeutung.

Beispiele:

DEFINE PRINTER (1) OUTPUT 'LINK=SOURCE'
DEFINE PRINTER (1) OUTPUT 'FILE=SOURCE'
DEFINE PRINTER (1) OUTPUT 'SOURCE'

Link-Name

Beispiel:

DEFINE PRINTER (1) OUTPUT 'LINKP01'

ist gleichbedeutend mit

DEFINE PRINTER (1) OUTPUT 'LINK=LINKP01'

Eine Datei mit dem Link LINKP01 muss zur Laufzeit vorhanden sein. Diese kann entweder mittels einer JCL vor dem Start von Natural oder durch eine dynamische Zuweisung von der aktuellen Anwendung aus erstellt werden. Für eine dynamische Zuweisung kann die Anwendungsprogrammierschnittstelle USR2029N in der Library SYSEXT verwendet werden. Wenn der Link vor der Ausführung als ein Ausgabemedium auf eine andere Datei, zum Beispiel P01, aktiv war, wird diese freigegeben oder zurückbehalten in Abhängigkeit vom Wert des Schlüsselwort-Subparameters FREE des Profilparameters PRINT (mögliche Werte sind ON und OFF). Die Freigabe erfolgt dann über einen expliziten RELEASE-Aufruf an den BS2000-Kommando-Prozessor.

Dateiname

Beispiel:

DEFINE PRINTER (2) OUTPUT 'NATURALvr.TEST.PRINTER02'

ist gleichbedeutend mit

DEFINE PRINTER (2) OUTPUT 'FILE=NATURALvr.TEST.PRINTER02'

Dabei steht vr für die Produktversion.

Die in operand1 angegebene Datei wird mittels eines FILE-Makroaufrufs eingerichtet und erbt den Link-Namen, der vor der Ausführung des DEFINE PRINTER-Statements für die entsprechende Druckdatei gültig war.

Generischer Dateiname

Beispiel:

DEFINE PRINTER (21) OUTPUT '*'

ist gleichbedeutend mit

DEFINE PRINTER (21) OUTPUT 'FILE=*'

Eine Datei mit einem nach Regel 4 erstellten Namen wird mittels eines FILE-Makroaufrufs eingerichtet und erbt den Link-Namen, der vor Ausführung des DEFINE PRINTER-Statements für die entsprechende Druckdatei gültig war.

DEFINE PRINTER (22) OUTPUT 'FILE=*,LINK=GENFLK22'

Eine Datei mit einem nach Regel 4 erstellten Namen wird mittels eines FILE-Makroaufrufs mit dem angegebenem Link-Namen eingerichtet.

Dateiname und Link-Name

Beispiel:

DEFINE PRINTER (11) OUTPUT 'NATURALvr.TEST.PRINTER11,LNKP11'

ist gleichbedeutend mit

DEFINE PRINTER (11) OUTPUT 'FILE=NATURALvr.TEST.PRINTER11,LINK=LNKP11'

ist gleichbedeutend mit

DEFINE PRINTER (11) OUTPUT 'FILE=NATURALvr.TEST.PRINTER11,LNKP11'

Dabei steht vr für die Produktversion.

Die in operand1 angegebene Datei wird mittels eines FILE-Makroaufrufs mit dem angegebenen Link-Namen eingerichtet und der entsprechenden Druckernummer zugeordnet.

Generischer Dateiname und Link-Name

Beispiel:

DEFINE PRINTER (27) OUTPUT '*,*'

ist gleichbedeutend mit

DEFINE PRINTER (27) OUTPUT 'FILE=*,LINK=*'

Eine Datei mit einem nach Regel 4 und 5 erstellten Dateinamen und Link-Namen wird mittels eines FILE-Makroaufrufs eingerichtet und wird der angegebenen Druckernummer (27) zugeordnet.

Anmerkung:
Wenn Datei- und Link-Name angegeben werden, wird der vorige Link-Name nicht freigegeben, ungeachtet des Wertes des Schlüsselwort-Subparameters FREE im Profilparameter PRINT.

Systemdatei SYSOUT

Beispiel:

DEFINE PRINTER (14) OUTPUT 'SYSOUT'

Report 14 wird auf SYSOUT geschrieben.

Unter TIAM wird SYSOUT standardmäßig auf dem Bildschirm ausgegeben.

Systemdatei SYSLST

Beispiel:

DEFINE PRINTER (15) OUTPUT 'SYSLST'

Report 15 wird in die Systemdatei SYSLST geschrieben.

Systemdatei SYSLSTnn - nn=01,...,99

Beispiel:

DEFINE PRINTER (16) OUTPUT 'SYSLST16'

Report 16 wird in die Systemdatei SYSLST16 geschrieben..

Systemdatei SYSLSTnn mit impliziter Zuordnung

Beispiele:

DEFINE PRINTER (11) OUTPUT 'SYSLST=LST.PRINTER11'

Die Systemdatei SYSLST wird der Datei LST.PRINTER11 zugeordnet; Report 11 wird in die Systemdatei SYSLST geschrieben.

DEFINE PRINTER (13) OUTPUT 'SYSLST13=LST.PRINTER13'

Die Systemdatei SYSLST13 wird der Datei LST.PRINTER13 zugeordnet; Report 13 wird in die Systemdatei SYSLST13 geschrieben.

DEFINE PRINTER (19) OUTPUT 'SYSLST19=*'

Die Systemdatei SYSLST19 wird einer Datei mit einem nach Regel 4 generierten Namen zugeordnet; Report 19 in die Systemdatei SYSLST19 geschrieben.

Druckername unter CICS

Für eine mit der Zugriffsmethode AM=CICS definierte Druckernummer kann operand1 in Abhängigkeit vom Subparameter TYPE im Profilparameter PRINT für den Drucker ein Übergangsdaten- oder Zwischenspeicher-Warteschlangen-Name (1 bis 8 Zeichen) sein. Für TYPE=TD (Übergangsdaten) werden nur die ersten 4 Zeichen von operand1 berücksichtigt und das Ausgabemedium für die Übergangsdaten muss vorher für CICS definiert worden sein.

Weitere Informationen entnehmen Sie auch dem Abschnitt Natural Print and Work Files under CICS im Natural CICS Interface-Teil der TP Monitor Interfaces-Dokumentation.

Druckername unter Com-plete

Wird AM=COMP gesetzt, kann eine gültige Druckernummer (TID) oder ein logischer Druckername zugewiesen werden. Beispiel:

DEFINE PRINTER (1) OUTPUT '11'
DEFINE PRINTER (2) OUTPUT 'P102'

Druckername unter Com-plete/SMARTS

Wird AM=SMARTS gesetzt, können Sie einen nicht definierten Druckernamen angeben. Zum Beispiel:

DEFINE PRINTER (14) OUTPUT '/nat/path/printer'
DEFINE PRINTER (14) OUTPUT '/nat/path/printer/file/'
DEFINE PRINTER (14) OUTPUT 'printer'

Es ist vom Parameter MOUNT_FS von SMARTS abhängig, ob die Datei auf einem SMARTS Portable File System oder auf dem Native File System residiert. Das erste Element des Pfades (/nat/) legt das Zieldateien-System fest.

Wenn die Zeichenkette mit einem Schrägstrich (/) abgeschlossen wird, wird das letzte Element als Namen der Druckdatei benutzt. Sonst wird der Name der Datei aus der Benutzer-ID und einer Reihenfolge-Nummer generiert. Wenn die Zeichenkette nicht mit einem Schrägstrich anfängt, wird der Pfad der Datei aus der Umgebungsvariable $NAT_PRINT_ROOT genommen.

Der angegebene Pfadname muss vorhanden sein. Wenn das Statement DEFINE PRINTER ausgeführt wird, wird die Datei dynamisch zugewiesen. Wenn das angegebene Member nicht vorhanden ist, wird ein neues Member dieses Namens erstellt.

Druckernamen unter Natural Advanced Facilities

Benutzer von Natural Advanced Facilities können den logischen Namen jedes vordefinierten logischen Druckerprofils angeben. Dieses logische Druckerprofil muss nicht zu dem gerade aktiven Benutzerprofil gehören; es darf jedes in der NATSPOOL-Datei definierte logische Druckerprofil sein. Dieses Profil gilt nur während der Ausführung des Programms, das das DEFINE PRINTER-Statement enthält.

Weitere Informationen siehe Natural Advanced Facilities-Dokumentation.

Druckername für zusätzliche Reports und Remote-Ziele

Mit den folgenden Namen können Sie standardmäßig zusätzliche Reports und Remote-Ziele zuweisen:

Report Funktion
BROADCST Ausgabe der Meldungszeile an einen TP-Monitor-Terminal. Gleiche Funktion wie MESSAGE (siehe unten), außer dass unter Com-plete die Meldung nicht an den gewünschten Terminal geschickt wird, bis keine Transaktionen auf diesem Terminal mehr aktiv sind.
CCONTROL CCONTROL ist der Name einer bestimmten Druckersteuerzeichen-Tabelle, die mit dem Drucker n-1 in Verbindung steht; sie darf nicht geändert werden. Weitere Informationen entnehmen Sie dem Abschnitt Printer-Advance Control Characters in der Operations-Dokumentation.
CONNECT Ausgabe in ein Con-nect-Fach.

Anmerkung für die Natural-Installation: das NATPCNT-Modul von Natural muss mit dem Natural-Nukleus verbunden werden.

DUMMY Ausgabe wird gelöscht.
HARDCOPY Ausgabe an das aktuelle Hardcopy-Gerät.
INCORE Ausgabe an die NSPF Incore-Datenbank.
INFOLINE Ausgabe in der Natural-Infoline. Näheres zur Infoline siehe Terminalkommando %X in der Terminalkommandos-Dokumentation.
MESSAGE Ausgabe der Meldungszeile an einen TP-Monitor-Terminal. Die ersten 8 Bytes einer Meldung müssen die Ziel-Terminal-ID enthalten. Für TSO ist die User-ID anstatt der Terminal-ID erforderlich. Ein Beispiel-Programm mit Namen MSGSW ist in der Library SYSEXTP vorhanden.
SOURCE Ausgabe in den Arbeitsbereich des Natural-Editors.
WORKPOOL Ausgabe in den Natural-ISPF-Workpool.

Daten in einer Remote-JES-Umgebung drucken

Sie können das Write-to-Spool Feature (siehe Operations-Dokumentation) benutzen, um Daten über einen Remote-JES-Knoten zu leiten und sie an einen Benutzer zu senden oder um sie auf einem Gerät zu drucken, das in der Remote-JES-Umgebung definiert ist.

Beispiele

Beispiel 1 — Definition des Druckernamens für Com-plete

/* PRINTER NAME DEFINITION FOR COM-PLETE
*
DEFINE PRINTER (1) OUTPUT 'TID100'
WRITE (1) 'PRINTED ON PRINTER TID100'  
END

Beispiel 2 — Definition des Druckernamens für Batch-Umgebung

/* OUTPUT ON 'SYSPRINT' (FOR BATCH ENVIRONMENTS)
*
DEFINE PRINTER (REPORT1 = 1) OUTPUT 'SYSPRINT'
WRITE (REPORT1) 'REPORT 1 PRINTED ON PRINTER SYSPRINT'  
*
/* OUTPUT TO DEFAULT PRINTER DESTINATION
/* DEFINED WITH PROFILE PARAMETER 'PRINT', SUBPARAMETER 'DEST'
*
DEFINE PRINTER (REPORT2 = 2)
WRITE (REPORT2) 'REPORT PRINTED TO DESTINATION'

Beispiel 3 — Druckausgabe an Infoline

** Example 'DPIEX1': DEFINE PRINTER                                     
************************************************************************
*                                                                       
SET CONTROL 'XI+'        /* SWITCH INFOLINE MODE ON                     
SET CONTROL 'XT'         /* INFOLINE TOP                                
*                                                                       
DEFINE PRINTER (1) OUTPUT 'INFOLINE'                                   
WRITE (1) 'EXECUTING' *PROGRAM 'BY' *INIT-USER                          
WRITE 'TEST OUTPUT'                                                     
EJECT                    /* FORCE PHYSICAL I/O                          
*                                                                       
SET CONTROL 'X'          /* SWITCH BACK TO NORMAL                       
*                                                                       
END

Ausgabe des Programms DPIEX1:

EXECUTING DPIEX1   BY HTR                                                      
Page      1                                                  05-01-13  14:54:33                                                                           
TEST OUTPUT                                                                   

Beispiel 4 — Benutzung einer Session mit vordefiniertem Drucker

** Example 'DPREX1': DEFINE PRINTER                                     
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
END-DEFINE                                                              
*                                                                       
*  USE SESSION WITH DEFINED PRINTER 1                                   
*                                                                       
DEFINE PRINTER (INVOICE-LIST=1) OUTPUT 'OUTQ1'                         
LIMIT 5                                                                 
READ EMPL-VIEW BY NAME                                                  
  WRITE (INVOICE-LIST) NAME                                             
END-READ                                                                
*                                                                       
END