Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Strukturlayout und Initialisierung

&pagelevel(5)&pagelevel

Wird FHS als Ausgabe-Server benützt, muss für FHS das Strukturlayout definiert und bestimmte Werte initialisiert werden. Dazu wird in der (ausgelieferten) Bibliothek
$TSOS.SYSPRC.FHS.<version> eine S-Prozedur (Element SYSFHS-CONTROL) mitgeliefert, die für FHS V8.3 folgendermaßen aussieht:

/set-procedure-options caller=include
/begin-parameter-declaration
/   declare-parameter -
/   "------------ std param --------------------------------*"-
/                (PREFIX       (type=string,init='SYSFHS-') -
/                ,INCLUDE-FORM (type=string,init='LAYOUT') "/initialize" -
/                ,VARIABLE-NAME(type=string,init='') -
/   "------------ include specific param -------------------*"-
/  " action variables " -
/                ,SERVICE      (type=string,init='*DISPLAY') -
/                ,DIAGINFO     (type=string,init='*NO') -
/                ,POP-LOCATION (type=string,init='*NONE') -
/                ,POP-LOC-IND  (type=integer,init=0) -
/                ,ROW          (type=integer,init=2) -
/                ,COLUMN       (type=integer,init=2) -
/  " resource variables " -
/                ,RESOURCE      (type=string,init='*SAME') -
/                ,MESSAGE-ID    (type=string,init='*NONE') -
/                ,MESSAGE-FIELD (type=string,init='*NONE') -
/                ,MSG-FIELD-IND (type=integer,init=0) -
/  " panel variables " -
/                ,CURSOR-OUTPUT-INDEX (type=integer,init=0) -
/                ,CURSOR-OUTPUT       (type=string,init='*NONE')  -
/                ,CURSOR-OUTPUT-POS   (type=integer,init=0) -
/                ,LOCK                (type=string,init='*NO') -
/                ,ALARM               (type=string,init='*NO') -
/                ,HARDCOPY            (type=string,init='*NO') -
/                ,AUTOTAB             (type=string,init='*YES')  -
/                ,MANDATORY           (type=string,init='*NO')  -
/                ,REFRESH             (type=string,init='*NO')  -
/                ,ACK                 (type=string,init='*NO')  -
/                ,KEYLOCK             (type=string,init='*NONE')  -
/  " field attributes " -
/                ,ATTR-LIST    (type=integer,init=0) -
/                 " number of list elements to reset       "-
/                ,FIELD     (type=string,init='*CURSOR') -
/                ,FIELD-IND (type=string,init='0') -
/                ,TYPE      (type=string,init='*UNCHANGED') -
/                ,HILITE    (type=string,init='*UNCHANGED') -
/                ,INTENSITY (type=string,init='*UNCHANGED') -
/                ,COLOR     (type=string,init='*UNCHANGED') -
/                ,OUTPUT    (type=string,init='*UNCHANGED') -
/   " input information " -
/                ,COMMAND               (type=string,init='') -
/                ,FHS-VERSION           (type=string,init='') -
/                ,CURSOR-INPUT          (type=string,init='') -
/                ,CURSOR-INPUT-INDEX    (type=integer,init=0) -
/                ,CURSOR-INPUT-POS      (type=integer,init=0) -
/                )
/end-parameter-declaration
/
/if (upper-case(INCLUDE-FORM) == 'LAYOUT')
/
/begin-structure ATTR,scope=proc
/   declare-element -
/                    (FIELD     (type=string) -
/                    ,FIELD-IND (type=string) -
/                    ,TYPE      (type=string) -
/                    ,HILITE    (type=string) -
/                    ,INTENSITY (type=string) -
/                    ,COLOR     (type=string) -
/                    ,OUTPUT    (type=string) -
/                    )
/end-structure
/
/begin-structure name=&PREFIX.LAYOUT,scope=proc
/  declare-element STD-HEADER(type=structure(&PREFIX.FHDR))
/  declare-element -
/  " action variables " -
/                  (SERVICE      (type=string) -
/                  ,DIAGINFO     (type=string) -
/                  ,POP-LOCATION (type=string) -
/                  ,POP-LOC-IND  (type=integer) -
/                  ,ROW          (type=integer) -
/                  ,COLUMN       (type=integer) -
/  " resource variables " -
/                  ,RESOURCE         (type=string) -
/                  ,MESSAGE-ID       (type=string) -
/                  ,MESSAGE-FIELD    (type=string) -
/                  ,MSG-FIELD-IND    (type=integer) -
/  " panel variables " -
/                  ,CURSOR-OUTPUT-INDEX (type=integer) -
/                  ,CURSOR-OUTPUT       (type=string)  -
/                  ,CURSOR-OUTPUT-POS   (type=integer) -
/                  ,LOCK                (type=string)  -
/                  ,ALARM               (type=string)  -
/                  ,HARDCOPY            (type=string)  -
/                  ,AUTOTAB             (type=string)  -
/                  ,MANDATORY           (type=string)  -
/                  ,REFRESH             (type=string)  -
/                  ,ACK                 (type=string)  -
/                  ,KEYLOCK             (type=string)  -
/                  )
/  " field attributes "
/  declare-element ATTR            (type=struc(attr))-
/                 ,mult-elem=list
/
/   " input information " -
/   declare-element -
/                  (COMMAND               (type=string) -
/                  ,FHS-VERSION           (type=string) -
/                  ,CURSOR-INPUT          (type=string) -
/                  ,CURSOR-INPUT-INDEX    (type=integer) -
/                  ,CURSOR-INPUT-POS      (type=integer) -
/                  )
/end-structure
/
/else-if (upper-case(INCLUDE-FORM) == 'INITIALIZE')
/
/   if (VARIABLE-NAME == '')
/      write-text '%  mandatory parameter variable-name missing.'
/      raise-error
/   end-if
/  declare-variable PARAM(type=string)
/  SYSPRC-NAME = '$.SYSPRC.FHS.083'
/  IF ( SDF-P-VERSION >= 'V02.0A00' ) 
/     SYSPRC-NAME  = INSTALLATION-PATH -
/                     ( LOGICAL-ID        = 'SYSPRC' -
/                      ,INSTALLATION-UNIT = 'FHS' -
/                      ,VERSION           = 'V08.3' -
/                      ,DEFAULT-PATH-NAME = '&SYSPRC-NAME')
/  END-IF 
/  include-procedure *lib-elem(lib=&SYSPRC-NAME,el=FHDR) -
/   "------------ std param --------------------------------*"-
/               ,(INCLUDE-FORM='INITIALIZE' -
/                ,VARIABLE-NAME='&VARIABLE-NAME..STD-HEADER' -
/   "------------ include specific param -------------------*"-
/                ,UNIT ='FHS',  "fhs unit name" -
/                ,FUNCTION ='DISPLAY', "fhs fc for display?" -
/                ,VERSION = 2 "control variable layout version"-
/                )
/
/   for PARAM = -
/                  ('SERVICE'             -
/                  ,'DIAGINFO'            -
/                  ,'POP-LOCATION'        -
/                  ,'POP-LOC-IND'         -
/                  ,'ROW'                 -
/                  ,'COLUMN'              -
/                  ,'RESOURCE'            -
/                  ,'MESSAGE-ID'          -
/                  ,'MESSAGE-FIELD'       -
/                  ,'MSG-FIELD-IND'       -
/                  ,'CURSOR-OUTPUT-INDEX' -
/                  ,'CURSOR-OUTPUT'       -
/                  ,'CURSOR-OUTPUT-POS'   -
/                  ,'LOCK'                -
/                  ,'ALARM'               -
/                  ,'HARDCOPY'            -
/                  ,'AUTOTAB'             -
/                  ,'MANDATORY'           -
/                  ,'REFRESH'             -
/                  ,'ACK'                 -
/                  ,'KEYLOCK'             - 
/                  ,'COMMAND'             -
/                  ,'FHS-VERSION'         -
/                  ,'CURSOR-INPUT'        -
/                  ,'CURSOR-INPUT-INDEX'  -
/                  ,'CURSOR-INPUT-POS'    -
/                  )
/         &VARIABLE-NAME..&PARAM = &PARAM
/   end-for
/
/   if (ATTR-LIST > 0)
/      I = 1
/      while ( I <= ATTR-LIST )
/         for PARAM = -
/                    ('FIELD'     -
/                    ,'FIELD-IND' -
/                    ,'TYPE'      -
/                    ,'HILITE'    -
/                    ,'INTENSITY' -
/                    ,'COLOR'     -
/                    ,'OUTPUT'    -
/                    )
/            &VARIABLE-NAME..ATTR#I.&PARAM = &PARAM
/         end-for
/         I=I+1
/      end-while
/   end-if
/
/else
/  write-text '%  form=&INCLUDE-FORM not supported; include aborts'
/  raise-error
/end-if
/EXIT-PROCEDURE

In einem Include wird in dieser Prozedur der Standard Header eingebunden. Das ist eine S-Prozedur, die mit SDF-P mitgeliefert wird und für Funktionsidentifikationen und Returncode-Informationen zuständig ist (siehe dazu Kommando TRANSMIT-BY-STREAM auf "TRANSMIT-BY-STREAM Variablen übertragen ").Hinweis

Beispiel

Die folgende Beispielprozedur illustriert, wie die Variable MYVAR mithilfe von SYSFHS-CONTROL und dem Standard Header deklariert und initialisiert wird.

/INCLUDE-PROC *LIB-ELEM(LIB=$TSOS.SYSPRC.SDF-P-BASYS.024,EL=FHDR),-
/(PREFIX='SYSFHS-')
/INCLUDE-PROC *LIB-ELEM(LIB=$TSOS.SYSPRC.FHS.083,EL=SYSFHS-CONTROL) 
/DECLARE-VAR MYVAR(TYPE=*STRUCT(SYSFHS-LAYOUT))
/INCLUDE-PROC *LIB-ELEM(LIB=$TSOS.SYSPRC.FHS.083,EL=SYSFHS-CONTROL),- 
/(INCLUDE-FORM=INITIALIZE,VARIABLE-NAME='MYVAR', ATTR-LIST = 2) 
/SHOW-VARIABLE MYVAR 

Die Variable wird dann in der folgenden Form generiert und initialisiert:

MYVAR.STD-HEADER.INTERFACE-ID.UNIT = FHS
MYVAR.STD-HEADER.INTERFACE-ID.FUNCTION = DISPLAY
MYVAR.STD-HEADER.INTERFACE-ID.VERSION = 2
MYVAR.STD-HEADER.RETURNCODE.SUBCODE2 = 0
MYVAR.STD-HEADER.RETURNCODE.SUBCODE1 = 0
MYVAR.STD-HEADER.RETURNCODE.MAINCODE = CMD0001
MYVAR.SERVICE = *DISPLAY
MYVAR.DIAGINFO = *NO
MYVAR.POP-LOCATION = *NONE
MYVAR.POP-LOC-IND = 0
MYVAR.ROW = 2
MYVAR.COLUMN = 2
MYVAR.RESOURCE = *SAME
MYVAR.MESSAGE-ID = *NONE
MYVAR.MESSAGE-FIELD = *NONE
MYVAR.MSG-FIELD-IND = 0
MYVAR.CURSOR-OUTPUT-INDEX = 0
MYVAR.CURSOR-OUTPUT = *NONE
MYVAR.CURSOR-OUTPUT-POS = 0
MYVAR.LOCK = *NO
MYVAR.ALARM = *NO
MYVAR.HARDCOPY = *NO
MYVAR.AUTOTAB = *YES
MYVAR.MANDATORY = *NO
MYVAR.REFRESH = *NO
MYVAR.ACK = *NO
MYVAR.KEYLOCK = *NONE
MYVAR.ATTR(*LIST).FIELD = *CURSOR
MYVAR.ATTR(*LIST).FIELD-IND = 0
MYVAR.ATTR(*LIST).TYPE = *UNCHANGED
MYVAR.ATTR(*LIST).HILITE = *UNCHANGED
MYVAR.ATTR(*LIST).INTENSITY = *UNCHANGED
MYVAR.ATTR(*LIST).COLOR = *UNCHANGED
MYVAR.ATTR(*LIST).OUTPUT = *UNCHANGED
MYVAR.ATTR(*LIST).FIELD = *CURSOR
MYVAR.ATTR(*LIST).FIELD-IND = 0
MYVAR.ATTR(*LIST).TYPE = *UNCHANGED
MYVAR.ATTR(*LIST).HILITE = *UNCHANGED
MYVAR.ATTR(*LIST).INTENSITY = *UNCHANGED
MYVAR.ATTR(*LIST).COLOR = *UNCHANGED
MYVAR.ATTR(*LIST).OUTPUT = *UNCHANGED
MYVAR.COMMAND =
MYVAR.FHS-VERSION =
MYVAR.CURSOR-INPUT =
MYVAR.CURSOR-INPUT-INDEX = 0
MYVAR.CURSOR-INPUT-POS = 0

FHS-Returncodes

SDF-P belegt die Kommando-Returncodes von TRANSMIT-BY-STREAM. Die Returncode-Variable der zurückgegebenen Struktur wird von FHS belegt.

Name

Datentyp

Returnwerte

SUBCODE2

integer

<integer>

SUBCODE1

integer

<integer>

MAINCODE

string

<name 1..7>