Die Prozedur DO.REORG reorganisiert den Speicherplatz einer ISAM-Datei.
Die Übersetzung in SDF-Kommandos sowie die Umwandlung in eine S-Prozedur erfolgt ohne Einschränkungen. SDF-CONV wurde ohne Fehlermeldung beendet.
Eingabeprozedur DO.REORG
/PROC N,(&DATEI),SUBDTA=& /DCLJV #NEUBILD /SETJV #NEUBILD,X'0C' /SETSW ON=(4,5), OFF=(15) /SYSFILE SYSDTA=(SYSCMD) /WR-TEXT ' ' /WR-TEXT '*********************************************' /WR-TEXT '*** Reorganisieren von ISAM-Dateien ***' /WR-TEXT '*********************************************' /WR-TEXT ' ' /WR-TEXT 'Name der zu reorganisierenden Datei: ' /REMARK &DATEI /EXEC $EDT @GET '&DATEI' N @CON @IF N:@IF N D:@SY'COPY &DATEI,&DATEI..VORHER,SAME' @CON @IF N : @IF N D : @SAVE O @CON @IF E : @SETSW ON=15 @IF D : @SETSW ON=15 @HALT /SKIP .FEHL, ON=(15) /TCHNG OFLOW=NO /WR-TEXT '&(#NEUBILD)' /TCHNG OFLOW=ACK /WR-TEXT ' ' /WR-TEXT 'Die Datei &DATEI wurde reorganisiert.' /WR-TEXT ' ' /WR-TEXT 'Speicherplatzbedarf vorher:' /FS &DATEI..VORHER /WR-TEXT ' ' /ERASE &DATEI..VORHER /WR-TEXT 'Speicherplatzbedarf jetzt:' /FS &DATEI /SKIP .EOP, OFF=(15) /.FEHL REMARK /WR-TEXT ' ' /WR-TEXT '******** Fehler bei der Dateibearbeitung *******' /WR-TEXT '** REORGANISATION WURDE NICHT DURCHGEFUEHRT ! **' /WR-TEXT ' ' /.EOP STEP /SETSW OFF=(4,5,15) /SYSFILE SYSDTA=(PRIMARY) /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.reorg,to-file=sdf.sdfp.do.reorg,doc=*min,- ————— (2) //procedure-format=*s-proc(prog-inp=*data,block-inp=*allowed) % CVR1000 CONVERSION TERMINATED WITH: % CVR1001 FAILURES: 0 % CVR1002 ERRORS : 0 % CVR1003 WARNINGS: 0 % CVR1004 NOTES : 0 //end ————————————————————————————————————————————————————————————————— (3)
(1) | Start des Dienstprogramms SDF-CONV. |
(2) | In der CONVERT-Anweisung werden die Ein- und Ausgabeprozedur zugewiesen sowie die Dokumentationsmenge bestimmt. Die Prozedur soll in eine S-Prozedur umgewandelt werden. Die geblockte Schreibweise von generierten SDF-Kommandos wird erlaubt. Alle anderen Operanden der CONVERT-Anweisung behalten den Standardwert. Nach erfolgter Abarbeitung meldet SDF-CONV, dass die Umwandlung ohne Warnungen oder Fehler durchgeführt 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.REORG % CVR1012 EXPECT-CONTINUATION = *NEW-MODE % CVR1013 PARAMETER-LINES = *CONVERT % CVR1014 TO-FILE = SDF.SDFP.DO.REORG % 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 = *OSD-V2 % CVR1022 OUTPUT-FORM = *STD % CVR1023 PROCEDURE-FORMAT = *S-PROCEDURE(CMD- FORMAT=*SDF,PROGRAM-INPUT=*DATA(EXCEPT-AFTER-CMD=*NONE,WARNING=*NO),BLOCK- INPUT=*ALLOWED) ***** BS2000 COMMAND CONVERTER : SDF-CONV V3 ***** page 2 /PROC N,(&DATEI),SUBDTA=& ———————————————————————————————————————————— (2) /DCLJV #NEUBILD /SETJV #NEUBILD,X'0C' /SETSW ON=(4,5), OFF=(15) /SYSFILE SYSDTA=(SYSCMD) /WR-TEXT ' ' /WR-TEXT '*********************************************' /WR-TEXT '*** REORGANISIEREN VON ISAM-DATEIEN ***' /WR-TEXT '*********************************************' /WR-TEXT ' ' /WR-TEXT 'NAME DER ZU REORGANISIERENDEN DATEI: ' /REMARK &DATEI /EXEC $EDT @GET '&DATEI' N @CON @IF N:@IF N D:@SY'COPY &DATEI,&DATEI..VORHER,SAME' @CON @IF N : @IF N D : @SAVE O @CON @IF E : @SETSW ON=15 @IF D : @SETSW ON=15 @HALT /SKIP .FEHL, ON=(15) /TCHNG OFLOW=NO /WR-TEXT '&(#NEUBILD)' /TCHNG OFLOW=ACK /WR-TEXT ' ' /WR-TEXT 'DIE DATEI &DATEI WURDE REORGANISIERT.' /WR-TEXT ' ' /WR-TEXT 'SPEICHERPLATZBEDARF VORHER:' /FS &DATEI..VORHER /WR-TEXT ' ' /ERASE &DATEI..VORHER /WR-TEXT 'SPEICHERPLATZBEDARF JETZT:' /FS &DATEI /SKIP .EOP, OFF=(15) /.FEHL REMARK /WR-TEXT ' ' /WR-TEXT '******** FEHLER BEI DER DATEIBEARBEITUNG *******' /WR-TEXT '** REORGANISATION WURDE NICHT DURCHGEFUEHRT ! **' /WR-TEXT ' ' /.EOP STEP /SETSW OFF=(4,5,15) /SYSFILE SYSDTA=(PRIMARY) /ENDP % CVR1000 CONVERSION TERMINATED WITH: ———————————————————————————————— (3) % CVR1001 FAILURES: 0 % CVR1002 ERRORS : 0 % CVR1003 WARNINGS: 0 % CVR1004 NOTES : 0
(1) | Es werden die für den durchgeführten SDF-CONV-Lauf eingestellten Operandenwerte ausgegeben. |
(2) | Ausgabe aller Kommandosätze der Eingabeprozedur. Wenn bei der Umwandlung ein Fehler auftrat, wird die entsprechende Meldung unter den betreffenden Kommandosatz geschrieben. Im Beispiel ist das nicht der Fall, d.h., SDF-CONV konnte jedem ISP-Kommando ein SDF-Kommando zuordnen sowie die Umwandlung in eine S-Prozedur ohne Probleme ausführen. |
(3) | Der letzte Teil des Protokolls ist identisch mit der Ausgabe nach SYSOUT. |
Ausgabeprozedur SDF.SDFP.DO.REORG
Die umgewandelte Prozedur ist eine S-Prozedur.
/SET-PROCEDURE-OPTIONS LOGGING-ALLOWED=NO,INTERRUPT-ALLOWED=YES,- ————— (1) / DATA-ESCAPE-CHAR=STD,SYSTEM-FILE-CONTEXT=OWN,DATA-ERROR-HANDLING=/ NO;BEGIN-PARAMETER-DECLARATION;DECLARE-PARAMETER NAME=DATEI,TYPE=/ ANY,INIT=*PROMPT;END-PARAMETER-DECLARATION /SET-JV-LINK JV-NAME=#NEUBILD /MODIFY-JV JV-CONTENTS=(JV-NAME=#NEUBILD),SET-VALUE=X'0C' /MODIFY-JOB-SWITCHES ON=(4,5),OFF=15 /ASSIGN-SYSDTA TO=*SYSCMD /WRITE-TEXT ' ' ——————————————————————————————————————————————————————— (2) /WRITE-TEXT '*********************************************' /WRITE-TEXT '*** REORGANISIEREN VON ISAM-DATEIEN ***' /WRITE-TEXT '*********************************************' /WRITE-TEXT ' ' /WRITE-TEXT 'NAME DER ZU REORGANISIERENDEN DATEI: ' /REMARK '&(DATEI)' /START-PROGRAM FROM-FILE=$EDT @GET '&(DATEI)' N @CON @IF N:@IF N D:@SY'COPY &(DATEI),&(DATEI).VORHER,SAME' @CON @IF N : @IF N D : @SAVE O @CON @IF E : @SETSW ON=15 @IF D : @SETSW ON=15 @HALT /SKIP-COMMANDS TO-LABEL=FEHL,IF=JOB-SWITCHES(ON=15) /MODIFY-TERMINAL-OPTIONS OVERFLOW-CONTROL=NO-CONTROL /WRITE-TEXT '&(JV('#NEUBILD'))' /MODIFY-TERMINAL-OPTIONS OVERFLOW-CONTROL=USER-ACKNOWLEDGE /WRITE-TEXT ' ' /WRITE-TEXT 'DIE DATEI &(DATEI) WURDE REORGANISIERT.' /WRITE-TEXT ' ' /WRITE-TEXT 'SPEICHERPLATZBEDARF VORHER:' /SHOW-FILE-ATTRIBUTES FILE-NAME=&(DATEI).VORHER,SELECT=BY-ATTRIBUTES /WRITE-TEXT ' ' /DELETE-FILE FILE-NAME=&(DATEI).VORHER,SELECT=BY-ATTRIBUTES /WRITE-TEXT 'SPEICHERPLATZBEDARF JETZT:' /SHOW-FILE-ATTRIBUTES FILE-NAME=&(DATEI),SELECT=BY-ATTRIBUTES /SKIP-COMMANDS TO-LABEL=EOP,IF=JOB-SWITCHES(OFF=15) /.FEHL REMARK /WRITE-TEXT ' ' /WRITE-TEXT '******** FEHLER BEI DER DATEIBEARBEITUNG *******' /WRITE-TEXT '** REORGANISATION WURDE NICHT DURCHGEFUEHRT ! **' /WRITE-TEXT ' ' /.EOP SET-JOB-STEP /MODIFY-JOB-SWITCHES OFF=(4,5,15) /ASSIGN-SYSDTA TO=*PRIMARY /IF-BLOCK-ERROR;EXIT-PROCEDURE ERROR=YES;END-IF;EXIT-PROCEDURE
(1) | Die aus dem Kommando PROC N,... generierten SDF-Kommandos für eine S-Prozedur werden in geblockter Schreibweise dargestellt, d.h., die Kommandos werden hintereinander geschrieben und mit je einem Semikolon voneinander getrennt. |
(2) | Das Kommando WRITE-TEXT ist ein SDF-Kommando. Es braucht demzufolge nicht übersetzt zu werden. SDF-CONV erweitert das Eingabekommando auf sein volles Eingabeformat. |