Cᑍ Start of subroutines
Cᑍ
Cᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍᑍ
C PROCES BEGSR
Cᑍ
Cᑍ This subroutine processes each entry returned by QSYLOBJP
Cᑍ
Cᑍ
Cᑍ Do until the list is complete
Cᑍ
C MOVE QUSIS LST_STATUS 1
C LST_STATUS DOUEQ 'C'
Cᑍ
Cᑍ If valid information was returned
Cᑍ
C QUSIS IFEQ 'C'
C QUSIS OREQ 'P'
Cᑍ
Cᑍ and list entries were found
Cᑍ
C QUSNBRLE IFGT
Cᑍ
Cᑍ set LSTPTR to the first byte of the user space
Cᑍ
C EVAL LSTPTR = SPCPTR
Cᑍ
Cᑍ increment LSTPTR to the first list entry
Cᑍ
C EVAL LSTPTR = %ADDR(ARR(QUSOLD + 1))
Cᑍ
Cᑍ and process all of the entries
Cᑍ
C DO QUSNBRLE
C QSYOBJT12 IFEQ 'ᑍSQLPKG'
Cᑍ
Cᑍ Process ᑍSQLPKG type
Cᑍ
C ELSE 2
Cᑍ |
Cᑍ This 'ELSE' logic is the potential bug in this program. In |
Cᑍ releases prior to V2R3 only ᑍSQLPKGs and ᑍPGMs could adopt |
Cᑍ owner authority, and this program is assuming that if the |
Cᑍ object type is not ᑍSQLPKG then it must be a ᑍPGM. In V2R3 |
Cᑍ a new type of object (the ᑍSRVPGM) was introduced. As this |
Cᑍ program is written, all ᑍSRVPGMs that adopt the owner profile |
Cᑍ will be processed as if they were ᑍPGMs -- this erroneous |
Cᑍ processing could definitely cause problems. |
Cᑍ |
C QSYNAME5 DSPLY |
C END ↓
Cᑍ
Cᑍ after each entry, increment LSTPTR to the next entry
Cᑍ
C EVAL LSTPTR = %ADDR(ARR(QUSSEE + 1))
C END
C END
Cᑍ
Cᑍ When all entries in this user space have been processed, check
9-40 System API Programming V4R1