Contact | Privacy Policy
YOU CAN! Learn how at the next Summit
March 20-22, 2018 in Dallas
Sponsors & Special Offers
News Headlines
December 12, 2017
RPG & DB2 Summit Opens Up Schedule for Several New Sessions in March
October 20, 2017
Fun photos from the October 2017 RPG & DB2 Summit
August 30, 2017
CIO Summit Planned For IBM i Executives
June 12, 2017
Next RPG & DB2 Summit highlights DB2 for i, Watson's Web Services & Open Source
February 6, 2017
IBM honors Gantner, Paris & Tuohy as 2017 IBM Champions.
December 5, 2016
Summit attendees see tangible results of their education

RPG-Oriented Sessions

My Favorite Things about RSE/RDi

In this session, Susan will cover her very favorite things about using RSE to develop RPG code. RSE (Remote Systems Explorer as packaged in Rational Developer for i) is now the only editor that fully supports today's IBM i languages, since IBM has stopped updating SEU for new language features. But that's not the best reason to move from SEU to RSE.

Come to this session to see her demonstrate her favorite productivity features in RSE that will make you wonder why you spent so many years using SEU! What will be your favorite? Perhaps the program outline, the verifier, content assist, filtering or simply the fact that the tab key works!

Speaker: Susan Gantner

Advanced Data Structures ( *Now with Free-Form! )

Have you ever used two dimensional arrays in your RPG programs? Or used the new template support to create your own data types? Do you know how to use group fields? How to map the *IN indicators so that you can give them names? Do you know how to code these in the new free-form style?

If you answered "No" to any or all of these questions then this is the session for you

We'll give you a basic introduction to all of these topics and show you practical examples of their usage. We'll also include examples of the latest enhancement for coding nested Data Structures that makes their structure much more obvious.

P.S. We should also mention that some of the basic techniques discussed here are the technical underpinnings needed to fully utilize RPG's support for processing XML and for Open Access. So if you see XML or Open Access in your future you might want to check this session out.

Speaker: Jon Paris

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

Development Strategies on Power

In this session, Paul Tuohy discusses the key factors in determining development strategies on Power systems.

The challenges facing companies, as they progress through different levels of modernisation, are many. How does a company change from a traditional development and maintenance environment to a more robust, modern development environment? What is new, what is different, what are the major and minor obstacles.

Paul also discusses the challenges faced by developer and what makes a modern developer on Power systems.

Speaker: Paul Tuohy

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

Look what you can do with RDi

There is so much functionality packed into RDi (aka, Rational Developer for i), it's hard to keep track. In this session Susan will focus on a few of the lesser-known features that keep her addicted to RDi for development work.

We'll look at features such as the ability to create and use your own snippets and templates and spotlight a few favorite keyboard shortcuts that are often overlooked. We'll also introduce you to a new and extremely useful (and free!) plug-in toolset called iSphere.

If you're an RDi user, perhaps you'll share some of your own favorites. And if you're not already an RDi user, come find out some of what you're missing.

Speaker: Susan Gantner

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 thru 7.2) 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

Fun with CCSIDs: Working with Unicode & Other Types of Data in RPG

Learn all about working with different types of character data in RPG and get answers to questions such as:

  • What is a "CCSID"?
  • How to define data in RPG with different CCSIDs
  • How to choose what CCSID to use
  • How to avoid unnecessary CCSID conversions

Speaker: Barbara Morris

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 sued 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

    Overview of HTML, CSS and Javascript

    The web can be a daunting place for the traditional RPG programmer. The layout of a web page is usually more decorative (and challenging to design) then the traditional 5250 screen. But you don't need to be a graphic designer in order to code and develop web page you just need to know what the right tools are and how to use them. This session shows the traditional RPG programmer how to use some of these basic tools to develop and maintain web pages.

    Speaker: Liam Allan

    Strategic Modernization with PHP on IBM i

    You know you need to modernize your IBM i applications, but where to start? In this talk, Alan will inspire you with creative examples of modernization on IBM i that provided a strong return on investment while controlling risk. Learn how to choose projects with the best return on investment, and then complete them with confidence.

    We will lead an honest discussion of the most effective strategies.

    • Can RPG programmers learn PHP? Yes.
    • Can new PHP developers be integrated into an existing IT department? Yes.

    Both approaches have merit. See creative ways to use PHP, not only to create new GUI front-ends, but to add jazzy features to existing interactive RPG programs. Please your users and business people by incorporating PHP into your shop.

    Learning objectives:

    • See how PHP and other open-source languages can satisfy business needs and today's users.
    • How to get started with PHP
    • dHow PHP integrates with RPG and traditional resources


    People considering PHP or other modernization approaches who could benefit from a high-level view of where it fits.

    Speaker: Alan Seiden

    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

    A Pattern for Reusable RPG Code

    You've learned all of the concepts of ILE, and this has given you a lot of new options. When you go back to the office, you find it's hard to use them! They just don't fit into the way you're accustomed to writing software. In your mind, you have a pattern for how programs should be written, and to use ILE effectively, you really need to learn a new pattern. This session discusses the new pattern of writing good, reusable ILE code.

    Speaker: Scott Klement

    What's new in RPG: V7.3 + PTFs for 7.2 & 7.3

    Come to this session to hear what RPGers everywhere are talking about. Barbara will reveal details about the new (almost) completely free RPG language.

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

    • Fully free-form RPG - no column limitations
    • New ON-EXIT support for clean-up
    • New %SCANR built-in function
    • Some enhancements for null-indicator support
    • Full ALIAS support
    • Easier to use data structures for I/O
    • And more

    Speaker: Barbara Morris

    What ILE can do for you

    Some areas where ILE differs from OPM are:

    • ILE allows you to write very modular code with many many tiny procedures
    • ILE procedures are organized into has modules, programs and service programs
    • ILE applications run in activation groups (possibly the most challenging aspect of ILE)
    • ILE has more ways to handle exceptions

    Some questions that we will address in this session:

    • Why are smaller procedures better?
    • Won't all those calls to procedures slow down my application?
    • What's the optimum size of a Service Program?
    • What is an "Activation Group"?
    • Should my CL and my RPG run in the same Activation Group?
    • How can I deal with errors that occur in procedures?

    Speaker: Barbara Morris

    Using Free Tools - By Example

    Over the years, Jon has introduced many RPGers to some great free (and almost free) tools that help to make make their IBM i programming lives easier.

    In this session he will focus on tools in the categories that people have found to be the most useful. Namely:

    • Help Desk Software
    • Generating Test Data
    • Building Web sites and wikis - and last but not least ...
    • Tools for building fast modern applications quickly

    Jon will include details of how these tools are installed and provide hands on demonstrations of how they can be used. The level of audience interest in the tools will help to determine the amount of time to be spent in each category.

    Speaker: Jon Paris

    The World of Node.js on IBM i

    Node.js is just getting started, but it is very hot! Everyone seems interested in getting started with this language today, and it may very well represent the future of Application Development on IBM i. In this session, we'll look at Node.js, discuss how it works and how to write simple applications. Then, we'll take a look at the Node Package Manager (npm) and the power it brings to the Node.js environment.

    The session will cover:

    • A high level introduction to the concept of Node.js on IBM i
    • The basics of a Node.js application, with links to where you can learn more
    • How to get started with the Node Package Manager (npm) and why it's exciting to have on IBM i
    • How to use NPM in your own applications.

    Speaker: Scott Klement

    Calling Watson 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

    SQL Aggregation without Aggravation

    SQL provides powerful ways to retrieve detailed data and format it the way users need to see it. SQL can summarize data, giving users the information they need to make informed decisions. But what do you do if the user asks for both detailed and summary information in the same query?

    You attend this session.

    Ted Holt has successfully dealt with this struggle. In this presentation, he shares techniques you can use to combine details and summaries to satisfy the needs of those whose jobs depend on your system.

    Topics include:

    1. The necessity of UNION ALL
    2. Extensions to GROUP BY
    3. How to "roll" totals by hand and when you should do so
    4. How to count. (Yes, you read that correctly.)

    Speaker: Ted Holt

    DB2 and SQL with Open Source Languages on IBM i

    DB2's ever-expanding capabilities can simplify development in open source languages such as PHP, Ruby, Node.js, and Python. These languages, known for their ease in building web and mobile applications, can run most types of SQL, but why complicate them with repetitive database code that distracts from their power and simplicity?

    This talk shows examples of how to reduce tedious coding by using such DB2 structures as Views, User Defined Functions, stored procedures, Row and Column Access Control (RCAC), LIMIT/OFFSET, exciting new DB2 Services, and more. Security, performance, and ease of maintenance in the open source scripting languages will be the result of the recommendations and techniques given in this talk.

    Learning Objectives:

    • Learn DB2 techniques that improve security, performance, simplicity
    • Understand how coding in open source scripting languages can be made simpler and more powerful by use of DB2's modern capabilities.

    Speaker: Alan Seiden

    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

    Embedded SQL in RPG Programs

    Many RPG programmers have used interactive SQL as a tool to quickly browse data or to create test data scenarios, but have stopped short of embedding it into their RPG programs. Come to this session to learn why, when and how you may want to use SQL in conjunction with RPG. We will cover the basics of embedding SQL into RPG, including using SQL cursors and a few tips on getting good performance from your SQL applications.

    This session looks at:-

    • Why use embedded SQL?
    • Basic Syntax
    • Using host variables
    • Using a SELECT statement
    • Using a Cursor
    • Identifying and handling errors
    • The power of INSERT, UPDATE and DELETE
    • Compile options
    • When and how to use dynamic SQL
    • Using PREPARE and EXECUTE
    • Performance tips

    Prerequisite: This session assumes you are familiar with the basics of the SQL language, such as the SQL SELECT and UPDATE statements

    Speaker: Paul Tuohy

    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

    ILE Essentials: ILE Essentials: Modules, Programs & Service Programs

    This session looks at the essential information you need to know about using ILE's ability to bind modular code together to create modern efficient applications. Using a simple application example, we will illustrate why and how to create modules, bound ILE programs, Service Programs and how to use them effectively.

    We will discuss creating modules, bound programs and Service Programs as well as creating and using Binding Directories.

    Speaker: Susan Gantner

    ILE Essentials: Activation Groups & Binder Language

    In this second session in the ILE Essentials series, we will take a look at the essential information you need to know about using ILE's mysterious Activation Groups and Binder Language.

    First, Susan will talk about 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.

    After tackling the tough subject of Activation Groups, the second part of the session will be a piece of cake! Binder Language is one of the world's simplest languages. Just follow a few simple rules and you'll be avoiding the dreaded "Signature Violation" messages in no time.

    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
    • Mastering Multi Row Fetch
    • Handling NULL
    • Dates, Times and Timestamps

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

    Speaker: Paul Tuohy

    RPG Subprocedures - Beyond the Basics

    You know the basics of coding and using subprocedures. Now it is time to take the next step. In this session we will discuss a number of topics such as:

    • Making your subprocedures more useful through the use of parameter options such as VALUE and CONST
    • Defining and using optional (*NOPASS) parameters - and doing it safely!
    • Leveraging subprocedures to mask complexity and simplify API usage
    • Using new 6.1 features for local files and passing files as parameters
    • Effective Return Values, including using 7.1 feature that may improve performance
    • New, more relaxed prototyping rules implemented in 7.1

    We'll not only cover how to use these functions, but offer advice on when to use them most effectively.

    Note: This session assumes you already have a basic understanding of RPG subprocedures.

    Speaker: Susan Gantner

    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

    Introduction to XML Basics and Generating XML with RPG

    Every day more and more RPG shops are finding that XML is playing an increasing role in their data interchange operations. In this session we will introduce you to the basics of XML syntax and show how it compares with HTML and DDS.

    Having dealt with the basics we then move on to discuss several ways in which XML can be generated from RPG programs. While there is no direct support for XML generation in RPG, the good news is that there are a number of tools available that can be used to help you. The even better news is that all of the tools we will introduce you to are available free of charge.

    Speaker: Jon Paris

    Fun!(damental) and Fun!(ctional) Table-driven Programming

    In table-driven programming, a programmer specifies program logic in an array (also known as a table) instead of coding procedural control statements. In this presentation, Ted Holt begins by contrasting procedural and table-driven programming. Next he walks through an example that demonstrates that table-driven programming can solve problems that procedural programming canít. Finally Ted illustrates the power of table-driven programming by sharing a utility he developed using table-driven techniques.

    Programmers who attend this session will be exposed to new ideas and techniques that will augment their tool chests. Managers will be challenged to think of new ways to develop applications that support end users.

    Speaker: Ted Holt

    SQL in CL? Why Not?!

    One of the most recent ways that IBM enhanced CL was to add direct support for the execution of SQL statements. Is this necessary, or even desirable, in a job control language? In this session, Ted Holt talks about the ways that CL supports SQL and discusses how you might use that support in your shop. Among the topics presented are the RUNSQLSTM and RUNSQL commands, commitment control, dynamic compound statements and DB2 for i Services.

    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

    Expressions and limited free-form calculations have been part of our RPG IV coding lives since the inception of the language. Most of us wholeheartedly took the next step when V5.1 introduced completely free-form logic. Then came V7.1 and with it RPG IV gained the ability for programs to be coded completely in free-format.

    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 you're in that group then come to this session and in a mere 45 minutes 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 explain:

    • Why free format RPG is 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: Jon Paris

    RPG & Git: Open-Source ILE Concepts

    This session will cover the basics of what open-source is, how it's being used currently and what we can do to make ILE languages more open-source. It will go from moving RPG source to the IFS, integrating Git and how source change management can benefit your business.

    Speaker: Liam Allan

    PHP Tricks for the RPG Programmer: Graphics, Excel, PDFs, E-Mail and More

    Ever want to enhance RPG programs with PDFs, spreadsheets, charts and graphics, or connect to web services, without complicating your RPG program? Help is here from PHP and DB2. PHP not only builds web sites, but it can be called by RPG programs. Alan will show how to accomplish marvellous tasks by calling PHP from ordinary RPG programs via DB2's web service support, a fast, flexible technique that's a handy trick in itself.

    Examples will include:

    • Creating graphs and charts based on DB2 data
    • Excel spreadsheets from your data
    • PDF files from your data
    • Connecting to external JSON-based web services while keeping the RPG simple
    • Send flexible email messages, including HTML format and attachments, and using any SMTP server, including an Exchange server

    You will come away brimming with ideas to add pizzazz to your applications.

    Learning objectives:

    • How to use SQL to call a web service, including a simple PHP-based web service
    • How RPG can use SQL to call the web service.
    • Put it together: RPG calls PHP via a web service, creating graphical output from RPG in a simple manner


    1. Those wishing to add non-traditional functionality to RPG programs without adding proprietary or complicated tools
    2. Web developers (PHP, Ruby, etc.) who want their scripts to be accessible from RPG.
    3. Fans of DB2 who wish to see a practical use of the new web service consumption capabilities of DB2.

    Speaker: Alan Seiden

    RPG Tricks and Techniques

    This session covers tricks and techniques for the RPG IV programmer.

    Come to this session and learn some of the things that you may not have known about

    • The H Spec
    • Compiler Directives
    • The D Spec
    • Sorting Arrays
    • Using dynamic memory allocation
    • Using integers
    • Using indicators
    • Triggers
    • Constraints
    • Record Locking techniques
    • Other bits and pieces

    Speaker: Paul Tuohy

    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

    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

    RPG User-defined Functions (UDFs) & Table Functions (UDTFs)

    RPG is the best language in the world for writing business rules. But what happens when you want to use those business rules from SQL? Or from a web application that accesses your business logic through SQL? DB2 for i lets you write User Defined Functions (UDFs) in high level languages like RPG. UDFs can be called from SQL statements run from anywhere, including ad-hoc queries, SQL run from web applications, and SQL run from the embedded SQL precompilers used by RPG and other languages.

    UDFs can even return a table (often called a UDTF, User Defined Table Function) which lets them do the same sort of work that a stored procedure would do -- but unlike stored procedures, they can return result sets to any language, including PHP, Java, .NET and embedded SQL written in ILE RPG.

    UDFs are a powerful tool for any programmer's toolbox.

    Speaker: Scott Klement

    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.

    Speaker: ----

    Home | Conferences | About Us | System i Community | Privacy Policy | Legal Notices | Email Webmaster | Contact
    System i Developer,LLC © 2014