Welcome to the RPG Cafe
Short URL for this page: https://ibm.biz/rpg_cafe
Follow us on twitter #rpgcafe
- New Spring 2020: PTF enhancements for 7.3 and 7.4:
- Microseconds for %TIMESTAMP and unique timestamps
- %KDS allows a variable number of keys
- LIKEDS allows a qualified name
- ILE RPG compiler: SI73190
- ILE RPG runtime: SI73189
- ILE RPG compiler: SI73192
- ILE RPG runtime: SI73191>
- ILE RPG compiler, TGTRLS(V7R3M0): SI73193
Note: The PTFs are also available with the Db2 for i Fix Packs of 15 May 2020. See Db2 for IBM i 2020 PTF Group Schedule.
If you want to be notified about new items in the RPG Cafe, subscribe to "Rational Development Studio for i" in "My Notifications" here: https://www-945.ibm.com/systems/support/myview/subscription/css.wss
- Enter "Rational Development Studio for i" in the Product Lookup.
- Click "Subscribe".
- Select "News" and any other categories you're interested in, then click "Submit".
Request for Enhancement
Here is the list of current RFEs for RPG: https://ibm.biz/rpg_rfe. You can
- Vote for the RFEs you think are most important.
- Add RFEs to your watch list.
- Add your own comments to RFEs. If you have a use case for the RFE that hasn't been mentioned yet in the comments, be sure to add a comment about your use case. The information in the RFE about why it would be useful is at least as important to IBM as the number of votes for the RFE.
Make sure you're seeing all the comments. If you see something like "1 to 10 of 15 comments", click whatever button there is to view more comments. (The limit was formerly 5 comments at a time, but the limit seems to have been either raised or removed.)
If you don't find an existing RFE that describes what you want, open a new RFE:
- Check the "I want to specify the brand, product family, and product" option.
Brand Servers and System Software Product family Power Systems Product IBM i Component Languages - RPG
- The title of your RFE should express your idea very clearly so that other people can easily find your RFE and vote for it.
ILE RPG enhancements delivered through PTFs
New enhancements for Spring 2020
- Spring 2020: Microseconds for %TIMESTAMP and %TIMESTAMP(*UNIQUE): Microseconds for %TIMESTAMP and unique timestamps
- Spring 2020: %KDS(ds : var_num_keys): %KDS allows a variable number of keys
- Spring 2020: LIKEDS(qualified.name): LIKEDS allows a qualified name
- 2019 DATA-GEN, OVERLOAD, OPTIONS(*EXACT) for 7.3 and 7.4: Fall 2019 enhancements for RPG - DATA-GEN, OVERLOAD, OPTIONS(*EXACT)
- 2019 SAMEPOS keyword for 7.3: SAMEPOS keyword for 7.3 with a PTF
- 2019 Two new PSDS subfields for 7.2 and 7.3: Two new PSDS subfields for 7.2 and 7.3 with PTFs
- 2018 New DATA-INTO opcode for 7.2 and 7.3: DATA-INTO opcode - new for 7.2 and 7.3 with PTFs
- 2017 More new enhancements for 7.2 and 7.3: %PROC, more uses for complex qualified names, PCML support for varying-length
- 2017 New enhancements for 7.2 and 7.3: Nested data structures, %MAX & %MIN, ALIGN(FULL)
- 2016 New ON-EXIT section: New for RPG in IBM i 7.2 and 7.3 - ON-EXIT section to be run whenever a procedure ends
- 2016 New TGTCCSID parameter Compile RPG from Unicode source - new TGTCCSID parameter in 7.1, 7.2, 7.3
- 2015 Fully-free-form RPG Fully free-form RPG - new in 7.1 and 7.2
- 2015 Enhancements to improve PCML generation New for RPG in IBM i 7.1 and 7.2 - Enhancements for generated PCML
- 2014 Enhancements to add full ALIAS support and easier result data structure for I/O New for RPG in IBM i 7.1 and 7.2 - Full ALIAS support and easier result DS for IO
- 2013 Enhancement to support free-form H, F, D and P statements, timed to coincide with 7.1 TR7. Free-form H F D P announcement
- 2011 Enhancement to add CCSIDCVT keyword: PTF enhancement for CCSID conversions
- 2011 Enhancement to improve the performance of Date and Time operations: Enhancement for Date, Time, Timestamp that can improve performance (but use with caution)
- 2011 XML-INTO options for XML namespaces: XML-INTO enhancement for namespaces and other non-RPG names
- 2009 XML-INTO options datasubf and countprefix: Two new options for XML-INTO with a V6R1 PTF
- A tutorial on free-form RPG for experienced programmers new to RPG: Coding in Free-Form RPG IV - a beginner's tutorial
- Converting C prototypes to RPG: Converting C Prototypes to RPG
- Troubleshoot calls from RPG to Java™: Troubleshoot calls from RPG to Java
- Learn about RPG: https://www.ibm.com/search?q=rpg&tabType=learning
- Getting the best performance for a call Getting the best performance for a call
- How to compile an RPG module or program with PCML included in the object How to compile an RPG module or program with PCML included in the object
- Article by Scott Hanson: Debug those mysterious problems with your application's memory: https://www.ibm.com/developerworks/ibmi/library/i-mysterious_application/i-mysterious_application-pdf.pdf
- A couple of articles about using Open Access with database IO A couple of articles about using Open Access with database IO
- SQL0901 logger education: New SQL Logger Enhancement
- Presentation on using Java with RPG Presentation on using Java with RPG
- Presentation on exception handling in RPG Presentation on exception handling ih RPG
- Is the debugger active? Here's a procedure that tells you Is the debugger active?
- Save file with JNI utilities from the ILE RPG Programmer's Guide: JNI utilities from the RPG Programmer's Guide
- Utility to see the PCML embedded in a program or service program: See the PCML that is embedded in a program or service program
- Open Access sample programs Open Access sample programs
- ALIGN(*FULL), the forgotten third child of the spring 2017 RPG enhancements Why you should use ALIGN(*FULL)
- Have you heard of the /SET and /RESTORE directives? Have you heard of the /SET and /RESTORE directives
- Are you using OPTION(*NOUNREF)? If so, good! If not, read on Are you using OPTION(*NOUNREF)? If so, good! If not, read on
- Did you ever get weird errors after you called an API? Did you ever get strange errors after you called an API?
- Which is better? Divide by 2 or multiply by 0.5? Which is better? Divide by 2 or multiply by 0.5?
- Why use the TEMPLATE keyword? Why use the TEMPLATE keyword?
- Negative variable names Negative variable names
- Which is better, a return code or an exception? Which is better, a return code or an exception?
- An H spec keyword that you might be missing Keyword CCSID(*CHAR : *JOBRUN) is important
- Everyone knows what X'7D' means ... unfortunately Everyone knows what X'7D' means ... unfortunately
- RPG's "Move fields" logic, and its cousin EVAL-CORR RPG's "Move fields" logic, and its cousin EVAL-CORR
- Performance tip Performance tip
15 May 2020