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
Categories Languages - RPG
Created by Guest
Created on Sep 14, 2020

Expand 16773104 limit (RNF0376) within data structures

With nested data structures, especially those involving multi-dimensional arrays, it is very easy to exceed the 16773104 limit.

Would be nice if this limit could be expanded.

For backwards compatibility, if required, could perhaps use a compiler keyword that could specify Teraspace usage.

(I did try searching for a similar RFE but could not find one - my apologies if this is a duplicate).

I'm on 7.3


Use Case:

In my case, I'm struggling with an ASN program, where a single ASN can contain hundreds of customer orders, each of which contains only 1 or 2 items per order.

At the same time, there can be a single ASN that contains 2 or 3 customer orders, which contains hundreds of customer items in hundreds of boxes. This can also be performed at the tare (pallet) level.

I've created nested data structures & am struggling to accommodate the above situation without using another method (such as temporary files).

I've had an example of an ASN that contained 1 customer order split into over 6000 boxes, each one needing its own UCC. This is why Order_Carton is defined as large as it is.

And I have also had a few examples of ASNs that cannot be processed using this program because there are over 500 customer orders (current max is 133), each with only 1 box.

Examples of data structures are as follows (there are others as well, such as nested ds that contain item information, weight, etc. For simplicity, not included below).

dcl-ds Order_Info_t qualified template;
Order like(s1_order);
Order_Pack_Qty like(s1_packqty);
Order_Case_Qty like(s1_packqty);
Order_Carton_Qty like(s1_packqty);
Order_Cartons like(s1_box);
Order_Carton_UCC like(s1_ucc) dim(6286); // Make sure this matches Box_Info dim
Order_Weight like(s1_weight);
Order_Pallets like(s1_pallet) dim(52);
Pallets like(s1_pallet);
end-ds;

dcl-ds Order_Summary qualified inz;
Orders like(s1_box);
Order_Info likeds(Order_Info_t) dim(133);
end-ds;

dcl-ds Order_Summary qualified inz;
Orders like(s1_box);
Order_Info likeds(Order_Info_t) dim(133);
end-ds;

dcl-ds Box_Info_t qualified template;
Box_Number like(s1_box);
Box_UCC like(s1_ucc);
Item_Count like(s1_box);
Item_Info likeds(Item_Info_t) dim(76); // > 76 = Max Memory Exceeded. Adjust Box_Info dim
Tracking like(s1_track);
Ship_to like(s1_ship2);
PO like(s1_po);
Pallet_Number like(s1_pallet);
end-ds;

dcl-ds Box_Detail qualified inz;
Boxes like(s1_box);
Box_Info likeds(Box_Info_t) dim(6286); // If IBM raises memory limit in future releases, adjust
end-ds;


(Please do not judge the complexity of the above data structures - this is a complex program :-) )

So in short, I'm hoping that the 16MB limit for (nested) data structures can be increased - and retrofitted to 7.3.


Idea priority Low
  • Guest
    Reply
    |
    Jan 25, 2022

    The CAAC has reviewed this requirement and recommends that IBM view this as a medium priority requirement that should be addressed. Although a table is a good alternative, if it is possible to increase this limit, it will be helpful to those modernizing applications to avoid the larger effort to start using tables.

    Background: The COMMON Americas Advisory Council (CAAC) members have a broad range of experience in working with small and medium-sized IBM i customers. CAAC has a key role in working with IBM i development to help assess the value and impact of individual RFEs on the broader IBM i community, and has therefore reviewed your RFE.

    For more information about CAAC, see www.common.org/caac

    Nancy Uthke-Schmucki - CAAC Program Manager

  • Guest
    Reply
    |
    Nov 22, 2021

    I agree with Mr Nicolay - seems like a natural for using tables. They could be JOINed, say, to get single rows as needed.

  • Guest
    Reply
    |
    Mar 11, 2021

    IBM will use this request as input to planning but no commitment is made or implied. This request will be updated in the future if IBM implements it. IBM will use votes and comments from others in the community to help prioritize this request.

  • Guest
    Reply
    |
    Nov 25, 2020

    IBM has received the requirement and is evaluating it. IBM will provide a response after evaluation is complete.

  • Guest
    Reply
    |
    Sep 16, 2020

    Why not use a database for this ?