What does an RPG programmer do?

  • Posted on: 27 September 2016
  • By: NickLitten
RPG is not role playing

First and foremost I'm just a programmer. This means I create and maintain computer software: programs.

Just like you may speak several languages, or perhaps just speak one (but understand many dialects of that language), programmers will typically speak several computer languages or specialize in one language but understand various versions (which are like dialects) of that one language. 

My professional career has been filled with jobs working with IBM Computer systems mainly written in the IBM R.P.G. Language.

RPG is a business language originally designed to generate paper reports for management back in the days before touch screens and smart devices. The Report Program Generator language has evolved so far beyond it's humble beginnings the acronym bears not relation to what modern RPG looks like. It is used to power internet webservers, shopping cart software, it drives major distribution systems, casinos and banks worldwide.

RPG is the language that powers businesses all across the world. Quietly. Humbly. Few people have heard of it.

I'm a Senior RPG Programmer and Technical Consultant on the IBM i platform. I know other languages but I specialize in this wonderfully quirky beast called RPG.

ORION the free RPG Editor from IBM - tell me its true!

  • Posted on: 13 September 2016
  • By: NickLitten

What is this Orion thing?

A browser based RPG editor which is Open Source, Powerful and $free?

In the details of the IBM i 7.3 announcement you will find that the Orion editor will be shipped for free as part of the OPS product on  IBM i.

It even supports free form RPG.  Orion works very well with Git which is an open source, fast and robust source control facility.

Both of these are just now available via PTF, the details can be see on the 5733=OPS developerworks page.



Free IBM AS400

  • Posted on: 13 September 2016
  • By: NickLitten
free AS400 iSeries

Do you want to play with an AS400?

Do you want to test and iSeries?

Do you want to fiddle with IBM i?

Try - the famous public IBM i server for $free!

PUB400 is the successor of PUB1 - the worlds famous public AS/400 system with more than 40.000 users. Now you will have access to the most recent operating system IBM i 7.3 with all new features you need to learn about the fantastic operating system IBM i and its open source capabilities.

The use of this server is free for everyone's learning purposes including 250MB of storage. Please take note that commercial usage is not allowed.

What does a WSDL do for a Web-Service?

  • Posted on: 30 August 2016
  • By: NickLitten
web services on IBM i

I found this old word document that had a neat overview of WSDL (Web Services Description Language) and how it used as part of a web-service. Useful memory jogger:


WSDL (pronounced "wiz'-dul") an XML-based interface definition language that is used for describing the functionality offered by a web service.

  • WSDL stands for Web Services Description Language
  • WSDL is written in XML
  • WSDL is an XML document
  • WSDL is used to describe Web services
  • WSDL is also used to locate Web services
  • WSDL is a W3C recommendation
  • A WSDL document is just a simple XML document.
  • It contains set of definitions to describe a web service.



The WSDL Document Structure

  • A WSDL document describes a web service using these major elements:




A container for data type definitions used by the web service


A typed definition of the data being communicated


SEU vs. RDi - what are the advantages?

  • Posted on: 5 August 2016
  • By: NickLitten
modern ibm rpg programmer with IBM RDi

In the 1980's and 1990'S the source code editor was a text based green screen tool (PDM/SEU) which is still in use at AHP today. This text based editor does not syntax check any of the new programming languages nor does it allow more than 20 lines of source code to be displayed at any time. In the late 1990's SEU was replaced by the new generation of Windows based program code editors. The early version of the code editor was the Websphere Developer Studio (WDSc) and was re-branded Rational Developer for IBM i (RDi) a few years later.

The short answer to "why use RDi" can be summarized as:

  • Improve developer productivity
  • Common development tools platform
  • Improve developers skills

Rational Developer for i is intended for IBM i application programmers or analysts who want to start using modern, more productive development tools. It is the industry standard alternative to the text-based user interface PDM/SEU toolset, providing easier ways to perform everyday tasks. In addition to all PDM functionality, the RSE also includes a number of enhancements that are not available in PDM/SEU:

IBM i Webservices - SOAP or REST?

  • Posted on: 14 July 2016
  • By: NickLitten
washing an as400 with soap

AS400 or iSeries webservices - Primer

If you are reading this it's probably because you are researching webservices and googled something like "what is the difference between SOAP and REST on IBM i webservices - please help me I am going insane"?

Dont worry - help is at hand. But you might still be insane!

Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) are two different, but similar, ways of talking to Web services out there in Internet Land. 


What is SOAP?

SOAP is the long established and much used standard for webservices. It communicates using XML and was originally designed by Microsoft. If in doubt, SOAP is an easy place to start when looking at webservices, but bear in mind that older does not necessarily mean better.


  • Posted on: 22 May 2016
  • By: NickLitten

When you do the RUNSQLSTM to create your SQL Objects - Do not qualify library names but use the Turnover variables just like you would define PDM variables:


Turnover uses the DFTRDBCOL column "&LI" to populate the other *library* variables.


Most shops I've been to use QSQLSRC to store the SQL definitions then use RUNSQLSTM to "compile" the source. Make sure you use a semi colon between each SQL statement.

I prefer to break source out into separate files for each type:

  • QSQLTBLSRC for SQL tables  
  • QSQLIDXSRC for SQL indexes (aka indices)
  • QSQLVIEWSRC for SQL views

Source members are named and commented like any other source member. It's neat -- get in the habit. ;)

All code changes are promoted and managed by Turnover.

User Approval Lists in Softlanding's Turnover Change Management tool

  • Posted on: 11 May 2016
  • By: NickLitten
Approval lists in change management

Softlanding Turnover Change Management tool works great and has a nice windows front end (based on Eclipse) and most of the functoins are east to find. For those green screen stalwarts out there - you can also access Turnover from the green screen 5250 comand line. Most functions are pretty easy to find but some like the pesky approval lists are a little more complicated to hunt down:


Click SYSTEM | Administration | Approval Lists and see:


We can also do these same functions using the basic green screen interface.


The TURNOVER menu looks like this:


Now you can select the LEVEL that you want to define an approval list for. You can enter a 17 to go direct to the approval list or you can do it the long way like this:

Setup IBM i user profiles in Softlanding's Turnover Change Management tool

  • Posted on: 11 May 2016
  • By: NickLitten
as400 iseries user change management

So, we have IBM i User profiles defined and these users now want to use TURNOVER - so what next? Luckily, defining a user is very simple just launch Turnover (in this blog I use the Windows version running on Windows10) and click the machine you want to administer.



click SYSTEM | Administation | Users and selected the group you want to work with:

If you select and existing user or add a new one you will see :

NOTE: Remember to add users to appropriate Approval Lists if necessary.


We can also do these same functions using the basic green screen interface.


The TURNOVER menu looks like this:

How do I setup compile *LIBL in RDi (Rational Developer for IBM i)

  • Posted on: 5 May 2016
  • By: NickLitten
rational developer for as400 iseries and modern IBMi systems

RDi is a great IDE for IBM i Programmers writing source code in RPG, RPGLE or CL. 

acronym alert -- (1) RDi is IBM's Rational Developer for IBM i and (2) IDE is Integrated Development Environment - just a poncy way of saying code editor!

When you first get into using RDi, you might ask a common: How do I setup the jobs library list, so that RDi can verify the source code while I'm typing it? Luckily it's simple to setup. I use two different techniques - 



If you look at the links in your connection to your IBM i System, you can see a link for Library List. Expand this and edit the your library list. #Simples



We can also use the command function, to call a program. If you have a simple CL program to manipulate the library list on my connection that sets my library list. Just click on Connection | Properties | subsystems | Initial command: