Jedes dieser Elemente besteht aus Muster-Anweisungen, die openFT verwendet, wenn er intern einen entsprechenden Job aufbaut. Die Muster-Anweisungen werden von openFT nicht syntaktisch geprüft. Beispiel-Elemente werden in der Bibliothek SAMPLES mit openFT ausgeliefert.
Jeder Satz enthält genau eine Jobkarte (oder Folgekarte). Ausgewertet werden maximal 32767 Sätze jedes Elements.
In den Muster-Anweisungen können die folgenden Variablen verwendet werden, die von openFT durch die aktuellen Werte ersetzt werden:
JOBP
Jobnamens-Präfix, identisch mit USID, wenn die User-ID max. 7 Zeichen lang ist, ansonsten wird das letzte Zeichen abgeschnitten
USID
Benutzerkennung aus der TRANSFER-ADMISSION (für PRTJOB, TSOVVJOB, TSOVFJOB und TSONVJOB) oder aus der PROCESSING-ADMISSION (für JCLJOB und TSOJOB).
Maximal 8 Zeichen, gemäß IBM-Konventionen.
ACCN
"accounting information" aus der TRANSFER-ADMISSION (für PRTJOB, TSOVVJOB, TSOVFJOB und TSONVJOB) oder aus der PROCESSING-ADMISSION (für JCLJOB und TSOJOB).
Maximal 40 Zeichen, gemäß IBM-Konventionen.
PASS
Kennwort aus der TRANSFER-ADMISSION (für PRTJOB, TSOVVJOB, TSOVFJOB und TSONVJOB) oder aus der PROCESSING-ADMISSION (für JCLJOB und TSOJOB).
Maximal 8 Zeichen, gemäß IBM-Konventionen.
OWID
Eigentümer des FT-Auftrags, d.h. die Benutzerkennung, unter der der Transferauftrag gestellt wurde.
Maximal 8 Zeichen, gemäß IBM-Konventionen.
Diese Variable wird nur in dem System ersetzt, in dem der Transferauftrag gestellt wurde. Im Partnersystem wird sie eliminiert.
PGRN
"programmer's name", wie er als Teilkommando im jeweils zutreffenden Kommandostring für die Folgeverarbeitung mit dem Schlüsselwort PGRN= angegeben wurde. Näheres siehe Handbuch "openFT (z/OS) - Kommandoschnittstelle". Auch im Element PRTJOB wird der Wert aus dem jeweils zutreffenden Kommandostring für die Folgeverarbeitung übernommen, d.h. bei erfolgreicher Auftragsbearbeitung aus dem Kommandostring
im Parameter SUCCESS-PROCESSING, im Fehlerfall aus dem Kommandostring im Parameter FAILURE-PROCESSING.
Maximal 20 Zeichen, gemäß IBM-Konventionen.
Existiert kein Wert für "programmer's name" und wird nach Ersetzung der Variablen PGRN innerhalb eines JOB-Statements festgestellt, dass auf der entsprechenden Karte keine weiteren Angaben außer dem JCL-Identifier "//" und einem Komma (Separator für Parameterangaben) stehen, so wird diese Karte ignoriert, d.h. sie kommt nicht zur Ausführung. Damit wird der in der IBM-Literatur (JCL Reference) gegebenen Empfehlung nachgekommen, das Fehlen dieses Parameters nicht durch Angabe eines Kommas zu kennzeichnen.
TRID
FT-Auftrags-Identifikation.
Maximal 10 Zeichen (Wertebereich 1..2147483639) gemäß openFT-Konventionen.
RLFN
Name der Datei, in der die Ergebnisliste abgelegt wird (PRTJOB). Maximal 32 Zeichen, gemäß IBM-Konventionen. (Die Maximallänge ergibt sich aus der vorgegebenen Struktur dieses Dateinamens; Näheres siehe Handbuch "openFT (z/OS) - Kommandoschnittstelle").
Diese Variable kann in dem Element PRTJOB verwendet werden; in den anderen Elementen wird sie eliminiert.
RLFP
temporäre Datei, in der die Vorverarbeitung ihre Daten ausgibt (TSOVVJOB und TSOVFJOB). Maximal 38 Zeichen, gemäß IBM-Konventionen. Diese Variable kann nur in den Elementen TSOVVJOB und TSOVFJOB verwendet werden; in den anderen Elementen wird sie eliminiert.
RLFF
temporäre Datei, in der die Vorverarbeitung eines im Unix- oder Windows-Partnersystem abgesetzten ftexec-Kommandos ihre Fehlermeldungen ausgibt. Maximal 38 Zeichen, gemäß IBM-Konventionen. Diese Variable kann nur im Element TSOVFJOB verwendet werden; in den anderen Elementen wird sie eliminiert.
RLFT
temporäre Datei, in der die Vorverarbeitung eines ftexec-Kommandos ihre TSO-Meldungen ausgibt. Maximal 38 Zeichen, gemäß IBM-Konventionen. Diese Variable kann nur im Element TSOVFJOB verwendet werden; in den anderen Elementen wird sie eliminiert.
CONN
Name der Datei, die die Schlüssel für die Verbindung zum FT-Subsystem enthält. Maximal 36 Zeichen, gemäß IBM-Konventionen. Standardmäßig wird diese Datei unter <openft qualifier>.<inst>.CONN angelegt.
Diese Variable kann in den Elementen TSOJOB, TSONVJOB, TSOVVJOB undTSOVFJOB verwendet werden; in den anderen Elementen wird sie eliminiert.
NCLO
Name der Datei, die die openFT-Kommandos enthält. Maximal 36 Zeichen, gemäß IBM-Konventionen. Standardmäßig wird diese Datei unter OPENFT.NCLOAD angelegt.
Diese Variable kann in den Elementen TSOJOB, TSONVJOB, TSOVVJOB undTSOVFJOB verwendet werden; in den anderen Elementen wird sie eliminiert.
PALC
Größe der primären Allokation für die Ausgabedatei in Kilobyte, die temporär bei der Vorverarbeitung mit dem FTEXEC-Kommando verwendet wird.
Standardwert: 256
Wenn Sie diesen Wert verändern wollen, müssen Sie den Wert DEFFSIZE in der PARM-Datei verändern (siehe Abschnitt „Aufbau des Elements PARM“). Die Veränderung des Wertes DEFFSIZE wirkt sich nicht nur auf die Größe der Temporärdatei bei der Vorverarbeitung mit FTEXEC aus, sondern generell auf die bei der Vorverarbeitung verwendeten Temporärdateien zur vorübergehenden Datenausgabe.
Beispiel: Wenn Sie den Standardwert für DEFFSIZE (2621440) verdoppeln, wird der Wert 256 verdoppelt.
SALC
Größe der sekundären Allokation für die Ausgabedatei in Kilobyte, die temporär bei der Vorverarbeitung mit dem FTEXEC-Kommando verwendet wird.
Standardwert: 2560
Wenn Sie diesen Wert verändern wollen, müssen Sie den Wert DEFFSIZE in der PARM-Datei verändern (siehe Abschnitt „Aufbau des Elements PARM“). Die Veränderung des Wertes DEFFSIZE wirkt sich nicht nur auf die Größe der Temporärdatei bei der Vorverarbeitung mit FTEXEC aus, sondern generell auf die bei der Vorverarbeitung verwendeten Temporärdateien zur vorübergehenden Datenausgabe.
Beispiel: Wenn Sie den Standardwert für DEFFSIZE (2621440) verdoppeln, wird der Wert 2560 verdoppelt.
An die Namen dieser Variablen sollten jeweils so viele Füllzeichen "#" angehängt werden, dass ein Feld mit der maximalen Länge entsteht (einschließlich des Zeichens "&", also z.B. &TRID#####). Wenn openFT die Variablen durch die aktuellen Werte ersetzt, überschreitet er die durch den Namen der Variablen inklusive angehängter Füllzeichen vorgegebene Feldlänge nicht; gegebenenfalls werden die aktuellen Werte abgeschnitten. Umgekehrt entfernt openFT bei aktuellen Werten, die kürzer sind als diese Feldlänge, überflüssige Füllzeichen.
Hinweis
Wenn eine Folgeverarbeitung der Form ALLOC DSNAME(...) angegeben wurde, so ersetzt openFT die Variablen auch in einem solchen Job, bevor er ihn an den Internal Reader übergibt.
Beim Aufbau der Musteranweisungen sind die Anforderungen der jeweiligen z/OS-Installation an ablauffähige Jobs zu beachten. In der Regel werden für das JOB-Statement gültige Angaben für Benutzerkennung, Abrechnungsinformation und Benutzerkennwort benötigt. Diese Werte können aus folgenden Quellen stammen:
Sie werden vom Benutzer im NCOPY-Kommando angegeben (für PRTJOB, TSOVVJOB, TSOVFJOB und TSONVJOB in der TRANSFER-ADMISSION, für JCLJOB und TSOJOBin der PROCESSING-ADMISSION).
Wenn FTAC genutzt wird, können die Angaben für die PROCESSING-ADMISSION auch in einem Berechtigungsprofil festgelegt werden. Die Berechtigung für Vor- und Nachverarbeitung wird durch die Angaben für die TRANSFER-ADMISSION definiert.
Sie werden in den in den Elementen PRTJOB, JCLJOB, TSOJOB, TSOVVJOB, TSOVFJOB und TSONVJOB enthaltenen JOB-Statements fest vorgegeben, d.h. es werden für Benutzerkennung, Abrechnungsinformation und Benutzerkennwort keine Variablen verwendet. In diesem Fall gelten diese Angaben für alle Aufträge.
Diese Hinweise gelten auch für die von openFT standardmäßig aufgebauten Jobs, wenn die Elemente PRTJOB, JCLJOB,TSOJOB, TSOVVJOB, TSOVFJOB und TSONVJOB nicht existieren.
Die folgenden Beispiele geben den Aufbau der von openFT standardmäßig erzeugten Jobs wieder. In den Elementen PRTJOB, JCLJOB,TSOJOB, TSOVVJOB, TSOVFJOB und TSONVJOB können rechenzentrumsspezifische Abweichungen davon realisiert werden.
Beispiel für das Element PRTJOB
//&JOBP##P JOB &ACCN#########################, // &PGRN################, // MSGCLASS=X, // CLASS=C, // USER=&USID###,PASSWORD=&PASS### //PRTJOB EXEC PGM=IEBPTPCH //SYSPRINT DD DUMMY //SYSUT1 DD DSN=&RLFN#########################################, // DISP=(SHR,DELETE), // DCB=(RECFM=FB,LRECL=134,BLKSIZE=2546) //SYSUT2 DD SYSOUT=A,DCB=(LRECL=134) //SYSIN DD * PRINT PREFORM=A /* //
In diesem Beispiel werden die Benutzerkennung, die Abrechnungs-Nummer und das Passwort aus der TRANSFER-ADMISSION des Benutzers durch openFT eingesetzt. Für die Variable PGRN wird der Wert eingesetzt, den der Benutzer als Teilkommando im jeweils zutreffenden Kommandostring für die Folgeverarbeitung mit dem Schlüsselwort PGRN= angegeben hat. Näheres siehe Handbuch "openFT (z/OS) - Kommandoschnittstelle". Bei erfolgreicher Auftragsbearbeitung wird der Wert also aus dem Kommandostring im Parameter SUCCESS-PROCESSING übernommen, im Fehlerfall aus dem Kommandostring im Parameter FAILURE-PROCESSING. Existiert kein Wert für "programmer's name", so wird diese Karte ignoriert, d.h. sie kommt nicht zur Ausführung, da auf ihr keine weiteren Angaben außer dem JCL-Identifier "//" und einem Komma (Separator für Parameterangaben) stehen. Außerdem wird der Name der Datei mit der Ergebnisliste eingesetzt (das für diesen Namen vorgesehene Feld &RFLN##...## sollte insgesamt 32 Zeichen lang sein). Danach startet openFT diesen Job.
Beispiel für das Element JCLJOB
//&JOBP##N JOB &ACCN#######################, // MSGCLASS=X, // CLASS=C, // REGION=2M, // USER=&USID###, // PASSWORD=&PASS### //JOBLIB DD DSN=&USID###.PROCLIB,DISP=SHR
In diesem Beispiel werden die Benutzerkennung, die Abrechnungs-Nummer und das Passwort aus der PROCESSING-ADMISSION des Benutzers durch openFT eingesetzt. Für die Variable PGRN wird der Wert eingesetzt, den der Benutzer als Teilkommando im Kommandostring für die Folgeverarbeitung mit dem Schlüsselwort PGRN= angegeben hat. Näheres siehe Handbuch "openFT (z/OS) - Kommandoschnittstelle". Existiert kein Wert für "programmer's name", so wird diese Karte ignoriert, d.h. sie kommt nicht zur Ausführung, da auf ihr keine weiteren Angaben außer dem JCL-Identifier "//" und einem Komma (Separator für Parameterangaben) stehen. Die JCL-Anweisungen, die der Benutzer als Folgeverarbeitung im NCOPY-Kommando angegeben hat, werden durch openFT hinter der Muster-Anweisung "//JOBLIB DD ..." angefügt. Danach startet openFT diesen Job.
Beispiel für das Element TSOJOB
//&JOBP##N JOB &ACCN###################################, // &PGRN###############, // MSGCLASS=X, // CLASS=C, // NOTIFY=&USID###, // USER=&USID###, // PASSWORD=&PASS###, // REGION=0M // EXEC PGM=IKJEFT01 //OPENFT DD DSN=&CONN#########################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#########################################, // DISP=(SHR,KEEP) //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD *
In diesem Beispiel werden die Benutzerkennung, die Abrechnungs-Nummer und das Passwort aus der PROCESSING-ADMISSION des Benutzers durch openFT eingesetzt. Für die Variable PGRN wird der Wert eingesetzt, den der Benutzer als Teilkommando im Kommandostring für die Folgeverarbeitung mit dem Schlüsselwort PGRN= angegeben hat. Näheres siehe Handbuch "openFT (z/OS) - Kommandoschnittstelle". Existiert kein Wert für "programmer's name", so wird diese Karte ignoriert, d.h. sie kommt nicht zur Ausführung, da auf ihr keine weiteren Angaben außer dem JCL-Identifier "//" und einem Komma (Separator für Parameterangaben) stehen. Die TSO-Kommandos, die der Benutzer als Folgeverarbeitung im NCOPY-Kommando angegeben hat, sowie das End-of Data "/*" werden durch openFT hinter der Muster-Anweisung "//SYSTSIN DD *" angefügt. Danach startet openFT diesen Job.
Beispiel für das Element TSOVVJOB
//&JOBP##N JOB &ACCN###################################, // MSGCLASS=X, // CLASS=C,MSGLEVEL=(1,1), // USER=&USID###, // PASSWORD=&PASS###, // REGION=0M //STEP0 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#########################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#########################################, // DISP=(SHR,KEEP) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * FTATTP &PRID
In diesem Beispiel werden die Benutzerkennung, die Abrechnungs-Nummer und das Passwort aus der TRANSFER-ADMISSION des Benutzers durch openFT eingesetzt. Für die Variablen CONN, NCLO und RLFP allokiert openFT die passenden Dateien.
Wenn kein %TEMPFILE in der Vorverarbeitung spezifiziert wurde, sieht die von openFT durchgeführte Joberweiterung wie folgt aus:
//******************************************************** //STEP1 EXEC PGM=IEFBR14 //STDOUT DD DSN=&RLFP#################################, // DISP=(NEW,CATLG,DELETE), // DCB=(DSORG=PS,BLKSIZE=1536,RECFM=VB), // UNIT=SYSDA,SPACE=(1,(256,2560)),AVGREC=K //******************************************************** //IFBAD IF STEP0.RC=0 THEN //STEP2 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#################################, // DISP=(SHR,KEEP) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD DSN=*.STEP1.STDOUT,DISP=(MOD,KEEP,DELETE) //SYSTSIN DD * //IFBADEND ENDIF
Wenn %TEMPFILE in der Vorverarbeitung spezifiziert wurde, sieht die von openFT durchgeführte Joberweiterung wie folgt aus:
//******************************************************** //IFBAD IF STEP0.RC=0 THEN //STEP2 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#################################, // DISP=(SHR,KEEP) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * //IFBADEND ENDIF
Beispiel für eine Vorverarbeitung mit %TEMPFILE von einem Windows- oder Unix-System:
ncopy zospartner!"|ftscopy from,WindowsPC,(%tempfile)\
,*any('hallo.txt',trans='WindowTransadm')" - zosTransadm
Die TSO- oder openFT-Kommandos, die im FT-Auftrag als Vorverarbeitung angegeben wurden, werden durch openFT hinter der Muster-Anweisung "//SYSTSIN DD *" als Instream-Daten-Karten angefügt. Die TSO-Kommandos müssen den IBM-Konventionen entsprechen. Ihre Länge ist beliebig, gegebenenfalls verteilt openFT das Kommando über mehrere Zeilen. Ausgaben von openFT-Kommandos innerhalb der Vorverarbeitung werden nach SYSPRINT und damit in die durch RLFP referenzierte Datei umgelenkt. Standardmäßig geben TSO-Kommandos nach SYSTSPRT aus. Ihre Ausgabe muss gegebenenfalls explizit nach SYSPRINT und damit in die Ausgabedatei der Vorverarbeitung umgelenkt werden (z.B. LISTCAT OFILE(SYSPRINT)). Nach dem Einlesen der Vorverarbeitungskommandos übergibt openFT noch die folgenden
Kommandos dem Internal Reader zur Batchverarbeitung (dieser Teil wird dynamisch erzeugt und ist nicht veränderbar).
//******************************************************** //IFBAD IF (ABEND OR STEP2.RC>=12 OR NOT STEP2.RUN) // THEN //STEP3 EXEC PGM=IKJEFT01 //OPENFT DD DSN=&CONN#################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#################################, // DISP=(SHR,KEEP) //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * FTDETP FAILURE &PRID // ELSE //STEP4 EXEC PGM=IKJEFT01
//OPENFT DD DSN=&CONN#################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#################################, // DISP=(SHR,KEEP) //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * FTDETP SUCCESSFUL &PRID //IFBADEND ENDIF /*
Danach startet openFT diesen Job. Wenn die Verarbeitung abgebrochen wird, startet openFT einen eigenen "Cancel-Job" auf Basis des Jobrahmens TSOJOB. Dieser Job bekommt als letzten Buchstaben im Jobnamen ein "Z" zugewiesen, um ihm eine höhere Priorität als die aktuell laufenden Verarbeitungsjobs zu geben.
Beispiel für das Element TSOVFJOB
//&JOBP##N JOB &ACCN###################################, // MSGCLASS=X, // USER=&USID###, // NOTIFY=&USID###, // PASSWORD=&PASS###, // REGION=0M //STEP0 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#################################, // DISP=(SHR,KEEP) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * FTATTP &PRID //******************************************************** //STEP1 EXEC PGM=IEFBR14 //STDOUT DD DSN=&RLFP#################################, // DISP=(NEW,CATLG,DELETE), // DCB=(DSORG=PS,BLKSIZE=1536,RECFM=VB), // UNIT=SYSDA,SPACE=(1,(&PALC######,&SALC######)), // AVGREC=K //STDERR DD DSN=&RLFT#################################, // DISP=(NEW,CATLG,DELETE), // DCB=(DSORG=PS,BLKSIZE=1536,RECFM=VB,LRECL=1532), // UNIT=SYSDA,SPACE=(1,(256,2560)),AVGREC=K //SYSERR DD DSN=&RLFF#################################, // DISP=(NEW,CATLG,DELETE),
// DCB=(DSORG=PS,BLKSIZE=1536,RECFM=VB,LRECL=1532), // UNIT=SYSDA,SPACE=(1,(256,2560)),AVGREC=K //******************************************************** //IFBAD IF STEP0.RC=0 THEN //STEP2 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#################################, // DISP=(SHR,KEEP) //SYSPRINT DD DSN=*.STEP1.STDOUT,DISP=(MOD,KEEP,DELETE) //SYSTSPRT DD DSN=*.STEP1.STDERR,DISP=(MOD,KEEP,DELETE) //SYSERR DD DSN=*.STEP1.SYSERR,DISP=(MOD,KEEP,DELETE) //SYSTSIN DD *
Eine spezielle Form der Vorverarbeitung im z/OS ist die Serverfunktion für ein in einem Partnersystem abgesetztes "ftexec"-Kommando. ftexec erwartet als Rückgaben die Ausgabe der übergebenen Kommandos (stdout), etwaige Fehlermeldungen (stderr) und einen Exit-Code.
Die TSO- oder openFT-Kommandos, die im ftexec angegeben wurden, werden durch openFT hinter der Muster-Anweisung "//SYSTSIN DD *" als Instream-Daten-Karten angefügt. Die TSO-Kommandos müssen den IBM-Konventionen entsprechen. Ihre Länge ist beliebig, gegebenenfalls verteilt openFT das Kommando über mehrere Zeilen. openFT hängt dynamisch die Ausgabe von SYSTSPRT an die von SYSERR an. Dazu wird intern die IBM Utility IEBGENER genutzt:
//IFBADEND ENDIF //STEP22 EXEC PGM=IEBGENER //SYSUT1 DD DSN=*.STEP2.SYSTSPRT,DISP=(MOD,DELETE,DELETE) //SYSUT2 DD DSN=*.STEP2.SYSERR,DISP=(MOD,KEEP,DELETE) //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSTSIN DD *
Der Inhalt der so erzeugten temporären Datei wird nach "stderr" im Partnersystem umgeleitet, SYSPRINT nach "stdout". Nach dem Einlesen der Kommandos ergänzt openFT den Job noch entsprechend der Angaben im Beispiel zu TSOVVJOB, siehe Jobsteps STEP 3 und STEP 4 in Abschnitt „Aufbau der Elemente PRTJOB, JCLJOB, TSOJOB, TSOVVJOB, TSOVFJOB und TSONVJOB“.
Beispiel für das Element TSONVJOB
//&JOBP##N JOB &ACCN###################################, // MSGCLASS=X, // CLASS=C,MSGLEVEL=(1,1), // USER=&USID###, // PASSWORD=&PASS###, // REGION=0M //STEP1 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#########################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#########################################, // DISP=(SHR,KEEP) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * FTATTP &PRID //******************************************************** //IFBAD IF STEP1.RC=0 THEN //STEP2 EXEC PGM=IKJEFT01, // COND=(0,NE) //OPENFT DD DSN=&CONN#########################################, // DISP=(SHR,KEEP) //STEPLIB DD DSN=&NCLO#########################################, // DISP=(SHR,KEEP)
Bei einer Nachverarbeitung im z/OS werden die übertragenen Daten zunächst in einer temporären Datei hinterlegt, die dann für die im Auftrag angegebenen Kommandos als Eingabe zur Verfügung steht (TSO-Kommandos oder Systemkommandos für entsprechende Utilities). Die temporäre Datei kann in den Kommandos durch den Metastring
%TEMPFILE direkt referenziert werden.
Die Joberweiterung von openFT sieht dann wie folgt aus:
//SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD * //SYSTSIN DD * //IFBADEND ENDIF
Wenn %TEMPFILE in den Kommandos für die Nachverarbeitung nicht benutzt wird, dann liest die Nachverarbeitung die Daten über SYSUT1 ein. Der über SYSTSIN eingelesene Datenstrom aus dem FT-Auftrag verwendet dann die in SYSUT1 angegebenen Daten als Eingabedaten. Dazu kann der Anwender in der Nachverarbeitung ein entsprechendes Utility-Programm angeben, um darauf zuzugreifen.
Die Joberweiterung von openFT sieht dann wie folgt aus:
//SYSUT1 D DSN=&RLFP##########################################, // DISP=(MOD,KEEP,DELETE) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD * //SYSTSIN DD * //IFBADEND ENDIF
Beispiel
Der Anwender möchte eine Datei DAT1 mit ncopy von einem Windows- oder Unix-System nach z/OS übertragen. Dabei soll die Datei DAT1 per Nachverarbeitung auf eine andere Datei DAT2 im Zielsystem kopieren werden. Als Utility verwendet er IEBGENER:
ncopy DAT1 ZosPartner!”|allocate dsname(DAT2) ddname(SYSUT2) mod keep dsorg(ps) recfm(v,b) lrecl(259); ‘call SYS1.LINLLIB(IEBGENER)’” UserId,Account,Password
Der Job für die Nachverarbeitung wird in jedem Fall noch analog zur Vorverarbeitung nach den Verarbeitungskommandos um weitere Statements ergänzt. Das geschieht analog zum Vorverarbeitungsjob, siehe TSOVVJOB mit den Jobsteps STEP 3 und STEP 4 in Abschnitt „Aufbau der Elemente PRTJOB, JCLJOB, TSOJOB, TSOVVJOB, TSOVFJOB und TSONVJOB“.
Wenn die Verarbeitung abgebrochen wird, startet openFT einen eigenen "Cancel-Job" auf Basis des Jobrahmens TSOJOB. Dieser Job bekommt als letzten Buchstaben im Jobnamen ein "Z" zugewiesen, um ihm eine höhere Priorität als den aktuell laufenden Verarbeitungsjobs zu geben.