Dieses Kapitel beschreibt die Serviceprogramme der Natural IMS TM-Schnittstelle.
Die folgenden Themen werden behandelt:
Einführung in die Serviceprogramme der Natural IMS TM-Schnittstelle
Beschreibung der Serviceprogramme der Natural IMS TM-Schnittstelle
NIIDEFT - Aufgeschobenen Wechsel zu Natural-Transaktionscode vorbereiten
NIIDEFTX - Aufgeschobenen Wechsel zu nicht-Natural-Transaktionscode vorbereiten
NIIDIRT - Direkten Wechsel zu Natural-Transaktionscode vorbereiten
NIIDIRTX - Direkten Wechsel zum Transaktionscode vorbereiten
NIIGCMD - Nächstes Antwortsegment des vorherigen IMS TM-Kommandos abrufen
NIIISRTF - Mehrere Segmente enthaltende Nachrichten erstellen
NIIISRTM - Nachrichtensegment in Nachrichtenwarteschlange einfügen
Serviceprogramme sind Natural-Subprogramme, die Natural unter IMS TM mit zusätzlicher
Funktionalität ausstatten. Sie können sie aus einem Natural-Programm heraus mit einem
Standard-CALLNAT-Statement
aufrufen.
Die Serviceprogramme werden in der Library SYSEXTP zur Verfügung gestellt.
Sie müssen sie in die Library SYSTEM oder in die Steplib kopieren.
Natural-Beispielprogramme zum Aufrufen der Serviceprogramme finden Sie ebenfalls in der
Library SYSEXTP.
Der letzte Parameter in jedem Serviceprogramm ist der Rückgabecode (Return Code). Format/Länge: (I4).
Die folgenden Rückgabecode-Werte sind für alle Serviceprogramme gleich:
| 0 | OK |
| -1 | Nicht unterstützte Funktion. Dies ist ein interner Fehler. Wenden Sie sich an den Support. |
Spezifische Rückgabecode-Werte finden Sie in den nachfolgenden Beschreibungen der einzelnen Serviceprogramme.
Wenn ein Fehler auftritt, wird entweder eine Natural-Fehlermeldung ausgegeben oder die Sitzung wird mit einer Natural-IMS-TM-Fehlermeldung beendet. Siehe Natural under IMS TM Error Messages in der Natural Messages and Codes-Dokumentation.
Die folgenden Serviceprogramme werden beschrieben:
NIIBRCST | NIICMD | NIIDEFT | NIIDEFTX | NIIDIRT | NIIDIRTX | NIIEMOD | NIIGCMD | NIIGMSG | NIIGSEG | NIIGSPA | NIIIMSIN | NIIISRTF | NIIISRTM | NIIPCBAD | NIIPCOM | NIIPMSG | NIIPSBAD | NIIPSPA | NIIPURG | NIIRETRM | NIISASD | NIIU3962
Sendet die übergebene Nachricht an das angegebene Terminal unter Verwendung des im
Parameter MOD_name angegebenen Nachrichtenausgabe-Deskriptors.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge |
|---|---|
Terminal_name |
(A8) |
Message |
(A1/1:V) |
Message_length |
(I4) |
MOD_name |
(A8) |
Return_code |
(I4) |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPGMSG
Übergibt das angegebene IMS TM-Kommando an IMS TM. Liegt eine Antwort vor, wird sie in den vorgesehenen Antwortbereich verschoben. Passt die Antwort nicht in den Antwortbereich, wird sie abgeschnitten und der Rückgabecode auf 4 gesetzt.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Command |
(A1/1:V) | Eingabe |
Command_length |
(I4) | Eingabe |
Reply_area |
(A1/1:V) | Eingabe/Ausgabe |
Reply_area_length |
(I4) | Eingabe |
Reply_length |
(I4) | Ausgabe |
Status_code |
(A2) | Ausgabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: 4 (Antwort abgeschnitten)
Beispielprogramm: NIPCMD
Bereitet einen aufgeschobenen Wechsel zu dem angegebenen Natural-Transaktionscode vor.
Bei der nächsten Terminal-E/A wird die Ausgabe an das Terminal gesendet und die nächste
Eingabe von diesem Terminal wird von dem im Parameter
Transaction_code angegebenen Transaktionscode verarbeitet.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Transaction_code |
(A8) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPDEFT
Bereitet einen aufgeschobenen Wechsel zu einem Nicht-Natural-Transaktionscode vor. Bei
der nächsten Terminal-E/A wird die Ausgabe an das Terminal mit dem in
MOD_name angegebenen Namen gesendet und die nächste Eingabe von
diesem Terminal wird von dem im Parameter Transaction_code
angegebenen
Ist Suspend_flag auf Y gesetzt, wird die
Natural-Sitzung unterbrochen und kann später wieder aufgenommen werden. Wenn die
Natural-Sitzung wieder aufgenommen wird, wird zunächst der letzte Natural-Bildschirm
ausgegeben.
Wenn das Suspend_flag auf Y gesetzt ist, dürfen Sie
nicht von einer konversationellen Natural-Sitzung zu einem nicht-konversationellen
Transaktionscode wechseln. In diesem Fall wird eine Natural-Fehlermeldung ausgegeben.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Transaction_code |
(A8) | Eingabe |
Transaction_type |
(A4) | Eingabe
Mögliche Werte:
|
Suspend_flag |
(A1) | Eingabe
Mögliche Werte:
|
MOD_name |
(A8) | Eingabe |
Message |
(A1/1:V) | Eingabe |
Message_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPDEFTX
Bereitet einen direkten Wechsel zu einem angegebenen Natural-Transaktionscode vor. Beim
nächsten Terminal Write wird das Kommando CHNG an den
angegebenen Transaktionscode ausgegeben und der Natural-Bildschirm wird mit dem
alternativen TP PCB eingefügt.
Wenn Sie von einer konversationellen Natural-Sitzung zu einer nicht-konversationellen
wechseln, wird die Konversation beendet und eine Dummy-Nachricht mit dem
MOD_Name
NIIMODNC eingefügt. Diese Nachricht hebt den Schreibschutz des Bildschirms
vorübergehend auf und wird daher durch den ersten Bildschirm der nicht-konversationellen
Natural-Sitzung überschrieben.
| Parameter | Format/Länge | Typ |
|---|---|---|
Transaction_code |
(A8) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPDIRT
Bereitet einen direkten Wechsel zu dem angegebenen Transaktionscode vor. Beim nächsten
Terminal Write wird der CHNG-Aufruf für den neuen Transaktionscode
ausgegeben, und die Nachricht und/oder die SPA werden mit dem alternativen TP PCB
eingefügt. Der Transaktionstyp definiert die Art des neuen Transaktionscodes.
Wenn Sie von einem konversationellen Transaktionscode zu einem
nicht-konversationellen Transaktionscode wechseln, wird die Konversation beendet,
indem eine Dummy-Nachricht mit dem MOD_name
NIIMODN ausgegeben wird, die den Schreibschutz des Bildschirms
vorübergehend aufhebt, so dass er durch den Bildschirm überschrieben wird, der von dem
nicht-konversationellen Transaktionscode ausgegeben wird.
Wenn Suspend_flag auf Y gesetzt ist, wird die
Natural-Sitzung unterbrochen und kann zu einem späteren Zeitpunkt wieder aufgenommen
werden. Wenn die Natural-Sitzung wieder aufgenommen wird, wird der letzte
Natural-Bildschirm ausgegeben.
Wenn Suspend_flag auf Y gesetzt ist, dürfen Sie
nicht von einem konversationellen Natural zu einem nicht konversationellen
Transaktionscode wechseln. In diesem Fall wird eine Natural-Fehlermeldung ausgegeben.
Wenn die Nachrichtenlänge (Message_length) auf Null gesetzt
ist, wird überhaupt keine Nachricht eingefügt. Dies ist jedoch nur möglich, wenn Sie
zu einem konversationellen Transaktionscode wechseln.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Transaction_code |
(A8) | Eingabe |
Transaction_type |
(A4) | Eingabe
Mögliche Werte:
|
Suspend_flag |
(A1) | Eingabe
Mögliche Werte:
|
Message |
(A1/1:V) | Eingabe |
Message_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPDIRTX
Ändert die aktuelle Einstellung des Modul-Ausgabe-Deskriptors, der beim Einfügen der
letzten Nachricht in einer Natural-Sitzung verwendet wird, und setzt ihn auf den im
Parameter MOD_name angegebenen Wert.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
MOD_name |
(A8) | Eingabe |
Return_code |
(I4) | Ausgabe |
Beispielprogramm: NIPEMOD
Ruft das nächste Antwortsegment eines zuvor erteilten IMS TM-Kommandos ab. Die Länge der
Antwort wird über den Parameter Reply_length zurückgegeben. Wenn
die Antwort nicht in den Antwortbereich passt, wird die Antwort abgeschnitten und der
Rückgabecode-Wert 4 ausgegeben.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Reply_area |
(A1/1:V) | Eingabe/Ausgabe |
Reply_area_length |
(I4) | Eingabe |
Reply_length |
(I4) | Ausgabe |
Status_code |
(A2) | Ausgabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: 4 (Antwort abgeschnitten)
Beispielprogramm: NIPCMD
Ruft das erste Segment der nächsten Nachricht aus der Nachrichtenwarteschlange ab, indem
ein GU ausgegeben wird. Der Nachrichtenbereich enthält die abgerufene Nachricht
einschließlich der führenden LLZZ-Bytes. Befinden sich keine Nachrichten in
der Nachrichtenwarteschlange, wird LLZZ auf Null gesetzt.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Message_area |
(A1/1:V) | Ausgabe |
Message_area_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramme: NIPGMSG, NIPGSEG
Ruft das nächste Segment der Eingabenachricht ab, indem ein GN-Aufruf ausgeführt wird.
Der Nachrichtenbereich enthält die abgerufene Nachricht einschließlich der führenden
LLZZ-Bytes. Gibt es keine weiteren Nachrichtensegmente in der aktuellen
Nachricht, wird LLZZ auf Null gesetzt.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Message_area |
(A1/1:V) | Ausgabe |
Message_area_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPGSEG
Ruft aus der SPA Daten ab, die am angegebenen Offset und in der angegebenen Länge beginnen.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Offset |
(I4) | Eingabe |
Length |
(I4) | Eingabe |
Area |
(A1/1:V) | Eingabe/Ausgabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: 4
Die abgerufenen Daten befinden sich ganz oder teilweise in dem für Natural reservierten Teil der SPA.
Beispielprogramm: NIPGSPA
Ruft die IMS TM-Umgebungsinformationen über den Aufruf INQY ENVIRON ab. Wenn
Sie eine Reply_area_length kleiner als 102 angeben, wird die
Antwort abgeschnitten und Sie erhalten den Rückgabecode X'0100' mit dem
Reasoncode X'000C'.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Reply_area |
(A1/1:V) | Ausgabe |
Reply_area_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: nnxx
Bedeutung:
nn: Die ersten 2 Bytes enthalten den Rückgabecode von AIB.
xx: Die zweiten 2 Bytes enthalten den AIB Reason Code. AIB steht für "Application Interface Block" und wird beim Aufruf von IMS TM über die AIBTDLI-Schnittstelle verwendet.
Beispielprogramm: NIPIMSIN
Erzeugt mehrere Segmente enthaltende Nachrichten. NIIISRTF führt den
CHNG-Aufruf für das angegebene Ziel aus und fügt das erste
Nachrichtensegment ein, ohne einen PURG-Aufruf durchzuführen. Weitere
Nachrichtensegmente können mit NIIISRTM eingefügt werden. Die Nachricht muss mit
NIIPURG abgeschlossen werden. Die LLZZ-Bytes werden vom
Service-Modul erzeugt.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Destination |
(A8) | Eingabe |
Message |
(A1/1:V) | Eingabe |
Message_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPISRTM
Fügt das nächste Nachrichtensegment in die Nachrichtenwarteschlange ein, ohne einen
CHNG- oder PURG-Aufruf durchzuführen. Die
LLZZ-Bytes werden durch das Servicemodul erstellt.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Message |
(A1/1:V) | Eingabe |
Message_length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPISRTM
Gibt den Namen des aktuell geplanten PSB und die Adresse des durch den logischen Namen identifizierten PCB zurück. Wenn der logische PCB-Name nicht in der Transaktionscode-Tabelle definiert ist, wird eine Natural-Fehlermeldung ausgegeben.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
PSB_name |
(A8) | Ausgabe |
Logical_PCB_name |
(A8) | Eingabe |
PCB_address |
(B4) | Ausgabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPPCBAD
Verschiebt die im Datenbereich bereitgestellten Daten in den im
NIIBOOTS-Aufruf angegebenen Antwortbereich am angegebenen Offset und in der
angegebenen Länge. NIIPCOM kann nur aus der Server-Umgebung aufgerufen
werden.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Offset |
(I4) | Eingabe |
Data_area |
(A1/1:V) | Eingabe |
Length |
(I4) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Returncode-Werte: 4 (aufrufende Umgebung, Nicht-Server-Umgebung)
Beispielprogramm: NIPPCOM
Sendet eine Nachricht mit einem gegebenen MOD_name an das Ziel,
das durch den E/A PCB repräsentiert wird. Die Nachricht wird aus dem Nachrichtenbereich
und in der angegebenen Nachrichtenbereichslänge entnommen. Der Nachrichtenbereich darf die
führenden LLZZ-Bytes nicht enthalten. Auf diese Weise können Sie
MFS-formatierte Ausgabenachrichten an den Absender der Eingabenachricht zurücksenden.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Message |
(A1/1:V) | Eingabe |
Message_length |
(I4) | Eingabe |
MOD_name |
(A8) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPPMSG
Gibt die Adresse der PSB zurück, die die Adresse der PCB-Adressliste ist.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
PSB_address |
(B4) | Ausgabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPBOOTS
Ersetzt die Daten in der SPA am angegebenen Offset in der angegebenen Länge durch die im Datenbereich angegebenen Daten.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Offset |
(I4) | Eingabe |
Length |
(I4) | Eingabe |
Data_area |
(A1/1:V) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Der Versuch, den Header der SPA (die ersten 14 Bytes) und/oder Daten, die sich im für Natural reservierten Bereich befinden, zu überschreiben, wird abgelehnt und es wird eine Natural-Fehlermeldung ausgegeben.
Beispielprogramm: NIPPSPA
Gibt einen PURG-Aufruf aus.
Der folgende Parameter wird bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPISRTM
Verschiebt Daten aus der Eingabenachricht ab dem angegebenen Offset und in der angegebenen Länge in den angegebenen Nachrichtenbereich.
Der Offset wird ab den LLZZ-Bytes berechnet.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Offset |
(I4) | Eingabe |
Length |
(I4) | Eingabe |
Message_area |
(A1/1:V) | Eingabe/Ausgabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPRETRM
Ändert die aktuelle Einstellung der Natural-Profilparameter SENDER und OUTDEST.
Die folgenden Parameter werden bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Sender |
(A8) | Eingabe |
Outdest |
(A8) | Eingabe |
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPNTRD
Beendet die Sitzung mit dem Benutzer-Abendcode U3962 und erzeugt einen Dump.
Der folgende Parameter wird bereitgestellt:
| Parameter | Format/Länge | Typ |
|---|---|---|
Return_code |
(I4) | Ausgabe |
Spezifische Rückgabecode-Werte: Keine.
Beispielprogramm: NIPU3962