Dieses Kapitel beschreibt die verschiedenen Möglichkeiten, wie Natural aus Benutzerprogrammen aufgerufen werden kann.
Folgende Themen werden behandelt:
Eine Natural-Sitzung kann von Benutzer-Frontend-Programmen mit einem der folgenden Kommandos aktiviert werden:
oder die entsprechenden Anforderungen aus der CICS-Makroebene.
Die Kommandos zum Aktivieren einer Natural-Sitzung werden in den folgenden Abschnitten beschrieben.
Bei Verwendung von EXEC CICS XCTL/LINK können die von
Natural verwendeten Parameter in einer CICS COMMAREA oder in der TWA übergeben
werden.
Natural bestimmt, an welcher Stelle sich die Startparameter befinden, indem es die Länge der COMMAREA prüft, die ihm während der Sitzungsinitialisierung zur Verfügung übergeben wird.
Wenn die Länge 22 beträgt, versucht Natural, die Parameter in der COMMAREA zu finden, andernfalls wird angenommen, dass sie in der TWA übergeben wurden.
Um ein Frontend-Programm korrekt zu identifizieren, müssen die ersten 4 Bytes der Frontend-Parameterliste die aktuelle Transaktionskennung enthalten.
Die mit dem Frontend-Programm verknüpfte Transaktionskennung muss eine TWA-Größe haben,
die gleich oder größer als die Natural-TWA-Größe ist. Siehe auch
ncitransact in Installing Natural CICS
Interface on z/OS in der Natural
Installation-Dokumentation.
Bei Verwendung von EXEC CICS RETURN IMMEDIATE können die von
Natural verwendeten Frontend-Parameter in einer CICS COMMAREA und die von Natural
verwendeten dynamischen Parameter mit INPUTMSG (...) und INPUTMSGLEN
(...) des Kommandos EXEC CICS RETURN IMMEDIATE
übergeben werden.
Bei Verwendung von EXEC CICS START können die von Natural
verwendeten Frontend- und dynamischen Parameter mit FROM (...) und
LENGTH (...) des Kommandos EXEC CICS START
übergeben werden. Die Parameter werden weiter unten beschrieben.
Wenn Sie EXEC CICS LINK mit dem Parameter SYSID
verwenden, der auf eine entfernte Region zeigt, müssen die von Natural verwendeten
Frontend- und dynamischen Parameter in einer CICS COMMAREA übergeben werden. Außerdem
muss ein TRANSID-Parameter angegeben werden, der den
Transaktionscode einer Spiegeltransaktion mit einer TWA-Größe angibt, die den
Erfordernissen von Natural entspricht.
Es ist zu beachten, dass für Natural-Sitzungen, die über DPL aufgerufen werden, dieselben Einschränkungen wie für asynchrone Natural-Sitzungen gelten, d.h. es sind keine Eingaben möglich (daher werden dieselben dynamischen Parametereinstellungen empfohlen) und der Aufrufer erhält nach Beendigung der Natural-Sitzung lediglich die Kontrolle zurück.
Eine Reihe von Beispielprogrammen für die verschiedenen Programmiertechniken ist in der Natural CICS Source Library enthalten. Siehe auch Natural CICS-Beispielprogramme
Sie können eine Natural-Sitzung aus einem Natural-Programm heraus starten, indem Sie
die externe Subroutine CMTASK aufrufen. Siehe dazu das
Natural-Beispielprogramm ASYNCICS in der Library SYSEXTP.
Die folgende Liste mit Parametern muss übergeben werden, um Natural von einem Benutzer-Frontend-Programm aus aufzurufen:
| Pos. | Inhalt |
|---|---|
1 - 4 |
Aufrufende Transaktionskennung
Dieser Wert muss mit der aktuellen Transaktionskennung übereinstimmen. Über die aufrufende Transaktionskennung erkennt Natural, dass es von einem Benutzer-Frontend-Programm aufgerufen wurde. Beim Aufruf mit |
5 - 8 |
Adresse/Offset des dynamischen Parameterstrings
Wenn dynamische Parameterüberschreibungen ausgewertet werden sollen, sollte dieser Wert auf die Adresse gesetzt werden, die 12 Bytes vor dem dynamischen Parameterzuweisungsstring liegt. Beim Aufruf mit |
9 - 10
|
Länge des dynamischen Parameterstring
Null bedeutet, dass keine Parameter übergeben werden sollen. |
11 - 14
|
Natural-Transaktionskennung
Der angegebene Wert ist die Transaktionskennung, die zur Steuerung einer
pseudokonversationellen Natural-Sitzung verwendet wird, wenn diese mit
Wird die Natural-Transaktionskennung nicht angegeben, startet Natural erneut mit der Transaktionskennung, mit der die aktuelle CICS-Task gestartet wurde, und das Frontend-Programm erhält nach jeder pseudokonversationellen Ein-/Ausgabe wieder die Kontrolle zurück. |
15 - 22
|
Name des Backend-Programms
Dieser 8-Byte-Wert ist der Name des Programms, an das die Kontrolle am Ende der
Natural-Sitzung mit einem CICS Wenn das erste Byte dieses Feldes numerisch ist, führt Natural einfach
Die Konventionen für den Aufruf von Nicht-Natural-Backend-Programmen finden Sie unter Konventionen für den Aufruf von Backend-Programmen in der Natural Operations-Dokumentation. |
Bei der Rückkehr zum Frontend gibt Natural in der TWA an, ob die Sitzung beendet wurde
oder nicht: Wenn die Sitzung beendet wurde, enthält die TWA reguläre Backend-Informationen
(siehe Konventionen für den
Aufruf von Backend-Programmen in der
Operations-Dokumentation), andernfalls setzt Natural die
NEXTTRANSID in die ersten vier Bytes der TWA.
Wenn Natural im pseudokonversationellen Modus läuft (Profilparameter PSEUDO auf ON
gesetzt) und durch EXEC CICS LINK (oder die entsprechende
Anforderung auf CICS-Makroebene) aufgerufen wurde, wird die ursprüngliche aufrufende
Transaktion jedes Mal aufgerufen, wenn Natural auf ein Terminal schreibt und auf eine
Eingabe wartet, was bedeutet, dass Natural eine "logische"
CICS RETURN TRANSID (..) ausgibt, nachdem es seine Neustartinformationen in
den CICS-Zwischenspeicher geschrieben hat.
Die aufrufende Transaktion muss diese Situation erkennen (z.B. durch Überprüfung, ob ein
NEXTTRANSID gesendet wurde oder durch das Vorhandensein von
NCOMxxxx TS-Sätzen - wobei NCOM die Natural
CICS-Parametergenerierungsoption und xxxx die
Terminalkennung ist -) und die Kontrolle an Natural zurückgeben.
Der Vorteil dieser Vorgehensweise ist, dass das Frontend-Programm während der Sitzung beschließen kann, die Kontrolle an eine andere Anwendung (z.B. COBOL) zu übergeben und die Natural-Sitzung später wieder aufzunehmen.
Weitere Einzelheiten finden Sie in der Beschreibung des Parameters PSEUDO in der
Parameter-Referenz-Dokumentation.
Natural behandelt ein LINK-Frontend-Programm beim Beenden der Sitzung wie ein Backend-Programm, d.h. es gelten die Konventionen für den Aufruf von Backend-Programmen.
Stellen Sie sicher, dass alle beteiligten CICS-AORs auf die
NCOMxxxx TS-Sätze zugreifen können (z.B.
über entsprechende CICS-TST-Definitionen).
Alternativ kann das LINK-Frontend-Programm die NCI-Sitzungsneustart-Informationen bei Task-Ende auch im CICS-Zwischenspeicher abholen und selbst in einer CICS-COMMAREA übergeben. Eine solche COMMAREA muss dann vor dem Aufruf von Natural zur Sitzungswiederaufnahme wieder im CICS-Zwischenspeicher abgelegt werden.
Frontend-Aufruftechnik funktioniert nur bei Natural-Terminalsitzungen. Natural sucht nach
Startparametern, die mit dem COMMAREA übergeben werden. Beachten Sie, dass bei dieser
Technik potenzielle dynamische Parameter nicht verkettet an die Frontend-Parameter
übergeben werden können, d.h. die Adressfelder der dynamischen Parameter müssen Null sein.
Stattdessen können potenzielle dynamische Parameter über Terminaleingabedaten übergeben
werden, die Natural durch ein EXEC CICS RECEIVE-Kommando
erhält.
Wenn es sich bei der Natural-Sitzung um eine gestartete Task handelt (d.h. durch ein
EXEC CICS START- oder EXEC CICS
LINK/XCTL-Kommando von einem gestarteten Frontend-Benutzerprogramm
aufgerufen), sucht Natural zunächst nach mit der COMMAREA gelieferten Startparametern,
dann nach Parametern in der TWA und schließlich versucht es, die erforderlichen Parameter
durch ein EXEC CICS RETRIEVE-Kommando zu erhalten.
Wenn die Natural-Sitzung von einem Frontend-Programm mit XCTL
initiiert wird und kein Rückkehrprogramm angegeben ist (d.h. weder ein fünfter Parameter
in den Sitzungsstartparametern noch eine PROGRAM-Angabe in den
dynamischen Natural-Parametern oder dem NTPRM-Makro), startet Natural die
Benutzer-Frontend-Transaktion bei Sitzungsende über RETURN mit
TRANSID neu, indem es intern eine Angabe
PROGRAM='RET=xxx' simuliert, wobei
xxx der Code der Frontend-Transaktion ist.
Um eine Schleifenbildung zu vermeiden, muss in die Benutzer-Frontend-Routine eine Logik aufgenommen werden, die entscheidet, ob eine neue Sitzung gestartet oder eine alte Sitzung fortgesetzt werden soll.
Wenn die Natural-Sitzung über DPL aufgerufen wird, stellt Natural zunächst fest, ob sie
direkt in der Server-Region oder indirekt über EXEC CICS
LINK/XCTL durch ein lokales Frontend-Programm aufgerufen wird. Bei einem
direkten Aufruf holt Natural die Startparameter aus der CICS COMMAREA. Beim indirekten
Aufruf sucht Natural nach Startparametern, die mit der COMMAREA geliefert werden, und dann
nach Parametern in der TWA. Bei der Rückkehr übergibt Natural normale Backend-Daten in der
TWA, wenn ein lokales LINK-Frontend-Programm verfügbar ist, andernfalls gibt es die
Abbruchmeldung und potenzielle Backend-Daten in der COMMAREA des Remote-Client zurück.
Wenn die Natural-Sitzung von einem Frontend-Programm initiiert wird und dieses Programm auch als Rückkehrprogramm angegeben ist, sollte das Benutzer-Frontend auch die initiierende Transaktionskennung überprüfen.
Dies gilt insbesondere dann, wenn sich das Frontend-Programm nicht im pseudokonversationellen Modus befindet, Natural aber im konversationellen Modus ist.
In diesem Fall wird Natural erneut aufgerufen, anstatt beendet zu werden, aber dieses Mal ohne zu erkennen, dass es von einem Frontend-Programm aufgerufen wird, da der erste Parameter in den Startparametern die Natural-Transaktionskennung ist.