PDA

View Full Version : CL und CHKOBJ



Squall
16-10-06, 15:10
Hallo,

ich wollte mithilfe eines CL Programmes Prüfen ob eine Datei da ist um sie dann zu erstellen oder zu bearbeiten. Ich bekomme jedoch einen Fehler, hier der Auszug des Joblogs:
call odbccopycl parm(ztable aaw LIB test J ODBC WIN01)
Objekt AAW in Bibliothek LIB nicht gefunden.
Datei AAW in Bibliothek LIB erstellt.
Teildatei TEST zu Datei AAW in DOMMZO hinzugefügt.
Datei AAW in Bibliothek LIB bereits vorhanden.
Datei AAW in Bibliothek LIB nicht erstellt.
(C D I R) CPF7302 von ODBCCOPY bei 2200 empfangen.
D
(C D I R) CPF9999 von ODBCCOPYCL bei 2600 empfangen.
D

Hier ist mein Code:
PGM PARM(&FILEN &FILE &LIB &MBR &FCALL &ODBC &WIN)

DCL VAR(&FILEN) TYPE(*CHAR) LEN(255)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&FCALL) TYPE(*CHAR) LEN(1)
DCL VAR(&ODBC) TYPE(*CHAR) LEN(10)
DCL VAR(&WIN) TYPE(*CHAR) LEN(10)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
DCL VAR(&NBR) TYPE(*CHAR) LEN(6)
DCL VAR(&TYP) TYPE(*CHAR) LEN(1)
DCL VAR(&SUBT) TYPE(*CHAR) LEN(1)
DCL VAR(&SWS) TYPE(*CHAR) LEN(8)
DCL VAR(&COR) TYPE(*CHAR) LEN(1) VALUE(N)
RTVJOBA JOB(&JOB) NBR(&NBR) TYPE(&TYP) SUBTYPE(&SUBT) SWS(&SWS)
SNDMSG MSG('VOM CL: JOB: ' *CAT &JOB *CAT ' NBR: ' *CAT +
&NBR *CAT ' TYPE: ' *CAT &TYP *CAT ' SUBT: ' *CAT +
&SUBT *CAT ' SWS: ' *CAT &SWS ) MSGTYPE(*INFO) TOUSR(USR)
CHKOBJ OBJ(&LIB/&FILE) OBJTYPE(*FILE) MBR(&MBR)
MONMSG MSGID(CPF9801) EXEC(GOTO NOTFOUND)
NOTFOUND: CRTSRCPF FILE(&FILE)
ADDPFM FILE(&FILE) MBR(&MBR) SRCTYPE(RPGLE)
OVRDBF FILE(&FILE) TOFILE(&FILE) +
MBR(&MBR) OVRSCOPE(*JOB)
CALL PGM(ODBCCOPY) PARM(&FILEN &FILE &LIB &MBR &FCALL &ODBC &WIN)
DLTOVR FILE(&FILE) LVL(*JOB)
ENDE: RETURN
FOUND: CHGVAR &FCALL VALUE('E')
RETURN
ENDPGM

Scheinbar sprint er 2 mal zu "NOTFOUND". Wo liegt der Fehler?

Gruß Martin

EDIT: Zeile 22 von ODBCCOPY is aus einer DS:
0022.00 D win 10A

EDIT2: Fehler behoben.

Pikachu
16-10-06, 15:38
Hallo Martin!

Dein Programm ruft nach dem CHKOBJ auch dann den Befehl CRTSRCPF auf, wenn die Datei bereits vorhanden ist. Oder hast du da einen Teil des Quelltextes für das Beispiel entfernt? Außerdem ist beim CRTSRCPF und beim ADDPFM jeweils keine Bibliothek angegeben, die Teildatei wird deshalb wohl zu einer gleichnamigen Datei in einer anderen Bibliothek hinzugefügt. Ruft dieses Programm durch den CALL sich vielleicht selbst wieder auf?

Gruß
Jürgen

Squall
16-10-06, 15:55
Ah hatte das AUT(*ALL) bei CHKOBJ vergessen.

Hab den Fehler schon gefunden(s.o.: EDIT2). Trotzdem danke für die Hilfe. :)

Gruß Martin