Dieses Kapitel beschreibt die Servicemodule der Natural IMS TM-Schnittstelle.
Die folgenden Themen werden behandelt:
CMDEFSW - Aufgeschobenen Transaktionswechsel zu einem Natural-Transaktionscode ausführen
CMDEFSWX - Aufgeschobenen Transaktionswechsel zu einem Nicht-Natural-Transaktionscode durchführen
CMDIRNMX - Wechsel zu einer anderen konversationellen Transaktion ohne Nachricht durchführen
CMDIRNMZ - Wechsel zu einer anderen konversationellen Transaktion ohne Nachricht durchführen
CMDIRSWX - Wechsel zu einer anderen konversationellen Transaktion mit Nachricht durchführen
CMDIRSWZ - Wechsel zu einer anderen konversationellen Transaktion mit Nachricht durchführen
CMQTRAN - Inhalt des aktuellen Transaktionscode-Tabelleneintrags zurückgeben
CMQUEUEX - Vollständige Kontrolle über den Nachrichteninhalt erlangen
NIIDDEFS - Aufgeschobenen Wechsel zu einer Fremdtransaktion durchführen
Servicemodule führen IMS TM-spezifische Funktionen aus. Sie können
aus einem Natural-Programm heraus über die standardmäßige
Natural-Call-Schnittstelle aufgerufen werden. Beispielprogramme werden durch
ein Natural INPL in die Library SYSEXTP geladen.
Dieser Abschnitt enthält detaillierte Beschreibungen der Servicemodule in alphabetischer Reihenfolge. Dazu gehört auch eine Liste der zur Verfügung stehenden Parameter und der Name des modulrelevanten Beispielprogramms.
Das Modul CMCMMND gibt IMS TM-Operator-Kommandos aus
und sendet die Antwortsegmente an das Natural-Anwenderprogramm zurück.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Command |
Eingabe | ||
Command length |
(B4) | Eingabe | |
Reply |
Ausgabe | ||
Length of reply area |
(B4) | Eingabe |
Das im Kommandobereich enthaltene Operator-Kommando wird mit der angegebenen Länge an IMS TM ausgegeben.
Wenn der Benutzer eine Antwortlänge ungleich Null eingestellt hat,
werden alle Antwortsegmente von IMS TM über die maximal verfügbare Länge in den
Antwortbereich verschoben. Wenn der Antwortbereich mindestens zwei Bytes lang
ist, enthalten die ersten beiden Bytes den IMS TM-Statuscode, nachdem der
Kommandoaufruf erfolgt ist. Die beiden äußersten rechten Bytes des
REPLGTH-Feldes enthalten die effektive Länge der gesamten Antwort,
die in das REPLY-Feld übertragen wurde.
Wenn die Antwort von IMS TM gekürzt werden muss, wird dies durch
Setzen von X'80' im ganz linken Byte des
REPLGTH-Feldes angezeigt.
Beispielprogramm: NIPSCMND
Das Modul CMDEFSW führt einen verzögerten
Transaktionswechsel zu einem Natural-Transaktionscode durch.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Trancode |
Eingabe |
Bei der nächsten Terminal-E/A wird die Ausgabe an das Terminal gesendet und die nächste Eingabe von diesem Terminal wird durch den als Parameternachricht übergebenen Transaktionscode verarbeitet.
Das Modul CMDEFSWX führt einen aufgeschobenen Wechsel
zu einem Nicht-Natural-Transaktionscode durch.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Trancode |
Eingabe | Transaktionscode | |
Message |
Eingabe | Nachricht | |
Message length |
Eingabe | Länge der Nachricht | |
MOD name |
Eingabe | MOD-Name |
Bei der nächsten Terminal-E/A wird die gegebene Nachricht mit dem
gegebenen MOD_name eingefügt und die Natural-Sitzung
wird beendet.
Wenn der neue Transaktionscode ein Natural-Transaktionscode ist,
werden die Nachricht und der MOD_name, die als Parameter
übergeben wurden, ignoriert und CMDEFSWX funktioniert wie
CMDEFSW.
Beispielprogramm: NIPSDEFX.
Das Modul CMDIRNMX hat die gleiche Funktionalität wie
CMDIRSWX, mit dem
Unterschied, dass keine Nachricht auf dem alternativen PCB eingefügt wird. Der
einzige Parameter, den Sie angeben müssen, ist daher
Trancode.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
| Trancode | Eingabe | Transaktionscode |
CMDIRNMX kann auch verwendet werden, um direkt zu einem
anderen Natural-Transaktionscode zu wechseln, da in diesem Fall standardmäßig
die Taste CLEAR als Eingabenachricht an Natural übergeben wird.
Wenn Sie zu einem Nicht-Natural-Transaktionscode wechseln wollen,
wird dringend empfohlen, stattdessen das Statement
TERMINATE
in Verbindung mit dem Servicemodul CMTRNSET zu verwenden.
CALL 'CMTRNSET' TRANCODE /* set transaction code */ TERMINATE /* terminate Natural and call TRANCODE */
Das Modul CMDIRNMZ hat die gleiche Funktionalität wie
CMDIRSWZ, mit dem
Unterschied, dass keine Nachricht in den alternativen PCB eingefügt wird. Der
einzige Parameter, den Sie angeben müssen, ist daher
Trancode.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Trancode |
Eingabe | Transaktionscode |
Das Modul CMDIRSWX führt einen direkten Wechsel zu
einer anderen konversationellen Transaktion durch und gibt eine Nachricht an,
die an diese neue Transaktion weitergegeben werden soll.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Trancode |
Eingabe | Transaktionscode | |
Message |
Eingabe | Nachricht | |
Message length |
(B4) | Eingabe | Länge der Nachricht |
Bei der nächsten Terminal-E/A wird ein Änderungsaufruf gegen den
alternativen PCB ausgeführt, um dessen Ziel auf den Wert des Feldes
Trancode zu setzen. Die SPA und die Nachricht werden
dann in den alternativen PCB eingefügt.
Der neue Transaktionscode wird daraufhin überprüft, ob es sich um einen Natural- oder einen Nicht-Natural-Transaktionscode handelt.
Im Falle eines Nicht-Natural-Transaktionscodes wird die Natural-Sitzung abgebrochen.
Bei einem Natural-Transaktionscode wird die Taste CLEAR
als Eingabenachricht an Natural übergeben, was bedeutet, dass Natural so
reagiert, als ob der Terminalbenutzer die Taste CLEAR gedrückt
hätte. Der Typ des neuen Transaktionscodes wird automatisch übernommen.
Wenn Sie zu einem Nicht-Natural-Transaktionscode wechseln wollen,
wird dringend empfohlen, stattdessen das
TERMINATE-Statement
in Verbindung mit dem Servicemodul CMTRNSET zu verwenden.
CALL 'CMTRNSET' TRANCODE /* set transaction code */ TERMINATE 0 MESSAGE /* terminate Natural and call TRANCODE with MESSAGE */
Die Nachricht MESSAGE wird in der Länge der
Natural-Variablen Message an den Transaktionscode
Trancode übergeben. Der Rückgabecode des
TERMINATE-Statements muss Null sein. Andernfalls wird die
Natural-Sitzung mit der Abbruchfehlermeldung NAT9987 abgebrochen und der
Transaktionscode-Wechsel findet nicht statt.
Beispielprogramm: NIPSDIRX
Das Modul CMDIRSWZ hat die gleiche Funktionalität wie
CMDIRSWX.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Trancode |
Eingabe | Transaktionscode | |
Message |
Eingabe | Nachricht | |
Message length |
(B4) | Eingabe | Länge der Nachricht |
Der Unterschied zu CMDIRSWX besteht darin, dass im
Falle eines Wechsels zu einem Nicht-Natural-Transaktionscode die aktuelle
Natural-Sitzung nicht abgebrochen wird. Dies geschieht in der folgenden
Absicht:
Eine bestimmte Natural-Sitzung gibt die Kontrolle an einen Nicht-Natural-Transaktionscode ab. Die Sitzung wird nicht abgebrochen.
Die Nicht-Natural-Transaktion führt eine Terminal-E/A durch und schaltet dann zurück zur ursprünglichen Natural-Transaktion und gibt Daten in die SPA weiter.
Die Natural-Transaktion beginnt keine neue Sitzung, sondern setzt die alte Sitzung dort fort, wo sie sie verlassen hat. Der Roll Slot wird vom Roll Server geholt und die Kontrolle an Natural übergeben, um so mit einer bestehenden Sitzung fortzufahren.
Der Nicht-Natural-Transaktionscode muss die Nachricht
LLZZD übermitteln, wobei LL=H'0005',
ZZ=X'0000' und D=X'6D' gegenüber Natural simulieren,
dass die Taste CLEAR gedrückt wurde. Indem das Natural-Programm für
die CLEAR-Taste sensibilisiert wird, kann es erkennen, dass die
aufgerufene Nicht-Natural-Transaktion wieder da ist, und es kann die von der
Nicht-Natural-Transaktion vorbereiteten Daten zur Verwendung in der
nachfolgenden Verarbeitung abrufen.
CMDIRSWZ kann nicht verwendet werden, wenn der
Transaktionscode, zu dem gewechselt werden soll, ein Natural-Transaktionscode
ist.
Beispielprogramm: NIPSDIFS
Das Modul CMDISPCB wird verwendet, um den Inhalt eines
Program Control Block (PCB) zu ermitteln.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
PCB number |
(B4) | Eingabe | Nummer des PCB |
Receiving area |
Ausgabe | Empfangender Bereich | |
Area length |
(B4) | Eingabe | Länge des Bereichs |
Nach Ausführung des Aufrufs enthält der empfangende Bereich den
Inhalt des PCB mit der angeforderten Nummer und in der angeforderten Länge. Es
wird geprüft, ob der angeforderte PCB in Ihrer aktuellen PCB-Liste enthalten
ist. Der erste PCB ist PCB Nummer 1, der zweite PCB ist PCB Nummer 2, usw. Wenn
Sie eine ungültige Nummer angeben, wird das Feld PCB
number auf X'FFFFFFFF' gesetzt und es werden keine
weiteren Informationen an Ihr Anwendungsprogramm übergeben.
Beispielprogramm: NIPSPCBD
Mit dem Modul CMEMOD kann bei normaler Beendigung einer
Natural-Sitzung der MOD-Name für ein bestimmtes LTERM dynamisch
geändert werden.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
MOD name |
(A8) | Eingabe | MOD-Name |
Bei einem normalen Sitzungsende fügt die umgebungsabhängige
Schnittstelle die Nachricht X'00060000403F' in den IOPCB ein und
verwendet dabei den MOD-Namen, dessen Wert im Parameter MOD
name enthalten ist. Damit soll dem Terminalbenutzer ein
aussagefähiger Bildschirm (z.B. ein allgemeines Menü) präsentiert werden, damit
er seine Arbeit am Terminal fortsetzen kann.
Das Modul CMGETMSG liest die nächste Nachricht aus der
Nachrichtenwarteschlange.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Message area |
Ausgabe | Nachrichtenbereich | |
Message area length |
(B4) | Eingabe | Länge des Nachrichtenbereichs |
Die Länge wird überprüft, um festzustellen, ob die empfangene
Nachricht in den Nachrichtenbereich passt. Die Nachricht wird einschließlich
der LLZZ-Bytes in den Nachrichtenbereich verschoben. Gibt es keine
weiteren Nachrichten, wird LL=0 in den Nachrichtenbereich
verschoben.
Passt die Nachricht nicht in den Nachrichtenbereich, wird eine entsprechende Fehlermeldung zurückgegeben.
Beispielprogramme: NIPSGETM und
NIPSOBMP.
Das Modul CMGETSEG liest das nächste Segment der
aktuellen Nachricht aus der Nachrichtenwarteschlange.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Message area |
Ausgabe | Nachrichtenbereich | |
Message area length |
(B4) | Eingabe | Länge des Nachrichtenbereichs |
Die Länge wird überprüft, um festzustellen, ob die empfangene
Nachricht in den Nachrichtenbereich passt. Das Nachrichtensegment wird
einschließlich der LLZZ-Bytes in den Nachrichtenbereich
verschoben. Sind keine weiteren Nachrichtensegmente vorhanden, wird
LL=0 in den Nachrichtenbereich verschoben.
Passt die Nachricht nicht in den Nachrichtenbereich, wird eine entsprechende Fehlermeldung zurückgegeben.
Alle gelesenen Nachrichtensegmente werden zu einem String verkettet
im internen Eingabe-Nachrichtenpuffer aufbewahrt, dessen Größe durch den
Schlüsselwort-Subparameter MISIZE
des Makros NTIMPSPE festgelegt wird (siehe
Parameter-Referenz-Dokumentation).
Wenn Sie einen Überlauf des internen Eingabenachrichtenpuffers
vermeiden wollen, können Sie anstelle von CMGETSEG das Modul
CMGSEGO verwenden.
Beispielprogramm: NIPSOBMP
Das Modul CMGETSPA überträgt die Daten aus der SPA ab
dem angegebenen Offset in der gewünschten Länge in den Empfangsbereich.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Offset |
(B4) | Eingabe | Versatz |
Length |
(B4) | Eingabe | Länge |
Area |
(B4) | Ausgabe | Bereich |
Programmbeispiele: NIPSGSPA und
NIPSPSPA
Das Modul CMGSEGO liest das nächste Segment der
aktuellen Nachricht aus der Nachrichtenwarteschlange.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Message area |
Ausgabe | Nachrichtenbereich | |
Message area length |
(B4) | Eingabe | Länge des Nachrichtenbereichs |
Die Länge wird überprüft, um festzustellen, ob die empfangene
Nachricht in den Nachrichtenbereich passt. Das Nachrichtensegment wird
einschließlich der LLZZ-Bytes in den Nachrichtenbereich
verschoben. Sind keine weiteren Nachrichtensegmente vorhanden, wird
LL=0 in den Nachrichtenbereich verschoben.
Passt die Nachricht nicht in den Nachrichtenbereich, wird eine entsprechende Fehlermeldung zurückgegeben.
Nur das erste und das aktuelle Nachrichtensegment werden im internen
Eingabepuffer aufbewahrt, dessen Größe durch den Subparameter
MISIZE
des Makros NTIMPSPE festgelegt wird (siehe
Parameter-Referenz-Dokumentation). Wenn Sie alle
Nachrichtensegmente behalten wollen, müssen Sie anstelle von
CMGSEGO das Modul CMGETSEG verwenden.
Beispielprogramm: NIPSOBMP
Mit dem Modul CMIMSID können Natural-Programme die
MVS-Subsystemkennung des IMS TM-Systems abfragen, in dem sie zurzeit eingeplant
sind.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
IMSID |
(A4) | Ausgabe | Subsystemkennung |
Nach der Ausführung des Aufrufs enthält das Feld
IMSID die MVS-Subsystemkennung des IMS TM-Systems, für
das Sie zurzeit eingeplant sind.
Das Modul CMIMSID hängt von einem internen IMS
TM-Kontrollblock ab. Es handelt sich daher um eine IMS TM-release-abhängige
Funktion, die aktualisiert wird, wann immer dies möglich ist.
Das Modul CMIMSINF liefert Informationen zur
Systemumgebung.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
IMSID |
(A4) | Ausgabe | Die IMS TM-Kennung. |
SUFFIX |
(A2) | Ausgabe | Das Preload-Suffix. |
APPLGNAM |
(A8) | Ausgabe | Der Gruppenname der Anwendung. |
APPLNAM |
(A8) | Ausgabe | Der Name der Anwendung. |
NRENT |
(B4) | Ausgabe | Die Anzahl der vorab geladenen reentranten Module. |
NNONR |
(B4) | Ausgabe | Die Anzahl der vorab geladenen nicht-reentranten Module. |
CMIMSINF ist ebenfalls ein IMS TM Release-abhängiges Modul.
Beispielprogramm: NIPSINF
Das Modul CMPCBADR gibt die Adresse eines PCB zurück,
der durch einen logischen Namen identifiziert wird. Der PSB-Name wird ebenfalls
an das Natural-Programm zurückgegeben.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
PSB name |
(A8) | Ausgabe | Der PSB-Name. |
PCB name |
(A8) | Eingabe | Der PSB-Name. |
PCB address |
(B4) | Ausgabe | Die PSB-Adresse. |
Nach der Ausführung des Aufrufs enthält das Feld PCBADR
die Adresse des PCB, der im Tabellenmodul durch den logischen Namen
PCBNAME in dem Tabelleneintrag identifiziert wird, der
dem aktuell eingeplanten Transaktionscode entspricht. Existiert der logische
Name für diesen Transaktionscode nicht, wird im Feld
PCBADR der Wert X'FFFFFFFF' zurückgegeben.
In jedem Fall enthält das Feld PSBNAME den Namen des
aktuell eingeplanten PSB.
Beispielprogramm: NIPSPCBA
Das Modul CMPRNTR ändert das vom Modul
NIIIMSHC gesetzte Standard-Hardcopy-Ziel in den als Parameter
übergebenen Wert.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Destination |
(A8) | Eingabe | Das Hardcopy-Ziel. |
Das Modul CMPRNTR wird nur aus Kompatibilitätsgründen
bereitgestellt. Verwenden Sie stattdessen das Natural-Statement
SET CONTROL
hdest-id.
Das Modul CMPUTMSG kann verwendet werden, um eine
beliebige Ausgabemeldung mit einer gegebenen Länge unter Verwendung eines
gegebenen MFS MOD name in den IO-PCB einzufügen. Auf diese Weise
können Sie MFS-formatierte Ausgabemeldungen an den Absender der
Eingabenachricht zurücksenden.
CMPUTMSG entnimmt die in der Nachrichtenlänge
angegebene Anzahl von Bytes aus dem Nachrichtenbereich und fügt sie mit dem
angegebenen MOD name in die Nachrichtenwarteschlange ein. Es gibt
keine Beschränkung bezüglich der Länge der Nachricht, außer dass sie in den
Eingabe-Nachrichtenbereich der umgebungsabhängigen Schnittstelle passen
muss.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Message area |
Eingabe | Nachrichtenbereich | |
Message length |
(B4) | Eingabe | Nachrichtenlänge |
MOD name |
Eingabe | MOD-Name |
Wird in der IO-PCB ein nicht leerer Statuscode zurückgegeben, wird die Natural-Fehlermeldung NAT8272 ausgegeben, die den Statuscode als variablen Teil enthält.
Das Modul CMPUTSPA verschiebt die Daten mit der
angegebenen Länge und dem angegebenen Offset in die SPA.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Offset |
(B4) | Eingabe | Versatz |
Length |
(B4) | Eingabe | Länge |
Data |
Eingabe | Daten |
Es wird geprüft, ob der angegebene Offset in die Natural Reserved Area (NRA) innerhalb der SPAs zeigt. Wenn ja, wird der Rückgabecode 4 zurückgegeben.
Beispielprogramm: NIPSPSPA
Das Modul CMQTRAN gibt den Inhalt des aktuellen
Eintrags in der Transaktionscode-Tabelle zurück.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Transaction code |
Ausgabe | Der Transaktionscode, unter dem Sie gerade arbeiten. | |
Offset |
(B2) | Ausgabe | Der Versatz der NRA zu der SPA. |
Length |
(B2) | Ausgabe | Die Länge der NRA. |
Uoffset |
(B2) | Ausgabe | Nicht verwendet. |
PSB name |
Ausgabe | Der Name des geplanten PSB. | |
Number of PCBs |
Ausgabe | Die Anzahl der PCBs, deren Adressen Sie über das Modul
CMPCBADR erhalten können.
|
Die logischen Namen, mit denen Sie im Modul CMPCBADR
auf PCBs verweisen können, werden aus Security-Gründen nicht zurückgegeben. Sie
sollten sich von Ihrem Systemverwalter darüber informieren lassen, auf welche
logischen Namen Sie verweisen dürfen.
Beispielprogramm: NIPSQTRA
Das Modul CMQUEUE fügt eine Nachricht in den
angegebenen alternativen PCB ein.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Destination |
Eingabe | Ziel | |
Message |
Eingabe | Nachricht | |
Message length |
(B4) | Eingabe | Nachrichtenlänge |
TP PCB number |
(B4) | Eingabe | Optional |
Dieser Aufruf bewirkt einen sofortigen Änderungsaufruf, mit dem das
Ziel des angegebenen alternativen PCB auf den im Feld
Destination enthaltenen Wert gesetzt wird, woraufhin die
Nachricht in den alternativen PCB mit der angegebenen Nachrichtenlänge
eingefügt wird.
Der Transaktionscode wird nach den LLZZ-Bytes mit einer
Länge von 8 eingefügt.
Nachdem ein PURGE-Aufruf ausgegeben
worden ist, wird die Kontrolle an das nächste Statement im Natural-Programm
zurückgegeben.
Die Nachricht kann eine beliebige Länge bis zur Größe des Eingabenachrichtenbereichs haben (normalerweise 8000 minus 12 Byte).
Der zu verwendende alternative PCB wird mit dem letzten, optionalen,
Parameter angegeben. Wird beim Aufruf keine TP PCB
number angegeben, wird der mit dem Subparameter
ALTPCB
des Makros NTIMSPT (im Natural-Parametermodul) angegebene
alternative TP PCB verwendet.
Beispielprogramm: NIPSQLOA
Das Modul CMQUEUEX ermöglicht Ihnen die vollständige
Kontrolle über den Inhalt einer Nachricht, die in die IMS
TM-Eingabewarteschlange gestellt werden soll.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Destination |
Eingabe | Ziel | |
Message |
Eingabe | Nachricht | |
Message length |
(B4) | Eingabe | Nachrichtenlänge |
TP PCB number |
(B4) | Eingabe | Optional |
Dieser Aufruf bewirkt einen sofortigen Änderungsaufruf, um das Ziel
des angegebenen alternativen PCB auf den im Feld
Destaination enthaltenen Wert zu setzen, woraufhin die
Nachricht in den alternativen PCB mit der angegebenen Nachrichtenlänge nach den
LLZZ-Bytes eingefügt wird. Der Unterschied zu
CMQUEUE besteht darin,
dass dort der Transaktionscode nicht nach den LLZZ-Bytes
eingefügt wird.
Nach einem PURGE-Aufruf wird die
Kontrolle an das nächste Statement im Natural-Programm zurückgegeben. Die
Nachricht kann eine beliebige Länge bis zur Größe des
Eingabenachrichtenbereichs haben (normalerweise 8000 minus 12 Byte).
Der zu verwendende alternative PCB wird mit dem letzten, optionalen,
Parameter angegeben. Wird beim Aufruf keine TP PCB-Nummer angegeben, wird der
mit dem Subparameter ALTPCB
des Makros NTIMSPT (im Natural-Parametermodul) angegebene
alternative TP PCB verwendet.
Beispielprogramm: NIPSQUEX
Das Modul CMSNFPRT setzt den logischen Namen des
Geräts, an das die Natural-Nachrichten während des Online-BMP-Laufs gesendet
werden.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Printer name |
Eingabe | Name des Druckers |
Vor dem Aufruf von CMSNFPRT müssen Sie mit dem
Natural-Profilparameter SENDER das
Standard-Ausgabeziel definieren.
Beispielprogramm: NIPSOBMP
Das Modul CMSVC13D bricht die Natural-Sitzung mit dem
Benutzerabbruchcode U3962 ab und erzeugt einen Dump.
Parameter: Keine
Beispielprogramm: Keines.
Wenn die Natural-Sitzung normal beendet wird, führt die Natural IMS TM-Schnittstelle einen direkten Programm-Wechsel zum angegebenen Transaktionscode durch und fügt die SPA über den alternativen PCB ein.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Trancode |
Eingabe | Transaktionscode |
Beispielprogramm: NIPSEOSS
Das Modul NIIDDEFS ist ähnlich wie das Modul
CMDEFSWX. Wenn Sie mit
NIIDDEFS einen aufgeschobenen Wechsel zu einer Fremdtransaktion
durchführen, wird die aktuelle Natural-Sitzung wie beim Modul
CMDIRSWZ unterbrochen. Die unterbrochene Natural-Sitzung kann
jederzeit wieder aufgenommen werden, indem Sie eine Nachricht mit der
CLEAR-Taste an Natural zurücksenden.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Transaction code |
Eingabe | Der Transaktionscode, zu dem gewechselt werden soll. | |
Message |
Eingabe | Die Nachricht, die an den fremden Transaktionscode gesendet werden soll. | |
Message length |
(B4) | Eingabe | Die Nachrichtenlänge. |
MOD name |
(A8) | Eingabe | Der MOD-Name. |
Transaction type |
(A4) | Eingabe | Eine Variable im Format A4, die den String
CONV enthält, wenn die fremde Transaktion konversationell ist, und
den String NONC, wenn die fremde Transaktion nicht konversationell
ist.
|
Rückgabecodes:
| 0 | OK |
|---|---|
| 4 | Die Nachrichtenlänge ist größer als die Größe des in der Umgebungstabelle definierten Nachrichtenbereichs. |
| 8 | Sie haben versucht, einen aufgeschobenen Wechsel mit Suspend von einer konversationellen Natural- zu einer nicht-konversationellen Fremdtransaktion durchzuführen, was nicht möglich ist. |
| 12 | Der fünfte Parameter ist ungültig; er enthält weder
CONV noch NONC.
|
Beispielprogramm: NIPSDEFS
Das Modul NIIDPURG hat keine Parameter. Es führt einen
PURGE-Aufruf unter Verwendung desselben alternativen
PCB aus, der beim NIIDQUMS-Aufruf verwendet wurde, und sendet
Multisegment-Nachrichten, die mit dem Modul NIIDQUMS erstellt wurden.
Rückgabecodes: Entweder enthalten die Bytes zwei und drei des 4-Byte-Rückgabecodes den Statuscode, oder der Rückgabecode hat den Wert 0.
Beispielprogramm: NIPSQLMS
Dieses Modul erstellt Multisegment-Nachrichten. Es hat grundsätzlich
die gleiche Funktionalität wie das Modul CMQUEUE, mit dem Unterschied, dass
NIIDQUMS keinen PURGE-Aufruf ausgibt.
Die folgenden Parameter werden bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Destination |
Eingabe | Ziel | |
Message |
Eingabe | Nachricht | |
Message length |
(B4) | Eingabe | Nachrichtenlänge |
TP PCB number |
(B4) | Eingabe | Optional |
Die Durchführung des PURGE-Aufrufs mit
dem Modul NIIDPURG liegt in Ihrer Verantwortung.
Der zu verwendende alternative PCB wird mit dem letzten, optionalen,
Parameter angegeben. Wird beim Aufruf keine TP PCB-Nummer angegeben, wird der
mit dem Subparameter ALTPCB
des Makros NTIMSPT (im Natural-Parametermodul) angegebene
alternative TP PCB verwendet.
Beispielprogramm: NIPSQLMS
Um einen korrekten Transaktionswechsel zu einem fremden
Transaktionscode durchführen zu können, muss der Typ des Fremdtransaktionscodes
bekannt sein. Um diesen Typ zu erhalten, kann das spezielle Modul
NIIDSETT verwendet werden. Wird NIIDSETT nicht
verwendet, wird angenommen, dass der fremde Transaktionscode vom gleichen Typ
ist wie der aufrufende Natural-Transaktionscode. Ist dies nicht der Fall, kommt
es zu unvorhersehbaren Ergebnissen oder zu einer abnormalen Beendigung der
Sitzung.
Der folgende Parameter wird bereitgestellt:
| Name | Format/Länge | Typ | Kommentar |
|---|---|---|---|
Transaction type |
(A4) | Eingabe | Mögliche Werte:
|