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, bitte wenden Sie sich an den Support der Software AG. |
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