Skip to Main Content
IBM Power Ideas Portal

Shape the future of IBM!

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:

Post your ideas

Start by posting ideas and requests to this portal to enhance a Power product or service. Take a look at ideas others have posted and upvote them if they matter to you,

  1. Post an idea

  2. Upvote ideas and add comments to ideas that matter most to you

  3. Get feedback from the IBM team to refine your idea

Help IBM prioritize your ideas and requests

The IBM team may need your help to refine the ideas so they may ask for more information or feedback. The Power teams will then decide if they can begin working on your idea. If they can start during the next development cycle, they will put the idea on the priority list. Each team at IBM works on a different schedule, where some ideas can be implemented right away, others may be placed on a different schedule.

Receive notification on the decision

Some ideas can be implemented at IBM, while others may not fit within the development plans for the product. In either case, the team will let you know as soon as possible. In some cases, we may be able to find alternatives for ideas which cannot be implemented in a reasonable time.

Specific link you will want to bookmark for future use

IBM Unified Ideas Portal - - Use this site to create or search for existing Ideas across all IBM products that are outside of Power, and track all of your personal interactions with all Ideas.

Status Not under consideration
Workspace IBM i
Created by Guest
Created on Feb 10, 2022

Deliver a Generate List of Menu Options API

Standard (legacy?) IBM i menu object create a *MSGF that contains the Menu options as a MSGID entry. These menu options can be retrieved using the QMHRTVM easily.
However our UIM-based IBM menus have no such equivalent and therefore present a problem in that we can't do an accurate WHERE USED process for programs called from Menus. This request is to provide an API that can extract a list of Menu options the the program or command string behind those options; specifically for UIM based menus.

Use Case:

Using QMHRTVM and our RTVMNUOPT SQL Table Function we can easily extract the menu options any and all Menus that are not UIM-based.
However this technique does not permit use to do the same for UIM-based menus. Therefore we can only scan legacy/non-UIM menus for program cross references and other option information leaving UIM-based menus out.

Idea priority Low
  • Guest
    Jun 4, 2022
    It would be a lot of work to produce/retrieve this information for a MENU object, along with the low number of votes, IBM does not intend to provide a solution to this request at this time, so it is being closed.
  • Guest
    Mar 14, 2022

    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.

  • Guest
    Mar 10, 2022

    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;

  • Guest
    Mar 10, 2022

    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:

    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.

  • Guest
    Feb 16, 2022

    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

  • Guest
    Feb 15, 2022

    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.

  • Guest
    Feb 14, 2022

    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.