PDA

View Full Version : Probleme beim Command erstellen.



Flappes
11-08-10, 10:37
Hi

ich habe ein kleines Problem beim Erstellen eines Command.
Ich habe ein Programm welches ein IFS Directory ausliest, und entweder anzeigt, druckt, oder in eine OUTFILE stellt.

Nun will ich dazu noch einen Command erzeugen.
Ich bekomme es irgendwie nicht hin, das bei OUTPUT(*OUTFILE) der Parameter OUTFILE angezeigt, und auch gefüllt werden muss.

Hier mal mein Command ... Wo liegt mein Fehler ???


CMD PROMPT('Auflisten IFS Directory')

PARM KWD(DIR) TYPE(*CHAR) LEN(256) MIN(1) MAX(1) +
PROMPT('Directory Name')

PARM KWD(OUTPUT) TYPE(*CHAR) LEN(8) RSTD(*YES) +
DFT(*) SPCVAL((* *) (*PRINT P) (*OUTFILE +
F)) PROMPT('Ausgabe')

PARM KWD(OUTFILE) TYPE(QUAL1) PMTCTL(CHECK) +
PROMPT('Ausgabedatei')
QUAL1: QUAL TYPE(*NAME) LEN(10) DFT(' ')
QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) +
SPCVAL((*LIBL)) PROMPT('Bibliothek')

CHECK: PMTCTL CTL(OUTPUT) COND((*EQ '*OUTFILE'))

Pikachu
11-08-10, 11:25
Du mußt vermutlich auf das F hin prüfen. Hol dir mal den rtvcmd. Damit kannst du die Quellen der IBM-Systembefehle abrufen.

Flappes
11-08-10, 12:03
Mit dem F hattest du Recht ... hätt ich aber auch mal selbst drauf kommen können ;) ;)

Den RTVCMD gibs nicht ... sowas hatte ich schon gesucht.

Was jetzt noch felht ist die Prüfung das die beiden Felder auch gefüllt sind.
Bzw das bei Eingaber einer ungültigen Bibliothek eine MSG kommt.

mk
11-08-10, 12:08
Hallo,
so klappt es

CMD PROMPT('AUFLISTEN IFS DIRECTORY')

PARM KWD(DIR) TYPE(*CHAR) LEN(256) MIN(1) MAX(1) +
PROMPT('DIRECTORY NAME')

PARM KWD(OUTPUT) TYPE(*CHAR) LEN(8) RSTD(*YES) +
DFT(*) SPCVAL((* *) (*PRINT) (*OUTFILE)) +
PROMPT('AUSGABE')

PARM KWD(OUTFILE) TYPE(QUAL1) PMTCTL(CHECK) +
PROMPT('AUSGABEDATEI')
QUAL1: QUAL TYPE(*NAME) LEN(10) DFT(' ')
QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) +
SPCVAL((*LIBL)) PROMPT('BIBLIOTHEK')

CHECK: PMTCTL CTL(OUTPUT) COND((*EQ '*OUTFILE'))

Gruß
Michael

Pikachu
11-08-10, 12:09
Probier mal hier:

Retrieve Command Source (http://www.iseriesnetwork.com/code/sharewarefiles/rtvcmd.zip)

Kann aber eventuell sein, daß es unter V6R1 und höher nicht mehr läuft.

Pikachu
11-08-10, 12:18
Hier ist die Quelle des Systembefehls DSPOBJD V5R4:


/* CRTCMD CMD(QSYS/DSPOBJD) + */
/* PGM(QSYS/QLIDOBJD) + */
/* SRCFILE(REULE/QCMDSRC) + */
/* SRCMBR(DSPOBJD) + */
/* THDSAFE(*NO) + */
/* MLTTHDACN(*SYSVAL) + */
/* TEXT('Objektbeschreibung anzeigen') + */
/* VLDCKR(*NONE) + */
/* MODE( + */
/* *ALL) + */
/* ALLOW( + */
/* *ALL) + */
/* ALWLMTUSR(*NO) + */
/* MAXPOS(3) + */
/* PMTFILE(QDEVELOP/QCPFPMT) + */
/* MSGF(*LIBL/QCPFMSG) + */
/* HLPSHELF(*LIST) + */
/* HLPPNLGRP(*LIBL/QHLICMD1) + */
/* HLPID(DSPOBJD) + */
/* HLPSCHIDX(*NONE) + */
/* CURLIB(*NOCHG) + */
/* PRDLIB(*NOCHG) + */
/* PMTOVRPGM(*NONE) + */
/* AUT(*USE) + */
/* REPLACE(*YES) + */
/* ENBGUI(*YES) */

/* Internal info */
/* PGM call state: *SYSTEM */
/* CCSID: 273 */

CMD PROMPT('Objektbeschreibung anzeigen')
PARM KWD(OBJ) +
TYPE(Q04EF) +
SNGVAL( +
(*ALLUSR ) +
(*IBM )) +
MIN(1) +
PROMPT('Objekt')
PARM KWD(OBJTYPE) +
TYPE(*CHAR) +
LEN(7) +
RSTD(*YES) +
SPCVAL( +
(*ALRTBL ALRTBL) +
(*AUTL AUTL) +
(*BNDDIR BNDDIR) +
(*CFGL CFGL) +
(*CHTFMT CHTFMT) +
(*CLD CLD) +
(*CLS CLS) +
(*CMD CMD) +
(*CNNL CNNL) +
(*COSD COSD) +
(*CRG CRG) +
(*CRQD CRQD) +
(*CSI CSI) +
(*CSPMAP CSPMAP) +
(*CSPTBL CSPTBL) +
(*CTLD CTLD) +
(*DEVD DEVD) +
(*DOC DOC) +
(*DTAARA DTAARA) +
(*DTADCT DTADCT) +
(*DTAQ DTAQ) +
(*EDTD EDTD) +
(*EXITRG EXITRG) +
(*FCT FCT) +
(*FILE FILE) +
(*FLR FLR) +
(*FNTRSC FNTRSC) +
(*FNTTBL FNTTBL) +
(*FORMDF FORMDF) +
(*FTR FTR) +
(*GSS GSS) +
(*IGCDCT IGCDCT) +
(*IGCSRT IGCSRT) +
(*IGCTBL IGCTBL) +
(*IMGCLG IMGCLG) +
(*IPXD IPXD) +
(*JOBD JOBD) +
(*JOBQ JOBQ) +
(*JOBSCD JOBSCD) +
(*JRN JRN) +
(*JRNRCV JRNRCV) +
(*LIB LIB) +
(*LIND LIND) +
(*LOCALE LOCALE) +
(*MEDDFN MEDDFN) +
(*MENU MENU) +
(*MGTCOL MGTCOL) +
(*MODD MODD) +
(*MODULE MODULE) +
(*MSGF MSGF) +
(*MSGQ MSGQ) +
(*M36 M36) +
(*M36CFG M36CFG) +
(*NODGRP NODGRP) +
(*NODL NODL) +
(*NTBD NTBD) +
(*NWID NWID) +
(*NWSCFG NWSCFG) +
(*NWSD NWSD) +
(*OUTQ OUTQ) +
(*OVL OVL) +
(*PAGDFN PAGDFN) +
(*PAGSEG PAGSEG) +
(*PDFMAP PDFMAP) +
(*PDG PDG) +
(*PGM PGM) +
(*PNLGRP PNLGRP) +
(*PRDAVL PRDAVL) +
(*PRDDFN PRDDFN) +
(*PRDLOD PRDLOD) +
(*PSFCFG PSFCFG) +
(*QMFORM QMFORM) +
(*QMQRY QMQRY) +
(*QRYDFN QRYDFN) +
(*RCT RCT) +
(*SBSD SBSD) +
(*SCHIDX SCHIDX) +
(*SPADCT SPADCT) +
(*SQLPKG SQLPKG) +
(*SQLUDT SQLUDT) +
(*SRVPGM SRVPGM) +
(*SSND SSND) +
(*SVRSTG SVRSTG) +
(*S36 S36) +
(*TBL TBL) +
(*TIMZON TIMZON) +
(*USRIDX USRIDX) +
(*USRPRF USRPRF) +
(*USRQ USRQ) +
(*USRSPC USRSPC) +
(*VLDL VLDL) +
(*WSCST WSCST)) +
SNGVAL( +
(*ALL )) +
MIN(1) +
MAX(92) +
EXPR(*YES) +
PROMPT('Objektart')
PARM KWD(DETAIL) +
TYPE(*CHAR) +
LEN(1) +
RSTD(*YES) +
DFT(*BASIC) +
SPCVAL( +
(*BASIC B) +
(*FULL F) +
(*SERVICE S)) +
EXPR(*YES) +
PROMPT('Detail')
PARM KWD(ASPDEV) +
TYPE(E048E) +
DFT(*) +
SNGVAL( +
(* ) +
(*ALLAVL ) +
(*CURASPGRP ) +
(*SYSBAS )) +
PROMPT('ASP-Einheit')
PARM KWD(OUTPUT) +
TYPE(*CHAR) +
LEN(1) +
RSTD(*YES) +
DFT(*) +
SPCVAL( +
(* ) +
(*PRINT L) +
(*OUTFILE N)) +
EXPR(*YES) +
PROMPT('Ausgabe')
PARM KWD(OUTFILE) +
TYPE(Q056B) +
FILE(*OUT) +
CHOICE(*NONE) +
PMTCTL(P0658) +
PROMPT('Datei für Ausgabe')
PARM KWD(OUTMBR) +
TYPE(E041B) +
CHOICE(*NONE) +
PMTCTL(P0658) +
PROMPT('Auswahl für Ausgabeteildatei')
E041B: ELEM TYPE(*NAME) +
LEN(10) +
DFT(*FIRST) +
SPCVAL( +
(*FIRST )) +
EXPR(*YES) +
PROMPT('Teildatei für Ausgabe')
ELEM TYPE(*CHAR) +
LEN(7) +
RSTD(*YES) +
DFT(*REPLACE) +
SPCVAL( +
(*REPLACE REPLACE) +
(*ADD ADD)) +
EXPR(*YES) +
PROMPT('Sätze ersetzen od. hinzufügen')
E048E: ELEM TYPE(*NAME) +
LEN(10) +
MIN(1) +
EXPR(*YES) +
PROMPT('Einheit')
ELEM TYPE(*CHAR) +
LEN(10) +
RSTD(*YES) +
DFT(*ASP) +
SPCVAL( +
(*ASP ) +
(*ASPGRP )) +
EXPR(*YES) +
PROMPT('Suchart')
Q04EF: QUAL TYPE(*GENERIC) +
LEN(10) +
SPCVAL( +
(*ALL )) +
MIN(1) +
EXPR(*YES)
QUAL TYPE(*NAME) +
LEN(10) +
DFT(*LIBL) +
SPCVAL( +
(*LIBL ) +
(*USRLIBL ) +
(*CURLIB ) +
(*ALL ) +
(*ALLUSR )) +
EXPR(*YES) +
PROMPT('Bibliothek')
Q056B: QUAL TYPE(*NAME) +
LEN(10) +
MIN(1) +
EXPR(*YES)
QUAL TYPE(*NAME) +
LEN(10) +
DFT(*LIBL) +
SPCVAL( +
(*LIBL ) +
(*CURLIB '*CURLIB ')) +
EXPR(*YES) +
PROMPT('Bibliothek')
P0658: PMTCTL CTL(OUTPUT) +
COND( +
(*EQ 'N'))
DEP CTL(&OBJ *EQ *ALLUSR) +
PARM( +
(&OBJTYPE *EQ 'LIB')) +
MSGID(CPD2167)
DEP CTL(&OBJ *EQ *IBM) +
PARM( +
(&OBJTYPE *EQ 'LIB')) +
MSGID(CPD2167)
DEP CTL(&OUTPUT *EQ 'N') +
PARM( +
(&OUTFILE *NE ' ')) +
MSGID(CPD9861)
DEP CTL(&OUTMBR *NE *FIRST) +
PARM( +
(&OUTFILE *EQ ' ')) +
NBRTRUE(*EQ 0) +
MSGID(CPD9867)
DEP CTL(&OUTPUT *NE 'N') +
PARM( +
(&OUTFILE *EQ ' ')) +
MSGID(CPD9862)

Flappes
11-08-10, 13:01
Danke für das Tool.
Das erleichtert einem das ganze ja ungemein.

Wie heisst es so schön ...

"Programmieren heisst kopieren." ;)