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.
If it would be a lot of work, then provide an API that can return a pointer to either the *UIM or *DSPF menu object's associated space, and I'll spend a day and write it myself. I wrote a decompiler for the *CMD object to materialize its source code, and also wrote the first RTVCLSRC command (both over 35 years ago) so I think I can handle the rather basic *MENU space structure. In fact this should be a new RFE, Provide an API to retieve a pointer to the associated space for user-created objects such as Menus, Binding Directories, etc so we can read that information as necessary.
I'm a little confused as to the "information provided" status of this RFE?
I provided an overly detailed example of an imaginary API named QmmRMO (Retrieve Menu Options) that does not currently exist.
Can we update the status please? Thanks.
Retrieve Menu Options (QmmRMO) API
The Retrieve Menu Options (QmmRMO) API lists menu options for non-*PGM menus. The resulting list is returned to a User Space.
Required Parameter Group:
1. Qualified User space name INPUT CHAR(20)
2. API Format Name INPUT CHAR(8)
3. Qualified Message File Name INPUT CHAR(20)
4. Error Code I/O CHAR(*)
Qualified User Space - CHAR(20)
The name of the user space that is to receive the created list.
Format Name - CHAR(8)
The format of the information returned.
• MNUL0100 - Option information
Qualified Menu Name - CHAR(20)
The menu whose options are to be placed in the list.
Error Code - CHAR(*)
The structure in which the return error information.
Format of the Generated List
The field list consists of:
• The user area
• The generic header
• The input parameter section
• The custom header section
• The MNUL0100 list
The custom Header Section for this API is:
typedef _Packed qus__lmnu_Header
{
char Menu_Name[10];
char Menu_Library[10];
char Menu_Type[10]; // *DSPF *UIM *PGM
char Message_File[10];
char Message_File_Library[10];
char Display_File[10];
char Display_File_Library[10];
char Program_Name[10];
char Program_Library[10];
char Cmdline_Length[10]; // *LONG, *SHORT. *NONE
char FKey_Display[1]; // 1=*YES, 0=*NO
char CURLIB[10]; // name, *NOCHG, *MNULIB, *CRTDFT
char PRDLIB[10]; // name, *NOCHG, *NONE
char Text_Description[50];
} qus__lmnu_Header_t;
MNUL0100 List Data Section
The following information is returned in the list data section of MMUL0100 format. This entry is repeated for each Menu Option on the list.
[NOTE: I've used C language notation here instead of IBM Docs style]
typedef _Packed qus_MNUL0100
{
char Menu_Option[10]; // I'm unsure of maxLen for Options
char Menu_Option_Message_ID[7]; // MSGID if *DSPF type menu
char Menu_Cmd[255]; // Command behind menu option
} qus_MNUL0100_t;
The SQL Tools RTVMNUOPT Table function only produces results for non-UIM, non-PGM based menus.
The request is for UIM based menus to have an interface (API) that returns the options being evoked for those menus.
Clearly when I select an option on a UIM based menu, it know the option it is going to perform. Thus the OPTION->Program behind the OPTION is available somewhere. I am asking that an API be created that returns a list of those options to the caller.
It would be nice if a menu option API for *MSGF and *UIM-based menus were available so we can use it to get either type. I'm sure *PGM menus are out of the picture since user-supplied programs process those requests, hence there is no capability to extract the options for that type of menu.
We use the RTVMNUOPT Link: http://www.sqliquery.com/SQLTools/UDTFParmDoc.html?UDTF=ST_RTVMNUO
Today since we have to know that *MSGF menus are *MSGF objects we know we can use the retrieve message API to get to those options. So we do that and wrap it up in the SQL Table function. However it is limited to just *MSGF menus. We would also like to incorporate *UIM menus.
That way we can allow our customers/users to build a more robust where used that includes *UIM menus along with the *MSGF menus and Job Scheduler entries that we already provide.
Thank you.
Due to processing by IBM, this request was reassigned to have the following updated attributes:
Brand - Servers and Systems Software
Product family - Power Systems
Product - IBM i
Component - Languages - CL (Control Language)
Operating system - IBM i
Source - None
For recording keeping, the previous attributes were:
Brand - Servers and Systems Software
Product family - Power Systems
Product - IBM i
Component - Core OS
Operating system - IBM i
Source - None
Does the resolve work on QSECURITY(40) systems? I find that to not work very often. I recently tried it on a Binding Directory in an attempt to build an SQL Table function that extracts binding directory entries but it failed for the purpose mentioned. I ended up usng the DSPBNDDIR outfile support instead, but I felt dirty doing it that way.
Great RFE.
Until now I have mitigated the issue by resolving a space pointer to the UIM menu object and done som heavy reverse engineering. This approach is nothing I would recommend for anybody. Your RFE is a much better solution.