Contact | Privacy Policy
Virtual RPG & DB2 Summit
October 28 — November 3, 2020
Sponsors & Special Offers
News Headlines
October 13, 2020
New sessions added to Session Grid for October 2020 Virtual RPG & DB2 Summit.
September 28, 2020
Session Grid posted for October 2020 Virtual RPG & DB2 Summit.
July 14, 2020
New Hands-On Live! series features in-depth 1-day workshops on 10 vital IBM i development skillsets.
May 4, 2020
System i Developer hosts no-charge Summit Lunch & Learn Series, May 19 - June 17, 2020
February 6, 2020
2020 IBM i Champions Named: Congrats to Ted Holt, Scott Klement, Liam Allan, Alan Seiden, Mike Pavlak, Stephanie Rabbani, Charles Guarino, Susan Gantner, Jon Paris & Paul Tuohy!

RPG-Oriented Sessions

RPG Free Form in a Nutshell

Most Summit sessions with RPG code samples will be coded using free format RPG - including free format data and procedure declarations. If you could use a refresher on those topics to make sure you'll be able to understand the syntax of the code samples you see, you should attend this session.

Perhaps you've heard about free form RPG, you may even have read an article or two or tried your hand at writing some free-form code. But many RPGers have stumbled over "how do I ... ?" issues and wonder if it is really worth the effort.

If this sounds like you then come to this session and Susan will do her best to clear up any misconceptions you may have and show you why and how to take this next step.

In this session, Susan will attempt to answer questions such as:

  • Why is free format RPG important?
  • What are the rules?
  • Just how free can you go?
  • Are there any likely gotchas?
  • Are there tools available to convert fixed format code easily?

The session will include a brief refresher on free format logic, but will focus primarily on the new free-form declarations (i.e. the replacements for H, F, D and P specs) as well as the ability to use as many columns for your RPG logic as you need - starting in column 1 if you want!

Speaker: Susan Gantner

XML and JSON Primer

An ever increasing number of the sessions we present at the Summit involve the processing of XML and/or JSON data. The instructors for these sessions have to assume a certain level of knowledge on the part of the audience if they are to cover the topic fully. And therein lies a problem ...

Often attendees know that they are going to be getting involved with creating or using web services, or using XML and/or JSON for other purposes, but don't have that basic knowledge.

So we have introduced this session to provide you with a basic understanding of the syntax and usage of XML and JSON so that you will be equipped to get the most out of the detailed sessions.

Speaker: Jon Paris

Zoom Technology Testing- Drop in any time

This time is for Virtual Summit attendees to test their connection to Zoom, which is the technology we're using to run the Summit sessions. One of us will be around during this session time to help answer questions you may have about using Zoom and help out with any problems you may run into. If you want to learn more about Zoom, you can check it out at

When you click on the button to join the session, you will be prompted to download and install the Zoom app if you don't already have it installed. We suggest that you install the Zoom app for the best experience. If installing the app is not an option, it is also possible to join the meeting via a browser.

Feel free to connect to this meeting when convenient to make sure you can connect with Zoom so you will be ready to go when the Summit begins on Wednesday.

Speaker: Jon Paris, Paul Tuohy & Susan Gantner

What's new in RPG for 7.4

Find out about what's new in 7.4 for RPG. This includes details of the very latest features coming with TR3 (and 7.3 TR9) as well as several items that were already available through PTFs for earlier releases.

The very latest features to look forward to include new built-in functions %LIST and %RANGE, an 'IN' operator along with the FOR-EACH operation. We'll also be able to display and even change the return value from an RPG procedure in debug. And there's more - come to the session to hear all about it.

You'll also hear about come of the most requested RPG features that were delivered earlier this year, such as variable-dimension arrays, including a type of array that automatically grows as you assign new elements

More enhancements for 7.3 and 7.4, will also be covered, such as:

  • An option to require a prototype for all exported procedures
  • Keywords to make some string handling/conversion operations more flexible
  • %TIMESTAMP enhancements:
  • %KDS allows a variable number of keys now
  • "Overloaded" procedures - call several procedures using the same name for the call
  • OPTIONS(*EXACT) for parameters - more control over what can be passed
  • DATA-GEN - the reverse of DATA-INTO - generates a document from an RPG data structure
  • And more

Other enhancements:

  • DIM(*CTDATA) lets you soft-code the dimension of an array with compile-time data
  • The SAMEPOS ikeyword lets you define an array over repeating subfields in an externally-described data structure
  • Two new subfields for the PSDS
  • DATA-INTO opcode - similar to XML-INTO, except that it works with any type of structured data, including JSON
  • ON-EXIT opcode makes it easy to reliably clean-up when your procedure ends
  • And more

Speaker: Barbara Morris

What's New in RDi?

It can be hard to keep up with what's happening with new releases of our favorite products. This is especially true with RDi, which tends to be on a slightly different announcement schedule from the other IBM i software.

RDi V9.6 and all its follow-on "fix packs" added some of Susan's new favorite features. Come to this session to learn about some of the very latest features in RDi. Susan will demonstrate some of great new enhancements in V9.6.

Stay up to date and keep your productivity increasing by using the latest features that RDi has to offer.

Speaker: Susan Gantner

Refactoring RPG: What, Why and How

Refactoring is rewriting source code in such a way that the new code behaves as the current code does, but is easier to read, understand, modify, enhance and debug. Refactored code takes advantage of features that were not available, or were ignored, when the code was written.

This presentation, which is geared toward the RPG programmer, is given by Ted Holt, who has been writing RPG programs since 1982 and has programmed in RPG II and every version since then. Ted explains what refactoring is and is not, why you should refactor, when you should not refactor, and how to refactor RPG. If you have old RPG code in your shop (and who doesn't?), this presentation is for you.

Speaker: Ted Holt

Impress Your Boss with Open Source

Open source brings ready-made solutions that can run on your IBM i, usually at no charge. Create graphics, PDFs, content management for the web, not to mention web languages that allow you to address new business needs. What's more, these open source technologies work well with RPG.

In this business-oriented talk, learn how companies are staying ahead of the curve with open source on their IBM i. See how RPG provides the solid business logic to provide business advantage, while open source brings interfaces and capabilities up to date. Be prepared to be wowed by many examples.

Speaker: Alan Seiden

Configuring RDi for RPG Development

RDi is the most versatile application development tools available today. It provides more and more functionality with each update, and the results are obvious. This session focuses on the particular

Speaker: Charles Guarino

What is a Modern RPG Application?

If you were to write a new application in RPG, what would it look like? Or, what, potentially, would a modernized RPG application look like?

In this session, Paul takes you through the design and implementation of a modern RPG application - with lots and lots of code examples. Topics covered include...

  • Overview
  • A Modern RPG Application
  • Messaging
  • A Sample Database
  • Database Layer
    • Tables, Key Constraints, Foreign Key Constraints, Check Constraints, Triggers, Indexes
  • Views (and Indexes) and External Views
    • Primary, Application and List Views
  • Development Environment
  • Data Access Layer
    • Lists, Get, Add, Update, Delete
    • Check Timestamp
    • Handling Constraint Errors
  • Service Layer
    • SL Templates
    • Get, Add, Update, Delete
    • SL Templates vs DAL Templates
  • Business Logic
  • Interface and Clients

Speaker: Paul Tuohy

21st Century RPG Data Structures

RPG's Data Structure capabilities have come a long way since the original introduction of RPG IV. But judging from Jon's mailbox, many programmers still struggle to exploit their full potential.

In this session Jon will discuss modern data structure coding techniques, including the 7.4 support for dynamic arrays. He will also address one of the most common questions that he receives ... "How do I code the data structures needed for XML-INTO/DATA-INTO to process this document."

Other topics to be covered include:

  • Nested Data Structures
  • Data Structure I/O
  • Data Structure arrays
  • Benefits of qualified data names

Speaker: Jon Paris

Intro to Git

This talk will cover the very basics of git, like terminology, commands for cloning, committing and much more.

This is aimed at someone who's heard of git before but not used it.

Speaker: Liam Allan

SQL Procedure Language for RPGers

The SQL Procedures Language is a database-oriented programming language that offers several benefits to IBM i professionals.

  • It provides an easy and powerful interface to the database.
  • SQL PL can be used to build functions, triggers, stored procedures, and dynamic compound statements.
  • It runs on all DB2 platforms, not just DB2 for i.
  • SQL PL implements SQL Persistent Stored Modules, an ISO standard, and is similar to scripting languages used on non-IBM platforms.
  • Programmers who know RPG, CL, or COBOL will find SQL PL easy to learn. In this session, Ted Holt presents an overview of the SQL Procedures Language. Topics covered include basic syntax, control structures, and condition handling.

    Speaker: Ted Holt

    Jon's Favorite RPG Tips

    Over the years Jon has gathered a number of "handy dandy" RPG tips and techniques. In this session he will share some of his favorites, old and new. Topics to be covered include:

    • Useful control (H Spec) options
    • Using compiler directives
    • Searching and Sorting Arrays
    • Using dynamic memory, including teraspace
    • Record Locking techniques
    • Using Data Structures on I/O operations
    • Improved alternatives to KLISTs
    • Using named indicators
    • FEOD without the performance impact
    • And as many more as w have time for!

    Speaker: Jon Paris

    Node.js & Db2 for i - Best friends

    Interested in how you can use Node.js to create a service layer? How about using Node.js to create a web application? How about both of those, using data from your Db2 for i database? This technical session will show you exactly how to achieve that.

    Speaker: Liam Allan

    Consuming Web Services from RPG with HTTPAPI

    Discusses what a Web Service is and how the free HTTPAPI tool can be used to consume them from your RPG programs. For example, you could use a Web Service to track shipments with UPS, check Zip Codes with the US Postal Service, validate credit cards with your bank, etc.

    Speaker: Scott Klement

    Providing RPG Web Services on IBM i

    In this session, you'll learn how to provide web services using the tools that are included with IBM i. Scott will show you how to configure the HTTP servers so that they will call RPG programs, and how to write RPG code that acts as a web service. Both SOAP and REST web services will be covered.

    Speaker: Scott Klement

    Programming RPG With Style

    In this session, Paul discusses the what and why of standards and guidelines for modern RPG development. Topics include:-

    • Make Use of the Tools
    • RPG is FREE
    • Modern RPG Programs and Subprocedures
    • What's in a Name?
    • Comments
    • Structuring Code
    • Use Templates and Qualified Data Structures
    • Qualify Wherever Possible
    • Strings
    • Subroutines
    • Out With The Old
    • Embedded SQL
    • Global Definitions
    • Parameters, Prototyping and Procedure Interfaces
    • The Integrated Language Environment
    • Roll Your Own

    Speaker: Paul Tuohy

    This session covers Barbara's take on:

    • The features of ILE RPG that allow you to write "modern" code
    • Which old features to avoid
    • How using service programs can modernize your development, both new function and maintenance
    • How to improve the performance of your call operations

    Speaker: Barbara Morris

    Debugging with RDi

    Into each programmer's life, a some bugs must fall. In this session, Susan will cover how to use the debugger that's built into RDi - Rational Developer for i.

    If you've tried using the debugger that's integrated with the RSE tool for editing code and struggled with making it work, you may find that 3 little words can make all the difference: Service Entry Points. Come here to see how to use SEPs when debugging your programs. We'll also cover how (and why) to create and use debug configurations for those occasions when SEPs may not be the best choice.

    Speaker: Susan Gantner

    Embedded SQL in RPG - Beyond the Basics

    You have been using embedded SQL in RPG. You have mastered the syntax, tried a few selects, declared a cursor, performed an update - you may even have tried some dynamic SQL!

    Time to take it to the next stage and see what you can do with embedded SQL - beyond the basics

    Topics covered in this session include:-

    • Discussion of the key points in writing powerful embedded SQL
    • What tools should you use to write and test SQL prior to embedding it?
    • Controlling CRTSQLRPGI
    • SQLCA and SQLCODE considerations
    • Getting data without SELECT - GET DIAGNOSTICS and VALUES INTO
    • Talking to Watson with Embedded SQL
    • Accessing SQL Functions
    • Identity Columns
    • Mastering Multi Row Fetch
    • SQL Exception Handler
    • Dynamic SQL with SQL Descriptors
    • Handling NULL

    Prerequisite: This session assumes you are familiar with the topics covered in Embedded SQL - the Basics

    Speaker: Paul Tuohy

    Extending RPG with Db2 for i Functions

    This session explores the wealth of non-database capabilities that SQL can do for you within your RPG programs. These range from the use of simple SQL scalar functions within your RPG (e.g., for upper/lower translations or math functions) to grabbing IFS text to executing web services - and making sense of the XML or JSON data that often comes back from them.

    Learn to exploit the power of basic SQL functions, user-defined functions (UDFs) and some of the Db2 for i Services from your RPG code. It's easier than you think!

    Speaker: Liam Allan

    ILE: Procedures, Modules & SRVPGMs by Example

    ILE brought with it the topics of procedures, modules, service programs, binding directories and binder language - not to mention activation groups. It can get confusing!

    In this interactive session, Susan will walk through a step by step demonstration of the following topics. In the process, we'll discover some of the problems that can occur - what they look like and how to fix or avoid them.

    • Creating a (very) simple RPG procedure in a module
    • How (and why) to put that module into a service program
    • How (and why) to create a binding directory and
    • How to use the binding directory to create programs to use our procedure
    • Add a new procedure to the same module and service program
    • Pointers for testing procedures in service programs
    • How to maintain the service program over time - including how to use binder language to avoid signature violations!

    Speaker: Susan Gantner

    Business Uses of Python

    Does Python on IBM i have a practical use or is this just a solution looking for a problem? In this session we will explore the typical use cases for Python in the open source community and apply some to IBM i. In addition, specific IBM i centric use cases will be explored to give the attendee the opportunity to judge for themselves how to best leverage Python in the combined open source and IBM i space.

    Learning Objectives:

    1. Learn how Python is used in Open Source environments.
    2. Explore how Python can be exploited in IBM i centric environments
    3. See several examples of open source Python applications in action on I

    Speaker: Mike Pavlak

    Take Advantage of RPG's DATA-GEN

    DATA-GEN is an RPG feature that lets you build structured documents. These documents (such as XML and JSON) have become crucial to business applications. They are used with web services, APIs, microservices, and cloud computing among other things.

    In this session you'll learn how the DATA-GEN feature makes it easier than ever to generate structured documents.


    • Provide a quick review of XML and JSON formats
    • Introduce the DATA-GEN concept and philosophy
    • Provide technical details of using DATA-GEN in an RPG program
    • Examples that you can download and try for yourself
    • .

      Speaker: Scott Klement

      Introduction to RPG's "INTO" FAMILY (XML-INTO and DATA-INTO)

      In this session Jon provides an introduction to the xxx-INTO "family" of opcodes. The family consists of XML-INTO (for XML) and DATA-INTO (for JSON and other formatted data such as CSVs). These powerful operations make it easy to handle data in a multitude of formats and to make it available for processing by your RPG programs.

      For many people, the most difficult aspect of these operations is understanding how to design the RPG Data Structures needed to hold the results. We will show you how to design these structures and how various processing options can be used to handle specific situations.

      Whether you need to process XML, JSON, CSVs, or just about any other kind of formatted data that you can think of, this session will show you how RPG can help.

      Speaker: Jon Paris

      Handling the Weird Stuff in RPG Programs

      In this session, Paul offers a practical guide to handling some of the more esoteric problems in RPG programs (whether using native I/O and Embedded SQL) such as

      • Messaging in a multi client environment
      • Trigger Failures
      • Nulls
      • Constraint Violations
      • Commitment Control
      • And other bits and pieces...

      Speaker: Paul Tuohy

      ILE Activation Groups

      In this session, Susan tackles the tough topic of Activation Groups - what they are, what they can do for you and what they can sometimes do to you! She'll provide some tips to help make their impact on your applications a positive one - including the concept of scoping and some default parameter values you should probably avoid.

      At the end, there's a simplified "cookbook" of what parameters you should use if your goal is to have your ILE applications function as closely as possible to what your non-ILE versions of those applications did. But hopefully by then you will also understand some of the reasons for the suggestions in the cookbook.

      Speaker: Susan Gantner

      Creating Web Services With IBM's IWS

      "We need to supply a web service! Can you build one?"

      If you face this question there's no need to panic. Every IBM i comes with tooling that can make it easy for you to get started in building web services with nothing more than your knowledge of RPG and the help of the wizards in IBM's Integrated Web Services Server (IWS).

      In this session, Jon will introduce you to the basics of constructing and deploying REST web services with IWS. He will also introduce you to the latest support that allows you to simply deploy an SQL statement as a web service.

      In addition to creating web services Jon will also discuss how to test your new creations,

      Speaker: Jon Paris

      RPG & Unicode: Enable RPG programs to Handle International Data

      What are character sets? Why do they matter?

      What's special about Unicode? Can I use it in RPG?

      If you have ever wondered about any of these questions, this session is for you. In this session, you will learn how to use Unicode data in your RPG programs

      Topics include:

      • An introduction to "Character set" and "Coded Character Set ID" (aka CCSID)
      • An introduction to the Unicode character set, and why you need it
      • A discussion of the problems you might encounter when you start using Unicode, and tips to detect and avoid them
      • Some RPG-specific aspects of working with Unicode

      Speaker: Barbara Morris

      The Current State of Open Source on IBM i

      Whether you've been on the open source bandwagon for years or are still wondering whether it's right for your shop, this session will be of interest to you.

      Led by Rochester's business architect for Open Source on IBM i, you'll get answers to questions such as:

      • Why is open source important?
      • What tech is available?
      • What's the latest news?
      • What's going on with PHP?

      Speaker: Jesse Gorzinski

    Home | RPG & DB2 SUMMIT | About Us | System i Community | Privacy Policy | Legal Notices | Email Webmaster | Contact
    System i Developer,LLC © 2019