Contact | Privacy Policy
Learn how at the next Summit
March 24-26, 2020 in Dallas
Sponsors & Special Offers
News Headlines
February 10, 2020
Session Grid for March 2020 RPG & DB2 Summit features new workshop, new sessions.
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!
December 2, 2019
Super-Saver registration open for March 2020 RPG & DB2 Summit in Dallas!
November 2, 2019
Take a photo tour of the October 2019 Summit in Minneapolis
November 28, 2018
RPG & DB2 Summit heads to Charlotte, NC, with new sessions on SQL, analytics, data integration

RPG-Oriented Sessions

What's new in RPG for 7.4

Find out about what's new in 7.4 for RPG including several items that were already available through PTFs for earlier releases:

  • The most exciting enhancement is variable-dimension arrays, including a type of array that automatically grows as you assign new element
Other enhancements:
  • DIM(*CTDATA) let's 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

21st-Century CL

IBM i Control Language (CL) has long been used as a language for both operations and job control. In the most recent releases of IBM i (V5R3 and later) IBM has delivered many long hoped for and long requested enhancements to CL for both environments.

Enhancements include new commands as well as new extensions to existing commands. What are these new features and functions? How can they be used? What's the very latest that CL has to offer? This session will answer those questions and more

Speaker: Ted Holt

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

RPG Free Form in a Nutshell

Perhaps you've heard about this feature, you may even have read an article or two, or even 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 Jon will do his best to clear up any misconceptions you may have and show you why and how to take this next step.

In this session, Jon 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

Understanding Git

Git - a version control system popular for Open Source languages - is getting a lot of attention and gaining favor with many RPGers as well. Come to this session to see what all the buzz is about.

The companion session: "Migrating to git for RPG Apps" will describe how you can use git for your RPG application development.

Speaker: Stephanie Rabbani

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

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

A Nerd's Guide to DATA-INTO in RPG

DATA-INTO has the same power and ease of use that RPGers have enjoyed with XML-INTO for years. Unlike XML-INTO, however, DATA-INTO is not limited to XML documents! With DATA-INTO, RPGers can read JSON documents, as well as other structured documents like CSV, or just about any format you can imagine.

This session discusses the basics of DATA-INTO, and how it makes it easy to process structured documents in RPG. Then, it explains the basics of adding support for your own structured documents by writing your own parser.

Speaker: Scott Klement

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

RPG's XML-INTO, DATA-INTO & DATA-GEN Family of Operations

Today's RPG can greatly simplify dealing with non-traditional data - such as XML, JSON, CSV or any other format that may appear in the future. XML-INTO and DATA-INTO allow RPG programs to parse formatted data and populate RPG data structures with the contents. Need to generate formatted data from RPG data structures? DATA-GEN accomplishes that.

Come to this session to learn more about the data transformation potential of this family of operations to simplify data interchange.

Speaker: Barbara Morris

Show the i in your ROI

It's no secret that perceptions can shape reality. How do YOU perceive your applications and IBM i resources?

Applications hosted on IBM i systems have traditionally delivered a high Return on Investment (ROI), but do your business executives know it?

Learn the language of positive change to gain support for your systems, while adopting modern approaches, and leveraging your investment in IBM i technology.

Speaker: Alan Seiden

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

Intro to Python for RPGers

Come get your first look at Python from the perspective of an RPG developer. You'll learn some of the basics, including how to access your DB2 for i data. Also, learn about the product offerings that enable you to do software development with the language on the platform.

Upon completing this class, you will be able to acquire, install, and use Python on IBM i, as well as extend its power using contributions from the larger open source community.

Speaker: Mike Pavlak

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

Access Client Solutions (ACS) for Programmers

Access Client Solutions is a powerful tool for programmers. ACS replaces and enhances much of the functionality originally supplied by Navigatorfor i.

This session discusses how ACS can be used by programmers; including

  • System Configuration
  • 5250 Emulator
  • SSH Terminal
  • Integrated File System
  • Printer Output
  • Schemas
  • Run SQL Scripts
  • SQL Performance Center

Speaker: Paul Tuohy

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

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

What's New in RDi? Including 7.4 News

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. With the IBM i 7.4 announcement, some new features in RDi were also announced.

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 latest features in RDi. Susan will demonstrate some of great new enhancements in V9.6. She'll also highlight a few features that arrived in the various V9.5.x releases that you may have missed.

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

Speaker: Susan Gantner

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

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

Building a Web App in One Hour

Yes - really.

In this session Liam will be taking his life in his hands and building an application live in front of your very eyes using the power of Node.js. He'll start from a simple login page and work his way through to a CRUD application that allows for the display and editing of data from Db2.

There will be lots of questions and audience interaction along the way.

Speaker: Liam Allan

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

    Free PHP in 2020

    There's a new PHP on IBM i. It's quick to install, follows open source standards (Yum and RPM), has good performance, flexible installation for developers and administrators, and is free. Alan will share real-life examples of this technology for building web and mobile applications, as well as tips and tricks for migrating to free and open PHP, based on open RPM technology for the i.

    Learning objectives:

    • Learn the benefits of this new PHP for developers and administrators
    • Developers can learn how to code on their PCs and deploy to the IBM i, all from the same code base, using the new ODBC driver.
    • Real-world migration tips to make the process smooth.

    Speaker: Alan Seiden

    Processing XML with RPG

    In this session we'll look at RPG's native support for XML processing, including the latest enhancements. We'll also include a brief overview of the Data Structure features added in V5R2 that are critical to understanding how the XML support works.

    Whether you are using XML for web services or data interchange, dealing with XML in RPG can be challenging. V5R4 brought welcome relief in the form of new RPG language support that greatly simplified parsing XML within your programs. While useful, there were issues that IBM subsequently addressed in enhancements released in V6 and 7. The result is a powerful set of XML processing capabilities that are also easy to use once the basics are grasped.

    Speaker: Jon Paris

    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

    RPG Open Access - By Example

    This session introduces you to the fundamentals of RPG 's Open Access (OA) by taking you through the process of designing two simple Open Access handlers that present different challenges.

    OA provides a mechanism that allows you to simplify how an RPG program interacts with interfaces that the RPG language does not natively support. For example things such as web services, the IFS, data queues, spreadsheets, browsers and more. By using a suitably designed OA handler, your programmers can access such interfaces through native RPG I/O operations (such as READ, WRITE, CHAIN, UPDATE, etc.). They don't have to understand the underlying mechanics, they can simply use their existing RPG skills.

    In this session we will start by introducing you to a template that forms the foundation for all the OA handlers that we write. Next we will look at how choosing an appropriate architecture can simplify the design of the OA handler and ensure that using it "feels like RPG".

    Speaker: Jon Paris

    Working with JSON in RPG Using Open Source Tools

    JSON (JavaScript Object Notation) is quickly becoming an important document format for business data interchange, so what's the best way to process it from RPG? JSON provides the same benefits as XML, but is smaller (and so transmits over a network more quickly) and is much more efficient than XML to work with in web applications. Naturally, this means that your RPG business applications need to learn how to speak JSON in order to talk to many of the newer web services or exchange data with many tech-savvy business partners.

    In this session, Scott will explain how the open source YAJL tool can be used from an RPG program to process or generate JSON in an efficient manner.

    Speaker: Scott Klement

    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

    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

    Calling Watson's AI APIs from RPG

    We're always hearing about the amazing things that you can do with Watson, but did you know that it's available to anyone to use? In fact, you can incorporate Watson's technology directly into your RPG programs.

    This session takes a look at some of the various Watson APIs that are available as well as how to call those APIs, which are implemented as web services, from an RPG program.

    Note: To get the most out of this session, attendees should first attend the session "Consuming Web Services from RPG with HTTPAPI" unless they already have knowledge of the basics of consuming web services from RPG.

    Speaker: Scott Klement

    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

    Building Reusable APIs

    When should I use an API? What are the benefits of writing APIs? This talk will cover when to use Web APIs to access your data, as well as some tips on how to write a Web API that is flexible and designed to last.

    Using code examples in RPG, PHP, and Python, Steph will also share lessons recently learned from working on a large integration project with Salesforce.

    Speaker: Stephanie Rabbani

    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

    (C D I R)? Introduction to Error Trapping and Recovery

    How many times have you received a phone call AFTER a well-intentioned user responds to an error message? “Don’t worry, I pressed ENTER, a “C” appeared and the error went away.” NOOOO! Take charge and eliminate this frustration! It’s YOUR job to make sure your users learn that “C” is for Cookie, not Continue! From trapping runtime errors to controlling job logs, it is your responsibility as the developer to have an error trapping system in place.

    In this session we’ll cover several techniques to put error management back where it belongs - in the developer’s hands. Learn how to empower your programs to anticipate, positively react and respond to error messages. In addition, there is a lot of job information available about your running programs when an error occurs. Why risk not being about to retrieve and analyze it to eradicate these situations before they occur again in the future?

    Speaker: Charles Guarino

    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 Does Dropbox and Texting

    Did you know that RPG programs can interact with the Dropbox cloud document sharing site? Come to this session to hear how this marriage of RPG and Dropbox and a bit of text messaging solved a document sharing requirement better and easier than FTP.

    In this session, to see how to share files between IBM i and Dropbox. We'll explore both how to upload documents from IBM i to Dropbox and how to download documents from Dropbox to IBM i using RPG and SQL. You'll also see why this approach worked better for this application than traditional approach using FTP to the IFS.

    Finally, we'll see how to send text messages from IBM i using RPG and CL. You'll learn how to send a plain text message indicating that a file has been uploaded or downloaded from Dropbox and how we can even include the actual document in the text message.

    Speaker: Charles Guarino & Mike Larsen

    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

    This session intentionally left blank

    Due to travel schedules etc. attendance at the last session of the conference is always lower. So in order to help the final sessions gain the audience they deserve we've made the decision to only run three sessions in the final slot.


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