Tech Refresh Brings New RPG Features
October 26, 2020 Alex Woodie
There’s no denying that IBM has a soft spot for open source these days, but that doesn’t mean it’s given up on the ILE environment. In fact, IBM gave RPG programmers something to cheer about by including several new features in the language in the latest batch of Technology Refreshes.
IBM introduced over a dozen new open source capabilities with the IBM i 7.3 TR9 and 7.4 TR3, which IBM unveiled earlier this month and which will ship in a few weeks. That new tech will definitely help IBM i shops tackle their business challenges, says Steve Will, the chief architect for IBM i.
“We know that there are many, many ways to solve business problems, and so we have heavily invested in open source technology, while we have also added functionality to traditional technology, like RPG,” Will said during his appearance on a webinar last week, titled IBM i — Alive and Kicking. “We’re going to increase the capability of RPG, making it easier to learn and more powerful, but we’re also going to bring you open technologies.”
IBM typically saves big changes to the ILE languages for the major releases of the operating system, such as IBM i 7.3 and 7.4. That was the case with the latest major release, 7.4, which saw enhancements to both COBOL and RPG. But there are a few new RPG features in the forthcoming delivery of IBM i 7.3 TR9 and 7.4 TR3 that are worth mentioning.
For starters, IBM is delivering a new opcode, FOR-EACH, as well as two new built-in functions (BIFs), %RANGE and %LIST. The FOR-EACH opcode allows a program to iterate over an array defined by the %LIST BIF. The %RANGE BIF, meanwhile, lets a programmer check whether a value is within the range of two other values.
RPG programmers who would like to be able to debug the return value of a procedure will be happy to hear that IBM has delivered exactly that. With the new control keyword DEBUG(*RETVAL), programmers will be able to view or change the value returned from a procedure in the debugger when they are at the breakpoint for the end of the procedure.
The new TRs also bring an enhancement that improves the behavior of string parameters and numeric BIFs, such as %DEC, %INT, %FLOAT, %INTH, %UNS, and %UNSH. When the EXPROPTS keyword is used, blanks and thousand separators can be used. They will return zero if a blank is used or if it’s empty (it would have returned a status code 105 previously if it was empty). A blank value will also be allowed for a numeric value for XML-INTO and DATA-INTO, IBM says.
The EXPROPTS keyword also allows separators for thousands. However, IBM warns that, after a program is compiled using this enhancement, that a runtime PTF is needed on any system where the program runs.
IBM also added a new command parameter that specifies whether prototypes are required for exporting procedures and for the cycle-main procedures. The feature is delivered with a new command parameter REQPREXP, that’s added to the CRTBNDRPG and CRTRPGMOD commands. There’s also control keyword of the same name that can be placed in the H-spec.
These new RPG features will be included Rational Development Studio (5770-WDS), which contains the compilers for the ILE languages. The RPG enhancements will be usable in the latest release of the IBM Rational Developer for i product, or (RDi), which also goes by product number 5733-RDW).
IBM is already hard at work figuring out what sort of new RPG enhancements the IBM i community wants next, according to Will.
“Our team right now is in the fall planning stages. We know what’s going to be in the release after 7.4 and we’re planning for what the release is after that,” Will says. “We’re always working on the next things, and that’s never going to change. That’s the strategy for IBM i. That’s the strategy for IBM. We have plans for the future.”
For more information on the latest enhancements to RPG, check out the RPG Cafe.