Z-GLOBAL

Dieses Dokument behandelt die folgenden Themen:


Beschreibung

Den Inhalt der globalen Variablen in GL-STD (Global Data Area von Con-nect) ausgeben.

Z-GLOBAL muss sich in derselben Bibliothek befinden wie die Con-nect-Module.

Z-GLOBAL ist eine Natural-Subroutine. Daher müssen Sie sie mit dem PERFORM-Statement aufrufen.

Im Parameter Variablenliste müssen Sie die Nummer jeder Variablen angeben, von der Sie den Inhalt ausgeben möchten.

Nummer Variablenname Beschreibung
01 G-CURRENT-CABINET Name des Büros, in dem der Benutzer gerade arbeitet.
02 G-USER-ID Name des Privatbüro, das unter Angabe des Passworts benutzt wird.
03 G-USER-NAME Nachname und Vorname des Benutzers.
04 G-CURR-ISN Adabas-ISN des gerade bearbeiteten Con-nect-Objekts.
05 G-LAST-ISN Adabas-ISN des zuletzt bearbeiteten Con-nect-Objekts.
06 G-COMMAND Con-nect-Befehl, der vom Benutzer in der Befehlszeile eingegeben wurde.
07 G-LAST-COMMAND Letzter Con-nect-Befehl (dies entspricht dem Con-nect-Befehl *= der standardmäßig der Taste PF11 zugeordnet ist).
08 G-COMMAND-SEQ Leerzeichen für die Befehlsfolge "Befehl Objekt Name". Ein X für die alternative Befehlsfolge "Objekt Name Befehl".*
09 G-CURRENT-MAP Name der aktuellen Map.
10 G-LANGUAGE Sprachcode.*
11 G-DEFAULT-FOLDER Name des Standardfachs.*
12 G-DEFAULT-FILE Name des Standardordners im Standardfach.*
13 G-PRINT-TID Terminal-ID des Druckers oder "PC".*
14 G-PRINT-DEST Name des logischen Druckers.*
15 G-PRINT-PROFILE-NAME Name des Druckerprofils.*
16 G-FMT-PROFILE-NAME Name des Formatierprofils.*
17 G-PRINT-PS Seitenlänge.*
18 G-PRINT-LS Zeilenbreite.*
19 G-S-SUBJECT-LINE Betreff der Post.
20 G-S-SEND-ISN Adabas-ISN der Originalpost.
21 G-S-OUTISN Adabas-ISN der Post im Fach Tageskopien.

Anmerkung:
Ein Stern (*) in der oben aufgeführten Liste kennzeichnet einen Wert, der im Profil des Büros definiert ist oder der mit dem Befehl AUSGABE für die laufende Session definiert wurde.

Nach dem Aufruf von Z-GLOBAL enthält der Parameter Ausgabebereich den Inhalt der von Ihnen angegebenen Variablen.

Wenn der Inhalt aller Variablen 250 Bytes übersteigt (dies wird durch Return-Code 99 kenntlich gemacht), müssen Sie die Nummer jeder Variablen, für die keine Ausgabe erfolgte, erneut im Parameter Ausgabebereich eingeben und Z-GLOBAL erneut aufrufen, um den Inhalt der restlichen Variablen auszugeben.

Jede Variable im Parameter Ausgabebereich hat ein 6 Byte langes Präfix:

Byte-Nummer Beschreibung
1 und 2 Variablennummer (siehe Liste oben).
3 Format der Variablen: A oder N.
4 bis 6 Länge der Variablen.

Wenn Sie zum Beispiel im Parameter Variablenliste 01 angeben und der aktuelle Inhalt von G-CURRENT-CABINET (Format A8) LS ist, wird im Parameter Ausgabebereich Folgendes ausgegeben:

01A008LS

In diesem Beispiel werden 6 Leerzeichen nach LS ausgegeben, weil LS nur 2 Byte lang ist.

Parameter

Parameter Format Ein Aus Bemerkung
Return-Code N2   X  
Variablenliste N2/1:10 E   Die Nummer jeder Variablen, von der der Inhalt ausgegeben werden soll. Siehe die Liste oben.
Ausgabebereich A250   X Der Inhalt jeder Variablen mit einem 6 Byte langen Präfix.

Return-Codes

00 Erfolg
99 Ausgabebereich ist nicht groß genug

Subprogramme

Keine

Beispiel

0010 DEFINE DATA LOCAL
0020 01 RETURN-CODE             (N2)
0030 01 VARIABLENLISTE          (N2/10) INIT <01,19,21>
0040 01 AUSGABEBEREICH          (A250)
0050 01 REDEFINE AUSGABEBEREICH
0060    02 AUSGABEBEREICH-ARRAY (A1/250)
0070 01 AUSGABEINDEX (P3) INIT <1> /* zeigt auf Position im AUSGABEBEREICH-
0080 *                                ARRAY 
0090 01 I             (P3)         /* Schleifenzaehler
0100 01 J             (P3)         /* Schleifenzaehler
0110 01 K             (P3)         /* Schleifenzaehler
0120 *
0130 01 PRAEFIX       (A1/6)
0140 01 REDEFINE PRAEFIX
0150    02 VAR-NUM    (N2)
0160    02 VAR-FMT    (A1)
0170    02 VAR-LAENGE (N3)
0180 *
0190 01 VAR-INHALT   (A1/60)
0200 01 REDEFINE VAR-INHALT
0210    02 ALPHA      (A60)
0220 01 REDEFINE VAR-INHALT
0230    02 NUMERISCH  (N12)
0240 END-DEFINE
0250 *
0260 PERFORM Z-GLOBAL  RETURN-CODE VARIABLENLISTE(*) AUSGABEBEREICH
0270 *
0280 FOR I 1 TO 3
0290 *
0300   IF RETURN-CODE EQ 99     /* Ausgabebereich nicht gross genug
0310      AND
0320      AUSGABEBEREICH-ARRAY(AUSGABEINDEX) EQ ' ' /* Leerzeichen statt Nummer
0330      OR
0340      AUSGABEINDEX  >  250  /* letzte Variable endet im 250. Byte
0350     WRITE 'Erneut aufrufen, um Inhalt der restlichen Variablen auszugeben'
0360     ESCAPE BOTTOM
0370   END-IF
0380 *
0390   FOR  J      1  TO 6                /* Nummer der Variablen und Format
0400     MOVE AUSGABEBEREICH-ARRAY(AUSGABEINDEX) TO PRAEFIX (J)
0410     ADD  1       TO AUSGABEINDEX
0420   END-FOR
0430 *
0440   IF VAR-FMT  EQ   'A'
0450     PERFORM MOVE-ALPHA
0460   ELSE                               /* wenn 'N'
0470     PERFORM MOVE-NUMERISCH
0480   END-IF
0490 *
0500   IF VAR-NUM = 1
0510     WRITE ' Buero   : ' ALPHA
0520   END-IF
0530   IF VAR-NUM = 19
0540     WRITE ' Betreff : ' ALPHA
0550   END-IF
0560   IF VAR-NUM = 21
0570     WRITE ' Tageskopien-ISN: ' NUMERISCH
0580   END-IF
0590 *
0600 END-FOR
0610 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
0620 DEFINE SUBROUTINE MOVE-ALPHA  /* linksbuendig
0630   RESET ALPHA
0640   FOR  K  1 TO VAR-LAENGE
0650     MOVE AUSGABEBEREICH-ARRAY(AUSGABEINDEX) TO VAR-INHALT(K)
0660     ADD  1  TO       AUSGABEINDEX
0670   END-FOR
0680 END-SUBROUTINE
0690 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
0700 DEFINE SUBROUTINE MOVE-NUMERISCH /* alle numerischen Variablen in N12
0710   RESET NUMERISCH
0720   COMPUTE  J = 12 - VAR-LAENGE
0730   FOR  K   1 TO VAR-LAENGE
0740     MOVE AUSGABEBEREICH-ARRAY(AUSGABEINDEX) TO VAR-INHALT(J+K)
0750     ADD  1   TO      AUSGABEINDEX
0760   END-FOR
0770 END-SUBROUTINE
0780 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
0790 END