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.

ADD A NEW IDEA

Languages - RPG

Showing 48

%split() should return an empty element where a separator character follows another separator character

In %split() if a separator character follows another separator character, it is ignored. For example, %SPLIT('abc..def' : '.') returns an array with two elements: ('abc','def'). It would be nice if it was possible that an empty element could be re...
about 3 years ago in IBM i / Languages - RPG 4 Delivered
126 VOTE

New built-in function %SPLIT.

The new built-in function %SPLIT can be used to extract an array of elements from a source string. Use Case: DCL-S myArray VARCHAR(255) DIM(255);DCL-S myString VARCHAR(32767) INZ('a;b;c');DCL-C MY_SEPARATOR ';'; myArray = %SPLIT(myString : MY_SEPA...
over 7 years ago in IBM i / Languages - RPG 20 Delivered

Allow a BIF that checks to see if a parameter is passed

Please introduce a new BIF that will indicate if a parameter has been passed with actual data, as opposed to not passed or passed with *OMIT. Use Case: To check to see if a parameter defined as OPTIONS(*NOPASS) or ...*OMIT) was passed with data, I...
almost 4 years ago in IBM i / Languages - RPG 11 Delivered
118 VOTE

For RPG extend array capabilities

Extend arrays and data-structure arrays to be really dynamic without having to use base pointer and memory allocation. Without having to give number of max elements in dim(), e.g. dim(*varying) or dim(*dynamic) or dim(*automatic).Provide functiona...
over 8 years ago in IBM i / Languages - RPG 9 Delivered
112 VOTE

Provide an %UPPER and %LOWER bif

It would be helpful to have an easier and more robust way to change the case of characters from upper to lower or lower to upper. The current method is to use the %XLATE function, but the usual way that this is coded (just using the main 26 letter...
over 8 years ago in IBM i / Languages - RPG 17 Delivered

Enhancement to SELECT

Currently there is no difference between a SELECT ... ENDSL block and an IF ... ELSEIF ... ENDIF block. I am not real sure why both are in the language. However, if the SELECT block had a "switched" format like the SWITCH block in C, that would be...
over 5 years ago in IBM i / Languages - RPG 13 Delivered

Provide %InList Built In Function

Provide a new BIF %InList() or %OrList() to check if a variable's value exit in list. Use Case: Dcl-S MyState Char(2) Inz('CA') If %InList(MyVar : 'CA' : 'NV': 'AZ': 'NM': 'NY'); do somethingEndIf; Or If %InList(MyVar : ',' : 'CA,NV,AZ,NM,NY'); //...
over 8 years ago in IBM i / Languages - RPG 15 Delivered

Allow SND-MSG to use %target( *PGMBDY: 0 )

It just makes things so much easier. Supporting *PGMBDY allows *ESCAPE messages to be sent directly to the calling executable (terminating the sending program) from any procedure in a program. Only offering *CALLER forces one to attempt to count t...
about 1 year ago in IBM i / Languages - RPG 3 Delivered

Extend ON-ERROR to accept message codes

In our codebase, we use a lot of user-defined message codes in *ESCAPE messages for our exception handling. We combine these with RPG's MONITOR op-code to trap the errors and, if possible, handle them. Identification of the last exception message ...
over 3 years ago in IBM i / Languages - RPG 4 Delivered

provide "between" operator in rpg expressions

Provide "between" in rpg logical expressions Use Case: if a >=b and a<=c ;could be replaced by :if a between b and c;
over 8 years ago in IBM i / Languages - RPG 11 Delivered