This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
See this idea on ideas.ibm.com
Hi,
QSYS2 functions and tables allow you to know:
- What procedures are exported by our service programs.
- What programs use our service programs.
But it is not possible to know which programs use which exported procedure.
This is a pity because it involves developing to look in the sources of the programs that use the service programs to find out which exported procedures are used.
I can find the information with the next sql sentence :
SELECT A.PROGRAM_LIBRARY AS "SERVICE_PROGRAM_LIBRARY",
A.PROGRAM_NAME AS "SERVICE_PROGRAM",
A.OBJECT_TYPE AS "OBJECT_TYPE",
A.SYMBOL_NAME AS "EXPORTED_PROCEDURE",
B.PROGRAM_LIBRARY AS "PROGRAM_USE_EXPORTED_PROCEDURE_LIBRARY",
B.PROGRAM_NAME AS "PROGRAM_USE_EXPORTED_PROCEDURE",
B.OBJECT_TYPE AS "PROGRAM_USE_EXPORTED_PROCEDURE_TYPE",
TRIM(C.SOURCE_FILE_LIBRARY) CONCAT '/' CONCAT TRIM(C.SOURCE_FILE)
CONCAT '(' CONCAT TRIM(C.SOURCE_FILE_MEMBER) CONCAT ')' AS PATH_SOURCE
FROM QSYS2.PROGRAM_EXPORT_IMPORT_INFO A
LEFT JOIN QSYS2.BOUND_SRVPGM_INFO B
ON B.BOUND_SERVICE_PROGRAM = A.PROGRAM_NAME
LEFT JOIN QSYS2.BOUND_MODULE_INFO C
ON C.PROGRAM_LIBRARY = B.PROGRAM_LIBRARY
AND C.PROGRAM_NAME = B.PROGRAM_NAME
WHERE A.PROGRAM_LIBRARY = 'my_program_library'
AND A.PROGRAM_NAME = 'my_service_program'
AND B.PROGRAM_LIBRARY = 'my_program_library'
AND LOCATE_IN_STRING(GET_CLOB_FROM_FILE(TRIM(C.SOURCE_FILE_LIBRARY) CONCAT '/' CONCAT TRIM(C.SOURCE_FILE)
CONCAT '(' CONCAT TRIM(C.SOURCE_FILE_MEMBER) CONCAT ')', 1), A.SYMBOL_NAME) > 0;
(With commit control active for the GET_CLOB_FROM_FILE...)
So i know how retrieve the programs who use my exported procedure but i wanted to know if it'll be possible to have a futur QSYS2 Table with this information directely...
Thank you
Idea priority | Low |
By clicking the "Post Comment" or "Submit Idea" button, you are agreeing to the IBM Ideas Portal Terms of Use.
Do not place IBM confidential, company confidential, or personal information into any field.
That's a great idea - but as mentioned, it would be necessary to extract that information from the linkage process. As ILE "late binding" is based on service program and procedure "slot" (the ordinal number of the exported procedure - not the name) this could result in wrong information. It would be great, if the new table/view would list :
This would in fact help, when service program exports are changed and the service program signature is staying the same.
Jérôme,
That's a great idea!
But it would be interesting if IBM added linking information to the created program or service program:
- the syntactic analysis of the program source code can be complex (management of /include for example)
- the name of the procedure actually exported can be different from the name used for the call (see extproc)
- procedure pointer (limited use but difficult to analyze)
The analysis of the compilation spool would be more relevant, but much more complex!
IBM could add information on the resolution of imports (procedures and variables) at the level of programs and service programs: external resolution (from a service program) or internal resolution (via a module in the object) for example
Nathanaël