| 
 | 
> Hi,
> is there an easy way to do a dspobjaut for all objects in a library? I 
> especially would need to find all objects which aren't secured by a 
> specific authority list.
> Or which objects have *public *change/*all authority.
Oliver,
Here is a simple command and its command-processing-program 
(CLP) that I wrote to display the authorities of all objects in a 
library to one outfile.
Command DSPAUTLIB:
/********************************************************************/
/*                                                                  */
/*    DISPLAY AUTHORITY OF ALL OBJECTS IN A LIBRARY                 */
/*                                                                  */
/********************************************************************/
             CMD        PROMPT('Display Aut for all obj in Lib')
/*  Source member name                                              */
             PARM       KWD(LIBRARY) TYPE(*NAME) MIN(1) +
                          PROMPT('Library name:')
/*  Qualified source file name                                      */
             PARM       KWD(OUTFILE) TYPE(OUTFILE1) SNGVAL((*NONE)) +
                          PROMPT('OutFile name:')
 OUTFILE1:   QUAL       TYPE(*NAME) DFT(OBJAUT)
             QUAL       TYPE(*NAME) LEN(10) DFT(QTEMP) +
                          SPCVAL((*LIBL)) PROMPT('Library name:')
Command-processing program for DSPAUTLIB:
/********************************************************************/
/*                                                                  */
/*    DISPLAY AUTHORITY OF ALL OBJECTS IN A LIBRARY                 */
/*                                                                  */
/********************************************************************/
             PGM        PARM(&LIBRARY &QUALFILE)
             DCL        VAR(&LIBRARY) TYPE(*CHAR) LEN(10) /* +
                          Parameter 1 */
             DCL        VAR(&QUALFILE) TYPE(*CHAR) LEN(20) /* +
                          Parameter 2 */
             DCL        VAR(&OUTFILE) TYPE(*CHAR) LEN(10)
             DCL        VAR(&OUTFILELIB) TYPE(*CHAR) LEN(10)
             DCL        VAR(&ERRORSW) TYPE(*LGL) /* Std err */
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7) /* Std err */
             DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(100) /* Std err */
             DCL        VAR(&MSGF) TYPE(*CHAR) LEN(10) /* Std err */
             DCL        VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) /* Std err */
             DCLF       FILE(QADSPOBJ)
             MONMSG     MSGID(CPA0000 CPD0000 CPF0000) EXEC(GOTO +
                          CMDLBL(STDERR1)) /* Std err */
             CHGVAR     VAR(&OUTFILELIB) VALUE(%SST(&QUALFILE 11 10))
             CHGVAR     VAR(&OUTFILE) VALUE(%SST(&QUALFILE 1 10))
 STEP10:     CHKOBJ     OBJ(QSYS/&LIBRARY) OBJTYPE(*LIB) /* Check +
                          for library existence */
             DLTF       FILE(QTEMP/QADSPOBJ)
             MONMSG     MSGID(CPF0000)
             DSPOBJD    OBJ(&LIBRARY/*ALL) OBJTYPE(*ALL) +
                          OUTPUT(*OUTFILE) OUTFILE(QTEMP/QADSPOBJ) +
                          /* Display list of objects to outfile in +
                          QTEMP */
             OVRDBF     FILE(QADSPOBJ) TOFILE(QTEMP/QADSPOBJ)
 STEP50:     RCVF
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(STEP99))
             DSPOBJAUT  OBJ(&ODLBNM/&ODOBNM) OBJTYPE(&ODOBTP) +
                          OUTPUT(*OUTFILE) +
                          OUTFILE(&OUTFILELIB/&OUTFILE) +
                          OUTMBR(*FIRST *ADD)
             GOTO       CMDLBL(STEP50)
 STDERR1:               /* Standard error handling routine */
             IF         COND(&ERRORSW) THEN(SNDPGMMSG MSGID(CPF9999) +
                          MSGF(QCPFMSG) MSGTYPE(*ESCAPE)) /* Func +
                          chk */
             CHGVAR     VAR(&ERRORSW) VALUE('1') /* Set to fail ir +
                          error occurs */
 STDERR2:    RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             IF         COND(&MSGID *EQ '       ') THEN(GOTO +
                          CMDLBL(STDERR3))
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
             GOTO       CMDLBL(STDERR2) /* Loop back for addl +
                          diagnostics */
 STDERR3:    RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
 STEP99:     DLTOVR     FILE(*ALL)
             RCLRSC
             ENDPGM
Hope this helps,
Steve Landess
Austin, Texas
(512) 423-0935
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.