Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form) (siehe "Typen von Makroaufrufen")
Der Makro SHOWAIX übergibt in seiner Operandenliste Informationen über die Sekundärschlüssel einer NK-ISAM-Datei. Zu jedem in der Datei definierten Sekundärschlüssel informiert er den Anwender über
den Namen des Schlüssels
die Position des Schlüssels im Datensatz
die Länge des Schlüssels
die DUPKEY-Eigenschaft des Schlüssels (mehrfach auftretende Schlüsselwerte erlaubt oder nicht erlaubt)
die Vollständigkeit der zum Schlüssel gehörenden Sekundärindexblöcke.
Format
Operation | Operanden |
|
|
| |
| |
|
Operandenbeschreibung
FILE = pfadname
Bezeichnet die NK-ISAM-Datei, über deren Sekundärschlüssel Informationen ausgegeben werden sollen, mit <c-string 1..54: filename 1..54>. Die Angabe im FILE-Operanden wird ignoriert, wenn zugleich der LINK-Operand angegeben ist.
Pfadname bedeutet [:catid:][$userid.]dateiname
catid
Katalogkennung: falls nicht angegeben, wird die Default-Catid der Benutzerkennung angenommen.
userid
Benutzerkennung: falls nicht angegeben, wird die Benutzerkennung des SET-LOGON-PARAMETERS- bzw. des LOGON-Kommandos angenommen.
dateiname
vollqualifizierter Dateiname
LINK = linkname <1..8>
Legt den Dateikettungsnamen der Datei fest, über deren Sekundärschlüssel Informationen ausgegeben werden sollen.
Soll der Dateikettungsname über die Kommandoschnittstelle ansprechbar sein, muss er dem Datentyp <structured_name 1..8> entsprechen (siehe Handbuch „Kommandos“ [3]).
MACID
legt jeweils das zweite bis einschließlich vierte Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.
Voreinstellung: | MACID = ISI |
= macid
„macid“ ist eine drei Zeichen lange Zeichenfolge, die jeweils das zweite bis vierte Zeichen der generierten Feldnamen und Equates festlegt.
PARAM
bezeichnet die Adresse der Operandenliste. Der Operand wird nur in Verbindung mit MF=E ausgewertet (siehe "Typen von Makroaufrufen").
= adr
adr ist die symbolische Adresse (der Name) der Operandenliste.
= (r)
r ist die Nummer des Registers, das die Adresse der Operandenliste enthält. Vor dem Makroaufruf muss das Register mit diesem Adresswert geladen werden.
PREFIX
legt das jeweils erste Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.
Voreinstellung: | PREFIX = D |
= pre
„pre“ ist ein Zeichen langes Präfix, mit dem die generierten Feldnamen und Equates beginnen sollen.
Returncodes:
Standardheader: ccbbaaaa
Über die Ausführung des Makros SHOWAIX wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'bb' | X'aaaa' | Erläuterung |
X'00' | X'0000' | Funktion erfolgreich ausgeführt. |
X'01' | X'0001' | Die Operandenliste ist nicht verfügbar. |
X'40' | X'0002' | Sekundärschlüssel werden im fernen System nicht unterstützt (bei Makroaufruf über RFA). |
X'40' | X'0003' | Die angegebene Katalogkennung existiert nicht. |
X'40' | X'0004' | Auf den Katalog kann nicht zugegriffen werden. |
X'01' | X'0005' | Die Operandenliste enthält einen ungültigen Namen. |
X'20' | X'000B' | Systemfehler. |
X'40' | X'000E' | Der Kontrollblock der Datei ist fehlerhaft. |
X'01' | X'0017' | In der Operandenliste wurde keine Datei spezifiziert. |
X'40' | X'0019' | Der Dateikettungsname ist fehlerhaft. |
X'40' | X'0040' | OPEN-Fehler. |
X'40' | X'0041' | CLOSE-Fehler. |
X'40' | X'0044' | Die Datei ist keine NK-ISAM-Datei. |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle auf Kapitel "Standardheader" entnommen werden.
Das aufrufende Programm wird beendet, wenn bezüglich der Parameterliste folgende Fehler auftreten:
Die Liste ist dem Aufrufer nicht zugewiesen.
Die Liste ist nicht auf Wortgrenze ausgerichtet.
Die Liste ist gegen Schreibzugriff geschützt.
Layout der Operandenliste
Makroauflösung mit MF=D und Standardwerten für PREFIX und MACID:
SHOWAIX MF=D 1 MFCHK MF=D, C 1 PREFIX=D, C 1 MACID=ISI, C 1 DMACID=ISI, C 1 DNAME=ISIAIX, C 1 SUPPORT=(C,D,L,E), C 1 PARAM=, C 1 ALIGN=F, C 1 SVC=32 2 DISIAIX DSECT , 2 *,##### PREFIX=D, MACID=ISI ##### 1 #INTF INTNAME=SHOWAIX,REFTYPE=REQUEST,INTCOMP=001 1 FHDR MF=(C,DISI),EQUATES=NO 2 DS 0A 2 DISIFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER 2 * 2 DISIIFID DS 0A 0 INTERFACE IDENTIFIER 2 DISIFCTU DS AL2 0 FUNCTION UNIT NUMBER 2 * BIT 15 HEADER FLAG BIT, 2 * MUST BE RESET UNTIL FURTHER NOTICE 2 * BIT 14-12 UNUSED, MUST BE RESET 2 * BIT 11-0 REAL FUNCTION UNIT NUMBER 2 DISIFCT DS AL1 2 FUNCTION NUMBER 2 DISIFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER 2 * 2 DISIRET DS 0A 4 GENERAL RETURN CODE 2 DISISRET DS 0AL2 4 SUB RETURN CODE 2 DISISR2 DS AL1 4 SUB RETURN CODE 2 2 DISISR1 DS AL1 5 SUB RETURN CODE 1 2 DISIMRET DS 0AL2 6 MAIN RETURN CODE 2 DISIMR2 DS AL1 6 MAIN RETURN CODE 2 2 DISIMR1 DS AL1 7 MAIN RETURN CODE 1 2 DISIFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH 2 * 1 * 1 * SUB RETURN CODE1 1 * 1 DISIRFSP EQU X'00' FUNCTION SUCCESSFULLY PROCESSED 1 DISIRPER EQU X'01' PARAMETER SYNTAX ERROR 1 * 1 DISIRFNS EQU X'01' CALLED FUNCTION NOT SUPPORTED 1 DISIRFNA EQU X'02' CALLED FUNCTION NOT AVAILABLE 1 DISIRVNA EQU X'03' INTERFACE VERSION NOT SUPPORTED 1 * 1 DISIRIER EQU X'20' INTERNAL ERROR 1 DISIRCAR EQU X'40' CORRECT AND RETRY 1 * 1 * MAIN RETURN CODE 1 * 1 DISIOK EQU 0 AIX DELETED 1 DISINPAR EQU 1 PARLIST NOT ACCESSIBLE 1 DISINREM EQU 2 NO SUPPORT ON REMOTE HOST 1 DISINCAT EQU 3 CATID NOT KNOWN 1 DISINACC EQU 4 CATALOG NOT ACCESSIBLE 1 DISIINVN EQU 5 INVALID NAME 1 DISISYSE EQU 11 SYSTEM ERROR 1 DISISPAC EQU 12 NO ADDRESS SPACE 1 DISIWRCB EQU 14 WRONG CONTROLBLOCK 1 DISIFNSP EQU 23 FILE NOT SPECIFIED 1 DISILNKE EQU 25 LINKNAME ERROR 1 DISIINOP EQU 31 SSTA INOP 1 DISISSER EQU 32 SSTA INTERNAL ERROR 1 DISIMEMR EQU 33 SSTA MEMORY ERROR 1 DISIOPSE EQU 34 SSTA OPS ERROR 1 DISIOPME EQU 35 SSTA OPS MEMORY ERROR 1 DISIOPER EQU 64 FILE OPEN ERROR 1 DISICLER EQU 65 FILE CLOSE ERROR 1 DISINNKF EQU 68 NO NK-ISAM FILE 1 DISIRLNK EQU X'FFFF' LINKAGE ERROR 1 * 1 DISIDMSC DS AL2 DMSCODE 1 DISIFILE DS CL54 FILE 1 DISILINK DS CL8 LINK 1 DISIKEY# DS H NUMBER OF KEYS 1 * 1 DISIKNAM DS CL8 KEYNAME 1 DISIKPOS DS H KEYPOS 1 DISIKLEN DS AL1 KEYLEN 1 DISIIND DS XL1 INDICATOR 1 DISIDUPK EQU X'80' SET: DUPKEY = YES 1 * RESET: DUPKEY = NO 1 DISIINCO EQU X'40' SET: SIX IS INCOMPLETE 1 * RESET: SIX IS COMPLETE 1 DS 29CL12 1 DISI# EQU (*-DISIFHE) LENGTH OF STRUCTURE END