Wo ist mein Sourcemember?
Ich denke, diese Frage hat sich jeder Programmierer bereit x-mal gestellt, ausser man hat ein CMS1 im Einsatz. Früher gab es zum Auffinden von Programmsources 3rd-Party-Tools wie Hawkeye Pathfinder
, TOTAL/400
von Adeonics oder JCRCMDS / JCR Utilities
.
Auch
Auch
FNDSRCMBR MBR(TESTPGM) LIB(*ALL) in den TAA Tools war hilfreich. Heute beantwortet man diese Frage per SQL2:SQL
SELECT SYSTEM_TABLE_SCHEMA AS LIBRARY,
SYSTEM_TABLE_NAME AS SOURCE_FILE,
SYSTEM_TABLE_MEMBER AS SOURCE_MEMBER,
SOURCE_TYPE,
TEXT_DESCRIPTION,
LAST_SOURCE_UPDATE_TIMESTAMP
FROM QSYS2.SYSMEMBERSTAT
WHERE SYSTEM_TABLE_MEMBER = 'TESTPGM'
AND SOURCE_TYPE IS NOT NULL
ORDER BY SYSTEM_TABLE_SCHEMA,
SYSTEM_TABLE_NAME;Oder nach einer Gruppe von Programmen suchen:
WHERE SYSTEM_TABLE_MEMBER like 'TEST%'Schwierige Frage, einfache Lösung! Während das SQL läuft kann man mal einen Kaffee holen.
Oder umgekehrt: Das *PGM ist bekannt, aber nicht dessen Source
Bei einem kompilierten Objekt speichert IBM i die Source-Information zum Zeitpunkt der Erstellung mit ab. Für ILE-Programme kann man mit
DSPPGM oder per SQL über BOUND_MODULE_INFO Sourcefile, Library und Member eruieren. Bei OPM-Programmen stehen entsprechende Source-Informationen auch in der Objektbeschreibung oder in OBJECT_STATISTICS(). Wird die Source später verschoben, bleibt im Programm natürlich die alte Compile-Information stehen.Viel Spass beim Anwenden und bis bald. Weitere Auswertungen folgen . . .