Contact | Privacy Policy
Learn how at the next Summit
March 26-28, 2019 in Charlotte
Sponsors & Special Offers
News Headlines
November 28, 2018
RPG & DB2 Summit heads to Charlotte, NC, with new sessions on SQL, analytics, data integration
November 9, 2018
Take a photo tour of the October 2018 Summit in Chicago
June 5, 2018
Next Summit highlights SQL, Db2 for i, Open Source
February 6, 2018
New RPG & DB2 Summit Sessions Help IBM i Developers Achieve Big Goals
January 31, 2018
2018 IBM Champions Named! Congrats to Scott Klement, Alan Seiden, Mike Pavlak, Liam Allan, Susan Gantner, Jon Paris, Paul Tuohy!

RPG-Oriented Sessions

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

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:

  • New DATA-INTO opcode - similar to XML-INTO, except that it works with any type of structured data, including JSON
  • 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

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

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

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 look at recent enhancements made to RDi that you may have missed when they came out.

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

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

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

    Mobile RPG with PhoneGap

    The no charge, open source, PhoneGap environment makes it possible to create a mobile app using standard web technologies. More than just a web page, PhoneGap lets you access device features, write code that runs when the app is not connected to a network, and even distribute your app in the popular mobile stores such as Google Play and Apple's App Store. Did you know that PhoneGap can easily be integrated with RPG and IBM i? This is a powerful way to make apps from your IBM i data that take advantage of your RPG skills.

    Learning Objectives:

    • How PhoneGap Works
    • How PhoneGap Provides Access to Device Features
    • Integrating PhoneGap with RPG on IBM i

    Speaker: Scott Klement

    RPG Talks To Watson

    One of the key questions is - how easy is it to integrate Watson into my existing RPG applications?

    In this session we look at some of the way that RPG can connect with Watson (using the translation API) - and just how simple it is.

    As well as looking at different methodologies, we will also discuss the advantages, and disadvantages, of the different approaches.

    Speaker: Paul Tuohy

    RDi: Even Better with iSphere

    It's no secret that Susan is a big RDi fan. But even a great tool can be made even better with the help of plug-ins. If you're an RDi user and you don't have the iSphere plug-in installed into your RDi, you're missing out on a wealth of new/enhanced functionality.

    Susan will demonstrate a few of her favorite features from iSphere - things such as a better "Find String" capability, tools to make working with message files a breeze and the ability to see text for objects and members in your Remote Systems lists. She will also outline the simple installation process along with some suggestions for how to manage updating iSphere when new releases become available.

    Speaker: Susan Gantner

    Test Driven Development - Best Practices using Automated Tools

    Current best practice for producing high quality software is Test-Driven Development. These practices can be applied to RPG development on IBM i.

    The end result is software where every single line is covered by an automated test and can easily be regression tested on every build of your deliverable.

    Tools such as RPGUnit and RDi can be used to support this process and make it easier and more enjoyable.

    Learning Objectives:

    1. Learn the best practice of Test Driven Development
    2. Be able to articulate the benefits of this approach
    3. See a practical example in the context of ILE RPG and the IBM i
    4. See how the open source packages like RPG Unit can help
    5. Learn how Rational Developer for i can be used to support this process

    Speaker: Barbara Morris

    Open Source on IBM i

    Are you interested in running Open Source on IBM i? Try a new open-source language, use some of the many open source tools that IBM has delivered, and attract new talent to your shop. Alan has joined forces with Jesse Gorzinski, IBM's Business Architect of Open Source Technologies, to bring you the latest updates on tools delivered by IBM, as well as to share why IBM sees open source as strategic to the platform. Why has it been such a strong force in the IBM roadmap? How can open source address some of the primary concerns in the marketplace?

    Speaker: Alan Seiden

    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

    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

    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

    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

    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

    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

    DATA-INTO: Like XML-INTO but for JSON, CSV... you name it!

    Come to this session to learn about the new DATA-INTO opcode.

    • Find out how it's similar to XML-INTO.
    • Find out that the main difference from XML-INTO is that you need to supply a parser.
    • Find out what parsers are already available, in the QOAR library, for you to compile and use or study.
    • We'll also look at the code for a very simple parser, just so you can get an idea of how you might write your own parser.
    • Speaker: Barbara Morris

      Understanding & Using Delicious Yum for Open Source

      Sorry! The full session description for this session is still being developed.

      This session will be about understanding, installing and using Yum - the latest way to install open source software on IBM i. This will describe the version of Yum that is unique to IBM i.

      Check back later for a more complete description.

      Speaker: Liam Allan

      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.

      A more complete session description and a speaker name will be available soon. Please check back later.

      Speaker: Stephanie Rabbani

      ILE: Procedures, Modules & SRVPGMs by Example

      ILE brought with it the topics of procedures, modules, service programs, binding directories and binder language. It can get confusing!

      In this interactive session, Susan will walk through the steps to cover:

      • Creating an 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 it to create programs to use the procedure
      • How to maintain the service program over time - including how to use binder language to avoid signature violations!

      Speaker: Susan Gantner

      Web Language Shootout

      In this session, we'll compare and contrast some of the open source languages commonly used for web-related development and the role of RPG alongside them.

      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

      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

      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

      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

      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

      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

      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

      Modern ILE DevOps

      What are DevOps? Can we bring modern development environments to our normal IBM i space? What about our existing change management tools - do they fit in? Come to this session to find answers to these and other questions.

      Topics include:

      • Existing DevOps / change management on IBM i
      • Modern DevOps in other environments (unix, Windows)
      • Tools that are used to 'define' DevOps
      • Starting DevOps for ILE applications
      • Deployment strategies for ILE applications (git pull + build, Continuous Integration)
      • Migrating from existing change management to a modern DevOps environment

      Speaker: Liam Allan

      MVC Application Architecture

      Explore a fundamental design architecture known as Model View Controller (MVC). Some PHP code examples will be used in the session. However it is not necessary to be fluent in PHP to grasp the concepts and comparisons to RPG constructs are included.

      Many PHP frameworks are built using design patterns that are drawn on an MVC architecture and this session seeks to introduce the structure whereby the architectures coexist. A simple PHP Db2 data access application will be explored and can be taken back and implemented in most IBM i shops. Also, an open source example will be reviewed to see how other people's code (OPC) can be leveraged in PHP.

      Learning Objectives:

      1. What is the difference between design architecture and design patterns.
      2. Understand how MVC improves and speeds code maintenance
      3. Learn how a real PHP application can work in an IBM i environment.

      Speaker: Mike Pavlak

      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

        ILEditor - Open Source IDE for RPG and More

        Liam will describe and demonstrate his open source project for an RPG editor.

        The full description for this session is still in the works. Please check back a little later for more details. Speaker: Liam Allan

        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

        Generating XML from RPG

        At some time or another, just about all modern RPG shops will encounter the need to process XML. XML-INTO provides an easy way for RPGers to consume XML, but what about generating it? 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 many of these tools are available free of charge.

        In this session Jon will introduce you to worked examples of using some of these tools. Options to be covered include template based approaches, as well as API and SQL driven options. We will also touch briefly on the options available through Open Source languages such as PHP and Python.

        Speaker: Jon Paris

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

        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.

        Speaker: Speaker TBD

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