Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel 2

&pagelevel(4)&pagelevel

Die Prozedur DO.LIB.INHALT listet alle Elemente einer Bibliothek auf. Die jeweils wichtigsten Elementdaten werden in eine Liste geschrieben. Die Übersetzung der Kommandos dieser Prozedur erfolgt mit Einschränkungen beim PRINT- und DO-Kommando. SDF-CONV meldet je eine NOTE. Das PRINT-Kommando wird nicht übersetzt, weil es als ersten Operanden einen Prozedurparameter enthält. Das DO-Kommando kann nicht in eine garantierte SDF-Form übersetzt werden, weil es kontextabhängig verschiedene Möglichkeiten der Übersetzung gibt. Beim DO-Kommando macht SDF-CONV Übersetzungsvorschläge in der Ausgabeprozedur.

Eingabeprozedur DO.LIB.INHALT

/PROC N,(&LIBNAME=,&LISTOUT=,&PRINT=,&EINGABE),SUBDTA=&
/DCLJV #NEUBILD
/SETJV #NEUBILD,X'0C'
/WR-T '&(#NEUBILD)'
/WR-T ' '
/WR-T '*******************************************************'
/WR-T '****   Auflisten von Elementen einer Bibliothek    ****'
/WR-T '*******************************************************'
/WR-T ' '
/WR-T 'Name der Bibliothek                           : LIBNAME'
/REMARK Eingabe &LIBNAME
/SYSFILE SYSOUT=*DUMMY
/FS &LIBNAME
/SYSFILE SYSOUT=()
/SKIP .LINK
/STEP  "Fehler beim FSTATUS"
/SYSFILE SYSOUT=()
/WR-T ' '
/WR-T 'Fehlerhafte Eingabe !'
/WR-T 'Bibliothek &LIBNAME existiert nicht/kann nicht geoeffnet werden'
/SKIP .E
/.LINK REMARK Aufbereiten der Bibliothek
/WR-T 'Name der Ausgabe-Liste                        : LISTOUT'
/WR-T 'Bei einer bereits bestehenden Ausgabe-Liste             '
/WR-T 'werden die Daten ab Dateiende angefuegt.                   '
/WR-T 'Soll die Liste ausgedruckt werden (J/N) ?     : PRINT'
/REMARK Eingabe &LISTOUT und &PRINT
/SETSW ON=(1)
/SYSFILE SYSDTA=(SYSCMD)
/SYSFILE SYSLST=(&LISTOUT,EXTEND)
/SYSFILE SYSOUT=*DUMMY
/FILE &LIBNAME,LINK=LIB001
/EXEC $LMS
PAR INFO=SUMMARY
PRT (LST)
LST* (1)
END
/STEP
/SYSFILE SYSOUT=()
/SYSFILE SYSLST=()
/SYSFILE SYSDTA=()
/SETSW OFF=(1)
/REL LIB001
/WR-T ' '
/WR-T '**** Aufbereitung beendet.'
/WR-T '**** Das Ergebnis steht in der Liste &LISTOUT.'
/SKIP "Verzweigung abhaengig von der PRINT-Variablen" .&PRINT
/WR-T ' '
/.J REMARK Ausdrucken der Liste
/PRINT &LISTOUT,PNAME=INF,ENDNO=2048
/WR-T 'Die Liste &LISTOUT wird ausgedruckt.'
/.N REMARK
/WR-T 'Eine weitere Bibliothek aufbereiten oder die Prozedur beenden ?'
/SKIP "Eingabe: A (aufbereiten) oder E (beenden)" .&EINGABE
/.A REMARK Erneuter Aufruf der Prozedur
/DO DO.LIB.INHALT
/STEP
/.E REMARK Ende
/WR-T ' '
/WR-T '**** Prozedur beendet'
/ENDP

SDF-CONV-Ablauf


/start-sdf-conv ———————————————————————————————————————————————————————  (1) 
%  BLS0517 MODULE 'CVRMAIN' LOADED
%  CVR0001 SDF-CONV VERSION 'V03.0B80' STARTED
%  CVR0060 SDF-CONV VERSION 'V03.0B80' READY
//convert from-file=do.lib.inhalt,to-file=sdf.do.lib.inhalt,doc=*min ——  (2)
%  CVR1000 CONVERSION TERMINATED WITH:
%  CVR1001            FAILURES:    0
%  CVR1002            ERRORS  :    0
%  CVR1003            WARNINGS:    0
%  CVR1004            NOTES   :    2
//end —————————————————————————————————————————————————————————————————  (3)

(1)

Start des Dienstprogramms SDF-CONV.

(2)

In der CONVERT-Anweisung wird die Ein- und Ausgabeprozedur zugewiesen sowie die Dokumentationsmenge bestimmt.Alle anderen Operanden der CONVERT-Anweisung behalten den Standardwert. Nach erfolgter Abarbeitung meldet SDF-CONV, dass die Übersetzung mit zwei Anmerkungen (NOTE) beendet wurde. Diese Übersicht wird nach SYSOUT ausgegeben.

(3)

Mit der Anweisung END wird SDF-CONV beendet.

Ablaufprotokoll (SYSLST)

      ***** BS2000 COMMAND  CONVERTER : SDF-CONV V3 *****         page 1
%  CVR1010 OPTIONS IN EFFECT: —————————————————————————————————————————  (1) 
%  CVR1011         FROM-FILE            = DO.LIB.INHALT
%  CVR1012         EXPECT-CONTINUATION  = *NEW-MODE
%  CVR1013         PARAMETER-LINES      = *CONVERT
%  CVR1014         TO-FILE              = SDF.DO.LIB.INHALT
%  CVR1015         PRODUCE-CONTINUATION = *NEW-MODE
%  CVR1016         REPLACE-OLD-FILE     = *YES
%  CVR1017         SYSTEM-SYNTAX-FILE   = $.SYSSDF.SDF-CONV.030.USER.U-CMD
%  CVR1018         GROUP-SYNTAX-FILE    = $.SYSSDF.SDF-CONV.030.USER.S-CMD
%  CVR1019         UNCHANGED-CMD        = *NONE
%  CVR1020         DOCUMENTATION        = *MINIMUM
%  CVR1021         TARGET-VERSION       = *V10
%  CVR1022         OUTPUT-FORM          = *STD
%  CVR1023         PROCEDURE-FORMAT     = *SAME(BLOCK-INPUT=*NOT-ALLOWED)
      ***** BS2000 COMMAND  CONVERTER : SDF-CONV V3 *****         page 2
 /PROC N,(&LIBNAME=,&LISTOUT=,&PRINT=,&EINGABE),SUBDTA=& ——————————————  (2) 
 /DCLJV #NEUBILD 
 /SETJV #NEUBILD,X'0C' 
 /WR-T '&(#NEUBILD)' 
 /WR-T ' ' 
 /WR-T '*******************************************************' 
 /WR-T '****   Auflisten von Elementen einer Bibliothek    ****' 
 /WR-T '*******************************************************' 
 /WR-T ' ' 
 /WR-T 'Name der Bibliothek                           : LIBNAME' 
 /REMARK Eingabe &LIBNAME 
 /SYSFILE SYSOUT=*DUMMY 
 /FS &LIBNAME 
 /SYSFILE SYSOUT=() 
 /SKIP .LINK 
 /STEP  "Fehler beim FSTATUS" 
 /SYSFILE SYSOUT=() 
 /WR-T ' ' 
 /WR-T 'Fehlerhafte Eingabe !' 
 /WR-T 'Bibliothek &LIBNAME existiert nicht/kann nicht geoeffnet werden' 
 /SKIP .E 
 /.LINK REMARK Aufbereiten der Bibliothek 
 /WR-T 'Name der Ausgabe-Liste                        : LISTOUT' 
 /WR-T 'Bei einer bereits bestehenden Ausgabe-Liste             ' 
 /WR-T 'werden die Daten ab Dateiende angefuegt.                   ' 
 /WR-T 'Soll die Liste ausgedruckt werden (J/N) ?     : PRINT' 
 /REMARK Eingabe &LISTOUT und &PRINT 
 /SETSW ON=(1) 
 /SYSFILE SYSDTA=(SYSCMD) 
 /SYSFILE SYSLST=(&LISTOUT,EXTEND) 
 /SYSFILE SYSOUT=*DUMMY 
 /FILE &LIBNAME,LINK=LIB001 
 /EXEC $LMS 
 PAR INFO=SUMMARY 
 PRT (LST) 
 LST* (1) 
 END 
 /STEP 
 /SYSFILE SYSOUT=() 
 /SYSFILE SYSLST=() 
 /SYSFILE SYSDTA=() 
 /SETSW OFF=(1) 
 /REL LIB001 
 /WR-T ' ' 
 /WR-T '**** Aufbereitung beendet.' 
 /WR-T '**** Das Ergebnis steht in der Liste &LISTOUT.' 
 /SKIP "Verzweigung abhaengig von der PRINT-Variablen" .&PRINT 
 /WR-T ' ' 
 /.J REMARK Ausdrucken der Liste 
 /PRINT &LISTOUT,PNAME=INF,ENDNO=2048 
%  CVRF040 INPUT COMMAND NOT CONVERTED ————————————————————————————————  (3) 
 /WR-T 'Die Liste &LISTOUT wird ausgedruckt.' 
 /.N REMARK 
 /WR-T 'Eine weitere Bibliothek aufbereiten oder die Prozedur beenden ?' 
 /SKIP "Eingabe: A (aufbereiten) oder E (beenden)" .&EINGABE 
 /.A REMARK Erneuter Aufruf der Prozedur 
 /DO DO.LIB.INHALT 
%  CVRF061 COMMAND CAN NEVER BE CONVERTED TO A SECURED SDF FORM; ORIGINAL 
INPUT REMAINS VALID ———————————————————————————————————————————————————  (4) 
 /STEP 
 /.E REMARK Ende 
 /WR-T ' ' 
 /WR-T '**** Prozedur beendet' 
 /ENDP 
%  CVR1000 CONVERSION TERMINATED WITH: ————————————————————————————————  (5) 
%  CVR1001            FAILURES:    0
%  CVR1002            ERRORS  :    0
%  CVR1003            WARNINGS:    0
%  CVR1004            NOTES   :    3

(1)

Es werden die für den durchgeführten SDF-CONV-Lauf eingestellten Operandenwerte ausgegeben.

(2)

Ausgabe aller Kommandosätze der Eingabeprozedur.

(3)

SDF-CONV meldet eine NOTE, da das PRINT-Kommando nicht übersetzt werden konnte. (Siehe Abschnitt „Einschränkungen“: beim PRINT-Kommando darf der erste Stellungsoperand kein Prozedurparameter sein.)

(4)

SDF-CONV meldet eine NOTE, da das DO-Kommando nicht übersetzt werden konnte. (Siehe Abschnitt „Einschränkungen“: die Übersetzung des DO-Kommandos ist kontextabhängig.)

(5)

Der letzte Teil des Protokolls ist identisch mit der Ausgabe nach SYSOUT.

Ausgabeprozedur SDF.DO.LIB.INHALT

/BEGIN-PROCEDURE LOGGING=NO,PARAMETERS=YES(PROCEDURE-PARAMETERS=(-
/&LIBNAME=,-
/&LISTOUT=,-
/&PRINT=,-
/&EINGABE),ESCAPE-CHARACTER='&')
/SET-JV-LINK JV-NAME=#NEUBILD
/MODIFY-JV JV-IDENTIFICATION=JV-NAME(JV-NAME=#NEUBILD),VALUE=X'0C'
/WRITE-TEXT '&(#NEUBILD)' —————————————————————————————————————————————  (1) 
/WRITE-TEXT ' '
/WRITE-TEXT '*******************************************************'
/WRITE-TEXT '****   Auflisten von Elementen einer Bibliothek    ****'
/WRITE-TEXT '*******************************************************'
/WRITE-TEXT ' '
/WRITE-TEXT 'Name der Bibliothek                           : LIBNAME'
/REMARK Eingabe &LIBNAME
/ASSIGN-SYSOUT  TO=*DUMMY
/SHOW-FILE-ATTRIBUTES FILE-NAME=&LIBNAME,SELECT=BY-ATTRIBUTES
/ASSIGN-SYSOUT  TO=*PRIMARY
/SKIP-COMMANDS TO-LABEL=LINK
/"*****" REMARK '/STEP  "Fehler beim FSTATUS"' ————————————————————————  (2) 
/SET-JOB-STEP
/ASSIGN-SYSOUT  TO=*PRIMARY
/WRITE-TEXT ' '
/WRITE-TEXT 'Fehlerhafte Eingabe !'
/WRITE-TEXT 'Bibliothek &LIBNAME existiert nicht/kann nicht geoeffnet w-
/erden'
/SKIP-COMMANDS TO-LABEL=E
/.LINK REMARK Aufbereiten der Bibliothek
/WRITE-TEXT 'Name der Ausgabe-Liste                        : LISTOUT'
/WRITE-TEXT 'Bei einer bereits bestehenden Ausgabe-Liste             '
/WRITE-TEXT 'werden die Daten ab Dateiende angefuegt.                  -
/ '
/WRITE-TEXT 'Soll die Liste ausgedruckt werden (J/N) ?     : PRINT'
/REMARK Eingabe &LISTOUT und &PRINT
/MODIFY-JOB-SWITCHES  ON=1
/ASSIGN-SYSDTA  TO=*SYSCMD
/ASSIGN-SYSLST  TO=&LISTOUT,OPEN-MODE=EXTEND
/ASSIGN-SYSOUT  TO=*DUMMY
/"*****" REMARK '/CREATE-FILE FILE-NAME=&LIBNAME,SUPPRESS-ERRORS=-
/*FILE-EXISTING'
/"*****" REMARK 'SET-FILE-LINK LINK-NAME=LIB001,FILE-NAME=&LIBNAME'
/ADD-FILE-LINK LINK-NAME=LIB001,FILE-NAME=&LIBNAME,SUPPORT=*DISK
/START-PROGRAM FROM-FILE=$LMS
PAR INFO=SUMMARY
PRT (LST)
LST* (1)
END
/SET-JOB-STEP
/ASSIGN-SYSOUT  TO=*PRIMARY
/ASSIGN-SYSLST  TO=*PRIMARY
/ASSIGN-SYSDTA  TO=*PRIMARY
/MODIFY-JOB-SWITCHES  OFF=1
/REMOVE-FILE-LINK LINK-NAME=LIB001
/WRITE-TEXT ' '
/WRITE-TEXT '**** Aufbereitung beendet.'
/WRITE-TEXT '**** Das Ergebnis steht in der Liste &LISTOUT.'
/"*****" REMARK '/SKIP "Verzweigung abhaengig von der PRINT-Variablen" -  (3) 
/.&PRINT' 
/SKIP-COMMANDS TO-LABEL=&PRINT
/WRITE-TEXT ' '
/.J REMARK Ausdrucken der Liste
/PRINT &LISTOUT,PNAME=INF,ENDNO=2048 ——————————————————————————————————  (4) 
/WRITE-TEXT 'Die Liste &LISTOUT wird ausgedruckt.'
/.N REMARK
/WRITE-TEXT 'Eine weitere Bibliothek aufbereiten oder die Prozedur been/den
 ?'
/"*****" REMARK '/SKIP "Eingabe: A (aufbereiten) oder E (beenden)" .&EI-  (5) 
/NGABE'
/SKIP-COMMANDS TO-LABEL=&EINGABE
/.A REMARK Erneuter Aufruf der Prozedur
/"*****" REMARK '/CALL-PROCEDURE NAME=DO.LIB.INHALT' ——————————————————  (6) 
/DO DO.LIB.INHALT
/SET-JOB-STEP
/.E REMARK Ende
/WRITE-TEXT ' '
/WRITE-TEXT '**** Prozedur beendet'
/EXIT-PROCEDURE

(1)

Das Kommando WRITE-TEXT ist ein SDF-Kommando. Es braucht demzufolge nicht übersetzt zu werden. SDF-CONV erweitert das Eingabekommando auf sein volles Eingabeformat.

(2)

Der Kommandosatz mit dem Inline-Kommentar wird in eine Kommentarzeile geschrieben, die vor der Kommandozeile mit der Übersetzung steht. Dadurch ist gewährleistet, dass die Information des Inline-Kommentars bei der Übersetzung nicht verloren geht (Voraussetzung: DOCUMENTATION=*MIN/*MAX).

(3)

siehe Punkt (2).

(4)

Der Kommandosatz mit dem nicht übersetzten PRINT-Kommando wird aus der Eingabeprozedur übernommen.

(5)

siehe Punkt (2).

(6)

Der Kommandosatz mit dem nicht übersetzten DO-Kommando wird aus der Eingabeprozedur übernommen. SDF-CONV macht jedoch zusätzlich einen Vorschlag, wie die Übersetzung dieses DO-Kommandos aussehen könnte. Der Vorschlag wird als Kommentarzeile vor den nicht übersetzten Kommandosatz geschrieben(Voraussetzung: DOCUMENTATION=*MIN/*MAX).