How to change all lines on turnover form to add, delete or replace

  • Posted on: 8 December 2016
  • By: NickLitten
change softlanding turnover form easily with projex4i

LMS7.3 - IBM i Lodging Management Systemthis week i will be mostly usig unicom softlanding turnover

In the words of Jesse from the Fast Show (showing my age there) -- This week I will be mostly preparing to upgrade LMS 7.1 to LMS 7.3.3

So, this Las Vegas Casino uses Turnover V100 to manage software change management across its IBM i Systems. I actually helped them setup and run their huge customized Hotel System upgrade to LMS7.1 a few years ago and was delighted to be asked to come back and help them do it all over again, but this time going to LMS 7.3.3

The difference with this upgrade is that many of the Casino's bespoke customizations have now found their way down into the Agilysys LMS base product. This is great news for the software development team, reducing the scope of their software support.

Save a Library to a SAVF, ZIP it and FTP to another IBM i Server

  • Posted on: 22 November 2016
  • By: NickLitten
Save a Library to a SAVF and ZIP it up

Fastest way to transfer SAVE FILES from IBM i Server to Another over the network

We save a library to a SAVF, Squish that save file down into a smaller format. Send that little squishy packet over the network (quicker because its smaller). Then we un-squish it on the other end and restore it. #simples.

Squish it up


This uses IBM i's built-in compression and will make any save file a few percent smaller than standard.

Now we have the *SAVF in the smallest possible size... let's squish it smaller.

We are going to use JAVA to squish that *SAVF into a *ZIP file. Of course this assumes Java installed on your IBM i Server as a licensed program.

Remember we can access that *SAVF using the IFS naming formats. ie: LIB(MYLIB/MYSAVF) can also be referenced as /QSYS.LIB/MYLIB.LIB/MYSAVF.FILE/MYSAVF.SAVF 

Start the JAVA shell on the green screen command line to zip it up:


The Java "Jar" command basically creates a Java Jar file which is nothing more than a zip file. It's trnsparent and real time compression is quick.

So, now you have a smaller ZPI file called MYZIP.ZIP that you can FTP, email, copy/paste or send by snail mail.

Hope it useful :)


How to archive redundant objects using Turnover for IBM i Series

  • Posted on: 2 November 2016
  • By: NickLitten
How to archive redundant objects using Turnover for IBM i Series

Steps to remove code from scheduled Releases


TO - Turnover Menu

Option 9 - Work with Projects and Tasks

Create a Worklist and then Checkout program at top level (presumably your production level)

Option 46 - Add to form (on object library you want to remove objects)

This will create a new form and make sure you add recompiles

Resequence the form  . . . . . . . . . . . . . . . . . N      
Check for logical files and add them to the form . . . Y   
Check cross-reference file for related objects . . . . Y       
Check for objects changed by other programmers . . . . N      

F21 - Select all Recompiles

Note - Always select application you are using on - Cross Reference application Selection screen

Now we have a form created and ready to do something to all those checked out objects. We can just go and update the form to DELETE

Option 42 - Edit form

Change each object on form to mark it as a DELETE request (dont worry because Turnover will archive the object to its archive library before it *deletes* the real one)

F7 - Update Top

Change Code to 'D=Delete'

Repeat for each object on form

How to extract the NUMBERS from an alphanumeric string

  • Posted on: 12 October 2016
  • By: NickLitten
bite chunks of data out of big fat data

Also known as - how to select only the number from an address in a field, or file data

A little while ago, I wanted to extract out the numerics from a string of data:

For example - if I feed in "111 High Street, 5th District, Charleston, SC 29466" then I want to get "111529466" returned.

Obviously there are several ways of doing this. But a few techniques sprang to mind so lets do some timings using common variable names. These code examples are using values of (a) $address = long varying variable with an Address in it and (b) $number variable defined as 15,0 containing returned numeric value. To do some timings on this, I read 10,000 address fields from a customre master file and fed this data into the following routines. This gave me a sensible execution time that i could do a rought timing with:


METHOD 1 - Read through the address string, position by position to find the numeric values:


For X = 1 to %len($address);

  StringChar = %subst($address : X : 1);

  If StringChar >= '0' and StringChar <= '9';

    Eval $number = %Trim($number) + StringChar;




10k results each saying "111529466" Correctly

Runtime - 2.15 seconds   


METHOD 2 - Use %XLATE to remove all non-numerics then use %DEC to convert to numeric


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:

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: