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 (

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 ( - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal ( - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM. - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace IBM i
Created by Guest
Created on Jun 5, 2017

Add 'Call stack counter' to QMHSNDSM

Please add a 'Call stack counter' parameter to the QMHSNDSM API.

We want to encapsulate the ability to set a scope-handling program in a command so that less experienced programmers can use it without having to understand the nuances of the QMHSNDSM API. Even more seasoned programmers could benefit from the simplicity of issuing a command to set a scope-handling program.

Without the ability to specify a call stack counter, a *PGM-level scope message can't be sent from a Command processing program (CPP) for a command--when the CPP ends, the scope handling program is called. So instead of simply coding a command to set the scope-handling program, calling the API is required. Depending on the developer's level of understanding a skill, this could be challenging.

Use Case:

Write a command and command processing program (CPP) to call the QMHSNDSM API and specify *PGM for the scope type. The CPP would specify the call stack counter to set the scope-handling program for the program issuing the user-written command.

Idea priority High
  • Guest
    Apr 17, 2020

    Scope messages date back before invocation exits / cancel handlers were invented. Cancel handlers would be the preferred way to cleanup up when an program invocation ends. Invocation exit programs have the ability to work with (though indirectly addressing) data in the stack frame of the program whose invocation is being protected. That means you set up the invocation exit and then do all the operations that need protection, tracking operation state in the data structure as you go. Doing that with a scope message means putting all the state information where both the original program and the scope message handler can see it -- which can mean lots of others can see it.
    For this reason, we are not planning to enhance scope message handling at this time.