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).
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:
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 an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
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.
See this idea on ideas.ibm.com
Via prototype and the EXTPGM keyword, RPG/ILE is able to invoke external programs using the CALLP op code. This has several advantages over the RPG CALL op code and I would like to be able to use at least one of those advantages in CL/ILE programming. That advantage is the use of the *OMIT special value in the parameter list.
CL/ILE and the CALLPRC command are analogous to the RPG/ILE CALLP op code except that CALLPRC cannot invoke external programs -- even though CALLPRC also supports the *OMIT special value in its parameter list. It seems to me that it would be a relatively simple matter to enhance the CALLPRC command to include the ability to invoke external programs.
In lieu of creating prototype support for CL/ILE, additional parameters can be added to the CALLPRC command to support prototype-like features where they make sense. For example:
CALLPRC ... EXTPGM(*YES) /* mutually exclusive of the RTNVAR +
parm and with a default of *NO for backward compatibility */
-- or --
CALLPRC ... EXTPGM(name) /* mutually exclusive of the RTNVAR +
parm and with a default of *NONE for backward compatibility */
Idea priority | High |
By clicking the "Post Comment" or "Submit Idea" button, you are agreeing to the IBM Ideas Portal Terms of Use.
Do not place IBM confidential, company confidential, or personal information into any field.
Since RPG have no plan to provide ways to call CL directly from RPG, close this RFE. If the customer want the original feature, "Enhance CL/ILE CALL command to support *OMIT special value like CALLPRC command", please open another RFE, thanks.
Even if RPG did have support to call CL commands directly, I don't think it would address the requirement. I don't think CL programmers would want to have to do some of their code in RPG to get additional functionality.
Note that is very unlikely that RPG would support directly calling CL commands using CL syntax.
We may be able to support "CALL PGM ('x' *OMIT 'y')", but need more consideration and evaluation about calling CL commands from RPG using the /CL syntax.
We are getting to a point that everyting in the RPG laguage we would like in CL.
And everything in CL to have in RPG. We have already FREE format RPG, like CL.
Why not unite both languages together, it will save maintenance, learning curve. No need to write a separate CL program for just 3-4 lines of code.
Just add the ability to run CL commands directly from within RPG.
The syntax will be similar to running SQL commands:
/CL RTVOBJD OBJ(MYFILE) OBJTYPE(*FILE) RTNLIB(&MYLIB)
/CL CRTDUPOBJ OBJ(MYFILE) FROMLIB(&MYLIB) OBJTYPE(*FILE) TOLIB(QTEMP)
It was suggested to me that it might be better to ask that the CL/ILE CALL command support the *OMIT keyword for parameters. They suggested that it was nicer to code:
CALL PGM ('x' *OMIT 'y')
--than--
CALLPRC PGM ('x' *OMIT 'y') EXTPGM(*YES)
I am in favor of either approach.