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 Not under consideration
Workspace IBM i
Categories Languages - RPG
Created by Guest
Created on Feb 18, 2020

OPDESC support for numeric parameters

Would like to see operational descriptor support extended to include numeric parameters, i.e. be able to determine type (packed, zoned, int, uns etc), length, and decimal positions for a numeric parameter passed to a sub-procedure when 'const' or 'value' keywords are specified.

Before the addition of the OVERLOAD keyword, a general purpose procedure that needed to handle a variety of data types usually required the numerics to be cast to char before passing.

Using OVERLOAD means that procedures can now be written to handle each data type without the need to cast, making the use of these procedures 'cleaner'.

However, given the huge number of variations in length and decimal positions that are possible for a numeric variable, it is not practical to write a unique interface for every combination (e.g. one for a packed(3:0), one for a packed(5:2) etc, etc) so numeric variables still need to be cast to a suitably sized receiver (e.g. packed(63:32)).

If the received numeric variable then needs to be included as a part of a text string for example, the lack of OPDESC support means that it is not possible to correctly format the received argument to the same specifications (length, dec.pos if applicable) as the parameter used on the call.

OPDESC support would allow the original length and dec.pos. to be determined making formatting operations easier.


Use Case:

User overloaded procedures to handle a variety of data types as inputs.

Allow the details of the received argument to be determined to facilitate formatting operations, check for possible overflows etc


Idea priority Medium
  • Guest
    Reply
    |
    Apr 16, 2020

    IBM does not intend to provide a solution to this request at this time, so it is being closed.

    It is very unlikely that Operational Descriptor support will be extended to support numeric parameters. However, even if operational descriptors were supported for numeric values, the operational descriptors don't describe the type of value that was passed on the call, they describe the actual parameter that is received by the procedure. So for that to work, RPG would have to allow any type of numeric value to be passed directly.

  • Guest
    Reply
    |
    Mar 7, 2020

    Why do you need to cast ? Just define the packed(63:32) like you wrote and in combination with the const keyword you can pass any numeric data type no matter how it is defined in the caller program.

  • Guest
    Reply
    |
    Mar 4, 2020

    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 - RPG
    Operating system - IBM i
    Source - None

    For recording keeping, the previous attributes were:
    Brand - Servers and Systems Software
    Product family - Programming Languages
    Product - Developer for Power Systems
    Component - RPG/COBOL Development Tools
    Operating system - IBM i
    Source - None