Skip to Main Content
IBM Power Ideas Portal


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).


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:

Search existing ideas

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 your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

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.

Status Future consideration
Workspace IBM i
Created by Guest
Created on Feb 13, 2021

Enhance QMHRTVM Retrieve Option parm with *GE

The QMHRTVM (Retrieve Message) API has a so-called "Retrieve Option" parameter that controls whether the MSGID is returned or the Next MSGID is returned from the MSGF. Please add a *NEXT or *SAME option, meaning *GE (Greater Than or Equal) option that returns either the MSGID specified or if it does not exist, returns the next MSGID. Since *MSGF are just Index objects, this capability is already built into the object it just needs to be released.


Use Case:

When retrieving a message description using QMHRTVM, normally the need is to return the exact MSGID info specified. However often we want to iterate through the message file messages. Since no "List MSG IDs" API exists, we use QMHRTVM to produce the list. Sometimes, however, there is a need to search for a message ID from User Input and if that specific message ID exists it should be returned but if it does not exist, the next higher message ID info should be returned.
This would be the functional equivalent of calling the QMHRTVM API with *MSGID and if no message is found, calling it a 2nd time with *NEXT.
With this specific API, developers tend to have to call it twice when info other than just the MSG 1st Level text is needed. Once to determine if the message exists, but more importantly to determining the Bytes_Available so that proper malloc() (memory allocation) is performed, then call it a second time. Today I have to call it once to see if the message exists, then adjust the "Retrieve Option" to *MSGID or *NEXT, then call it again to determine the needed length, then finally call it a 3rd time to actually retrieve the msg information. Since *MSGFs are Indexs, this overhead basically eliminates any benefit of having this "fast object" used as a message file.


Idea priority Medium
  • Guest
    Reply
    |
    Jan 10, 2022

    Thank you

  • Guest
    Reply
    |
    Sep 17, 2021

    The implementation to achieve this request is not as simple as I was led to believe :-)
    It is indeed an index, but the API calls a macro which calls a program which calls more macros and programs before we ever get to the FNDINXEN.
    I think we could still do something, but it would probably be something like two calls to the macro under the covers.
    I'll move this to uncommitted candidate for now.

  • Guest
    Reply
    |
    Mar 12, 2021

    This sounds like a nice feature, will investigate further.