Paul Tuohy presented at NHMUG on Wednesday September 14th!

It is with great excitement that we were able to host Paul Tuohy at the NHMUG meeting on Wednesday September 14th, 2016.
Paul is a world renowned speaker and well known throughout the IBM i community.

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
  • Performance tips

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

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

An RPGer's Adventures in Webland

At System i Developer we like to practice what we preach. The company web site is designed for and is served from a System i. An application is used to manage conference information which, in turn, is used to generate web pages. There are also interactive web pages that communicate directly with RPG programs (e.g. selecting your session grid and repeat sessions).

This session shows you how the web site was built and how the following items played a key part in the development of the web site:

  • Design Decisions
  • Tools Used - WDSC, Navigator
  • Creating the Database using DDL (SQL)
  • Externalizing the Database
  • The public and the private web sites
  • Maintaining information (using CGIDEV2)
  • Making use of PHP
  • Generating Static Web Pages
  • Using and tuning embedded SQL
  • Using AJAX 

Introduction to AJAX for RPG Programmers

Although it has been around for a number of years Asynchronous JavaScript and XML (AJAX) has suddenly become a hot topic. What is all the fuss about? What relevance does AJAX have for the RPG programmer?

AJAX provides a means of having a web page communicate with a server, either synchronously or asynchronously. Combined with CGI programming techniques (CGIDEV2 is used in the presentation), you now have a means of dealing interactively with a web page i.e. changing the contents of a web page without having to re-write the whole page.

And best of all, it is already installed on every PC, all you have to do is use it!.

In this session you will learn:

  • The background to AJAX
  • How it works
  • Examples of how to use it


ComCon is a company owned and run by Paul Tuohy. It specializes in consultancy, software development and training for the IBM i (System i, i5, iSeries and AS/400).

Paul Tuohy has worked in the development of IBM Midrange applications since the '70s. He has been IT manager for Kodak Ireland Ltd. and Technical Director of Precision Software Ltd. As well as being CEO of ComCon he is also one of the co-founders of System iDeveloper, a consortium of top experts and educators on i technology. He has been teaching and lecturing since the mid-'80s.

Paul is the author of "Re-engineering RPG Legacy Applications", "The Programmers Guide to iSeries Navigator" and the self teach course "iSeries Navigator for Programmers".

He also writes regular articles for most of the industry publications and is one of the quoted industry experts in the IBM Redbook "Who knew you could do that with RPG IV?".

As well as speaking at renowned RPG & DB2 Summit conferences and other conferences around the world Paul is also an award winning speaker at numerous US Common conferences.

28th Annual New Hampshire / Vermont IBM i User Group Meeting

Wednesday, June 8, 2016 - Fireside Inn, West Lebanon NH

This event was free to IBM i professionals, and sponsored by NHMUG and VTMUG

IBM Announcements - Steve Fier, IBMSteve Fier

Steve will cover the latest IBM Announcements including:

  • IBM i 7.3 and 7.2 TR4
  • Significant DB2 enhancements, especially around analytics
  • Security updates
  • RPG and open-source tools
  • Hardware enhancements

About Steve

Steve Fier has been with IBM over 30 years, initially starting as a systems engineer, and then becoming a senior marketing specialist. His current role is POWER Platform Leader for the Northeast, responsible for former System i and System p products. Steve's areas of expertise include application development, DB2 for i, Windows Integration and Server Consolidation.

What you need to know to upgrade to IBM i 7.3 - Pete Massiello, iTech Solutions Pete Massiello

When doing an upgrade to IBM i, it's more work to plan the upgrade than to execute the upgrade itself. Once you have a plan, the actual upgrade is simple. Do you know what you need to upgrade to IBM i 7.3?

Pete Massiello, president of iTech Solutions, and past-president of COMMON, has helped many IBM i users make the move to upgrading their OS level. He will get you on the right path to an upgrade by helping you answer these key questions:

  • What is the right size for the load source?
  • How do i increase the licensed internal code?
  • Which version of Java is compatible with the new release?
  • Which console options are no longer available with 7.3?
  • Do I have the correct set of disks for the upgrade?
  • What do I need to do differently when upgrading from 5.4, 6.1, 7.1 or 7.2?

About Pete

Pete Massiello has been working with the AS/400, iSeries, IBM i since 1989, focusing on systems management and technical support. He has held numerous technical positions throughout his career and is currently the President of iTech Solutions Group, an IBM Premier Business Partner delivering solutions and services to IBM i shops throughout the United States. He is a member of IBM's certification test writing team and an IBM Certified Systems Expert with certifications in iSeries Design, Administration, Virtualization, Implementation, LPAR, and HMC Management.

Pete has a BS in Computer Science from Hofstra University and an MBA from the University of New Haven. He was President of COMMON from 2010 to 2012, and is now Immediate Past President, a COMMON Hall of Fame speaker, and a frequent speaker at user groups all over the world. In 2011, IBM established the Champions award for Power Systems; Pete was one of the first recipients.

Modernizing IBM i Applications - Dan Cruikshank, IBMDan Cruikshank

Session 1 - Data Modeling Overview

Building a solid database foundation requires the use of modern design tools. Using the tools provided with IBM Data Studio, Rational Business Developer, Infosphere Data Architect and other bundled products, a Database Architect/Engineer can develop graphical data models; conceptual, logical and physical.

Having a tool is one thing, being able to use it is another. This session will cover topics such as: What is Data Modeling?, How do I use these tools to create Conceptual, Logical, Dictionary and Physical Data Models and Using the tools to diagram entities, tables, views, relationships and other shapes

The following is the agenda for this session:

  • Data Modeling Concepts
  • Types of Graphical Data Models
  • Getting Started with IBM Graphical Tools
  • Diagramming Concepts

Session 2 - Embedding SQL in High Level Language Programs

In this session you will be introduced to SQL programming techniques that take advantage of advanced data centric development methods such as blocked FETCH and INSERT, extended indicators, ROW NUMBER, ROW CHANGE TIMESTAMP, ARRAY types, GLOBAL variables, , MERGE, result set consumption in host languages and dynamic SQL descriptors.

We will discuss how to exploit these new capabilities to build advanced data centric applications based on concepts such as optimistic locking and stateless pagination. In addition, techniques on how to populate and access arrays in SQL routines will be discussed.

The following is the agenda for this session:

  • Getting Started with Embedded SQL
  • Variables and Indicators
  • Cursors and Result Set Consumption
  • Dynamic SQL


Down load the handouts for Dan's sessions:

Overview of Data Modeling Using IBM Graphical Tools
Embedded SQL the IBM i Way

About Dan

Dan is an IBM Sr. Consultant and is a member of the IBM DB2 for i Center of Excellence team which is part IBM Rochester Lab Services. Dan has published several articles relating to IBM i performance analysis, database optimization and database reengineering. More recently he has done webinars and user group presentations on application development methodologies and database re‐engineering topics (e.g. DDS to DDL, RPG Open Access). Dan’s main role is to illuminate, educate and enable IBM i customers in how to take advantage of this remarkable system and it’s integrated, state of the art relational database. 

John Valance presents PHP and web topics to NHMUG

John Valance presented PHP and web topics at the NHMUG meeting on Thursday February 11th, 2016

Connecting the Dots: Building Web Applications with PHP, HTML, CSS, and Javascript

New to web development, or trying to get started? Have you taken a PHP course, but are having trouble understanding how to build complete applications for the web? Or maybe you're a manager trying to get an understanding of how web applications work at a high level. This presentation will provide an overview of how browser-based database applications work, with an IBM i / RPG audience in mind. It will demonstrate the client-side languages - HTML, CSS and JavaScript - and show how PHP scripts running on a server can dynamically build web pages including content from an IBM i DB2 database.

We will discuss the HTTP protocol and how web servers work with HTML and PHP, look at some common formatting techniques in HTML and CSS, demonstrate how HTML forms interact with PHP scripts, and show what JavaScript is and how it makes the browser more functional. With these basics concepts in mind, you should be able to make better decisions about how to sort through the many options available for web-enabling your legacy databases.

This presentation is for beginner to novice web programmers, or those who would like to understand the technologies and languages involved in a typical web application.

This session is a recommended (not mandatory) pre-requisite for John's labs on HTML, PHP, and JavaScript.

Learning Objectives

  • Provide an overview of how browser-based database applications work, with an IBM i / RPG audience in mind
  • Help RPG programmers and managers, with little or no web development experience, understand the major concepts and technologies involved in building web applications.
  • Provide demos and code examples of the major languages involved in typical web applications: HTML, CSS, JavaScript, PHP and SQL
  • Provide a conceptual introduction to my 3 web development labs: 1) HTML and CSS; 2) PHP and DB2 on i; and 3) JavaScript introduction.


  • This presentation is for beginner to novice web programmers, or those who would like to understand the technologies and languages involved in a typical web application.
  • RPG programmers interested in starting out with web development
  • Managers who would like to understand the major concepts and languages involved in developing web applications on IBM i.

PHP – Beyond the Basics

This presentation will cover some intermediate topics in PHP programming that you can use to go beyond the basics of PHP syntax and SQL selects, enabling you to create some useful business applications. Topics covered will include: logic for paging through large record sets, session management and cookies, easily creating CSV files from DB2 data and streaming them to the browser, and sending email with attachments and HTML formatting using Zend Framework. A basic familiarity with PHP syntax is assumed.

OO and Ahh! The Power of Object Oriented PHP

While PHP allows for both a procedural as well as an object-oriented coding style, today most professional PHP application packages are created using object-oriented techniques. Why? – because this results in code that is more organized, easier to maintain and extend, with fewer bugs. This session will start with a review of PHP functions and data scope – concepts that are fundamental to understanding objects. It will then cover the basics of creating classes and instantiating objects. The concepts will be presented in the context of a real-life example: creating an HTML form input class, which can be used to build an input form for displaying and updating database record contents. We will also extend this class to handle more specialized classes for select and textarea tags.This is an introductory session on OO – – no prior OO experience is required, but a familiarity with PHP syntax and web application development is helpful.

Easy Web Reports and Documents with JODReports

Would you like to be able to provide your users or customers with PDF reports and documents via a web interface? Looking for a low cost or no cost solution, involving minimal programming? JODReports is an open source solution that allows you to define report templates in a word processor supporting the Open Document Text (ODT) standard. You can easily design a document using Open Office Writer, and specify variable fields that can receive data from your IBM i applications. Single page documents such as invoices, order confirmations, statements, work orders, etc., as well as database reports are easily merged with data supplied as XML, and the resulting document can be retrieved as PDF, which can be delivered immediately to a web user to be viewed, printed, saved, or sent as an email attachment. You can also add simple scripting within your document to conditionally display parts of a document based on a test expression, repeat a document portion (e.g. a table row), and more. Setup is simple, and requires a windows server to run OpenOffice as a service, plus a Tomcat web server to run the JODReports jar file, both of which are free and easy to install.

Come to this presentation and learn how to generate PDF reports and documents dynamically, with no licensing costs! In this session we will use a PHP script to call JODReports, but any language that can generate XML and can process an HTTP request/response can make use of this free tool.


John Valance has worked on the IBM midrange platform since 1983 and on web development since 1998. As a consultant and developer, John specializes in database and web application development on the IBM i platform. He is also a trainer for Zend Technologies, teaching PHP Foundations for IBM i Programmers, and is a Zend Certified Engineer. He has extensive programming experience in RPG, Java, PHP, and JavaScript, and he enjoys explaining new programming concepts to RPG programmers. John is a frequent presenter at user groups, and has created presentations and labs on many web development topics. John is the president and founder of Division 1 Systems, a software and services firm based in Burlington, Vermont (

Growing up in New York City, John started his career in the NY area, but moved to Vermont in 1994 to raise a family and has been there ever since. John is also an accomplished musician, playing a variety of instruments and styles.

John can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it..

 Ted Holt Came to NH!

Ted Holt presented at the NHMUG meeting on Thursday December 3rd, 2015

Easily Modify Report Programs (Because You Have Better Things to Do)

Easily Modified Reports.ppt
Easily Modified Reports a.pdf
Easily Modified Reports b.pdf
Easily Modified Reports c.pdf
Easily Modified Reports d.pdf

No matter how much hardware and software technologies change, some things always stay the same. A prime example is the generation of columnar reports. Whereas columnar reports were once printed on green-bar paper, nowadays they show up in spreadsheets, PDF files, and web browsers.

You have challenging work that needs to be done, so why spend hours making simple modifications to report programs? Let Ted Holt show you how to write report programs that are quickly and easily modified as requirements change.

Programming with Assertions


An assertion is a routine that checks the validity of an assumption and stops execution if it finds the assumption to be false. When used during program development and maintenance, assertions save time and effort by pointing out errors. Each problem that an assertion brings to light is a problem you don't have to search for. Assertions also work well in production, where you can use them to cancel programs before errors can occur.

Assertions have long been used in the Unix world. Now they are available in the world of i for business, and Ted Holt shows you how to put them to work for you.. Attend this presentation and add a powerful tool to your programming toolbox.

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

Table-driven Programming.ppt
Table-driven programming a.pdf
Table-driven programming b example program.pdf
Table-driven programming c example output.pdf

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.

Thirty SQL Tips in Sixty Minutes

20 SQL Tips.ppt

SQL is THE data access language. It runs interactively from green screens and System i Navigator. It's in RPG and COBOL programs, in ODBC and JDBC. It's ubiquitous, and it's everywhere, too! You can't know too much about SQL. In this session, Ted Holt presents an assortment of powerful, effective, and easily implemented SQL tips and techniques.

These tips and techniques are based on DB2 for i, but many of them apply equally to other platforms. There's something for everyone, from the SQL novice to the advanced user. Come learn some new techniques and reacquaint yourself with some you may have forgotten.


Ted Holt is a Senior Software Developer with Profound Logic Software, a provider of modernization solutions for the IBM i world. He has worked within the information technology industry since 1981, primarily with IBM midrange computers. His industry experience includes the fields of manufacturing, healthcare, education, retail, and wholesale. He holds a master's degree in computer science from the University of Southern Mississippi and has taught in community colleges, universities, and vocational/technical schools.

Ted is the author of several books on programming topics, including OpenQuery File Magic!, Complete CL, Power CL, Qshell for iSeries and the MC Press Encyclopedia of Tips, Techniques, and Programming Practices for iSeries and AS/400. He is a regular speaker for the RPG and DB2 Summit and serves as technical editor and writer for Four Hundred Guru, a technical newsletter published by