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 May 11, 2016

Provide a default value for the INCFILE parameter of CRTCLxxx commands to search libl for INCLUDE source mbrs in QCLSRC files

The CL INCLUDE command capability is great but a little clunky because the CRTCLxxx commands' default option of INCFILE(*SRCFILE) is a very limiting default option to work with.

In order for the CRTCLxxx commands to search the library list for INCLUDE source members, the user is forced to specify INCFILE(*LIBL/QCLSRC) on every use of the CRTxxx command.

Use Case:

A better default behavior would be to mimic the way the COBOL and RPG compilers work with copy statements. By default they search the library list for the first QCBLLESRC/QLBLSRC for COBOL or QRGPLESRC/QRPGSRC for RPG that has the INCLUDE member in it.

Both PDM and RDi supply a qualified Library/SourceFile name on the compile commands' SRCFILE parameter which will cause the library list not to be searched, even if compiling from QCLSRC.

Attempting to CHGCMDDFT for the CRTCLPGM, CRTCLMOD, and CRTBNDCL commands to INCFILE(*LIBL/QCLSRC) returns an error saying that the INCFILE default can only be another single value (SNGVAL). There is no other one.


Provide a single value for the INCFILE parameter on all three CRTCLxxx commands, perhaps something like *QCLSRC, that could be used in a CHGCMDDFT to change the default behavior of the commands.

This change would make the compiler behaviors consistent across the languages on IBM i. It would simplify the development of CL programs that use INCLUDE members.

Idea priority High
  • Guest
    Nov 29, 2021

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

  • Guest
    May 6, 2020

    This is still on our list for votes and consideration; if it does not have many votes and we won't get to it in the next release or two,

  • Guest
    Dec 13, 2018

    IBM understands request, RFE is reasonable to implement, but it is not yet committed to deliver.

  • Guest
    May 31, 2016

    The suggestion of the exit program might serve as a short-term workaround, but I don't think it works well as a final solution.

    - The command, in its basic form is not consistent with the method used by the other languages (COBOL and RPG) in their search for copy books / include files. Consistency is really a hallmark of IBM i.

    - It hides implementation details from the user. The command, its help file, and the actual processing of the command are not documented and not obvious.

    - The program would have to check for some criteria so as not to change every command, and checking for the default INCFILE(*SRCFILE) would be the logical choice. However, doing so would eliminate the actual function of *SRCFILE should someone actually want to use it (see next).

    - In my mind, the complete implementation would be to make the following the default action: first, check for the include member in *SRCFILE as is done now; then, if not found, perform a search through QCLSRC files in the *LIBL, as COBOL and RPG do.

    This would not require a new default value. It would be a modification of the process carried out by the CPP using the existing *SRCFILE option, i.e. instead of ending in error if the include member is not found, proceed to the *LIBL/QCLSRC search.

    That process would make development very simple with all the new or modified pieces, including the include files, in a single source file. Those include files would be checked first before heading out to get the production versions in the libl.

    (Then, to be really, really complete, have COBOL and RPG do the first check also before searching the libl... but that is another story.)

  • Guest
    May 27, 2016

    Thanks for your suggestions on the CRTCLPGM, CRTCLMOD, and CRTBNDCL commands.
    I understands your requirement. In fact, IBM has supplied one change command exit point - QIBM_QCA_CHG_COMMAND, to allow your exit program to get control and possibly change the command that is used. With the Exit Program registered on QIBM_QCA_CHG_COMMAND, you can change the parameters of CRTCLPGM command to whatever you want. Such as specify INCFILE(*LIBL/QCLSRC) as the parameter. And then, each time you call CRTCLPGM, parameter INCFILE(*LIBL/QCLSRC) will be specified to this command and take effect.
    What do you think about this idea?

    Here is the detail info about QIBM_QCA_CHG_COMMAND:

    Any further questions are welcome.

  • Guest
    May 12, 2016

    Creating a new RFE based on Community RFE #88231 in product IBM i.

  • Guest
    May 12, 2016

    I like the suggestion of a single value of *QCLSRC. This makes the request a relatively easy one to implement, doesn't require changing the current command default, but allows INCLUDE to function like COPY in RPG or COBOL.