Blogs

What is the RPG Open Access Handler all about?

  • Posted on: 8 January 2014
  • By: NickLitten



What is open Access

Rational® Open Access: RPG Edition provides a way for RPG programmers to use the simple and well-understood RPG I/O model to access resources and devices that are not directly supported by RPG.

Open Access opens up RPG's file I/O capabilities, allowing anyone to write innovative I/O handlers to access other devices and resources such as:

  1. Browsers
  2. Mobile devices
  3. Cloud computing resources
  4. Web services
  5. External databases
  6. XML files
  7. Spreadsheets
  8. And more



An Open Access application has three parts:

  1. An RPG program that uses standard RPG coding to define an Open Access file and use I/O operations against the file.
  2. A handler procedure or program that is called by Open Access to handle the I/O operations for the file.
  3. The resource or device that the handler is using or communicating with.

Open Access is the linkage between parts 1 and 2. Licenced program 5733-OAR is required to use Open Access at runtime. Open Access is a full-featured version of the limited support provided by RPG SPECIAL files. It provides a way for RPG programmers to use the simple and well-understood RPG I/O model to access devices that are not directly supported by RPG.

How to get IBM i command line during runtime using System Request 3

  • Posted on: 5 January 2014
  • By: NickLitten

Here's a blast from the past:

I was just testing an IBM i program that is importing data from a Windows Server, converting the data, juggling it, tweaking it and when its finished playing it finally shoves it into an IBM i Database. Fun Fun FUN! But if its running interactive and I want to quickly get the command line... I'm stuck. The green screen is input inhibited. Luckily, we can easily get command line access by tweaking the system request functions of IBM i.

HACKEAT EMPTOR - obviously only grant this command line access if your system i is properly secured. You dont want any old Tom, Dick or Harry getting to the command line to do you?

The system request functions do a bunch of neat things during any interactive session - SysRq/2 shows a DSPJOB command. Luckily its super easy to change the command associated with all the system request functions.

Right now, lets quickly tweak the sysrq/2 function.

WRKMSGD MSGID(CPX2313) MSGF(QCPFMSG)

How to Reset or rebuild a Sitemap in Drupal

  • Posted on: 2 January 2014
  • By: NickLitten

A sitemap is exactly that -- a map that search engines read to find what is on your website.

Sitemaps are a simple way of keeping the main search engines like Google or Bing up to date with what is going on with your website. I mean, why bother writing a website if nobody every reads it right? 

The XML sitemap module creates a sitemap that conforms to the sitemaps.org specification. This helps search engines to more intelligently crawl a website and keep their results up to date. The sitemap created by the module can be automatically submitted to Ask, Google, Bing (formerly Windows Live Search), and Yahoo! search engines. The module also comes with several submodules that can add sitemap links for content, menu items, taxonomy terms, and user profiles.

I can almost guarantee that you are reading this because you searched for something on a search engine and it bought you here. It only knows about this website because of the website map 'sitemap.xml'

The sitemap is pure XML (a kind of funky HTML) and basically lists everything that is on the website and looks something like this:

use LIBHTTP to talk SOAP to websites using RPGLE on IBM i

  • Posted on: 18 December 2013
  • By: NickLitten
as400 to web is clever stuff
 

Thankyou -- Scott Klement!

HTTPAPI (LIBHTTP) on IBM i is the bomb. Luckily I am not boarding a plane at the moment, so I can use that kind of language without getting strip searched by some burly TSA agents.

If you have never met Mr. Klement you have probably read many of his excellent articles about programming and tinkering with IBM i systems. Scott is a terrific programmer and I owe him several very large beers. After spending far too long investigating various techniques to get my IBM i system to talk to an external website (Authorize.net in this case) and being led down many wrong roads... I stumbled across scott's collection of open source RPGLE programs called HTTPAPI.

In Scott's words:

Download HTTP API source:

This is an RPG IV service program that uses socket calls to implement the HTTP 1.1 protocol. The HTTP protocol is the data transfer protocol that is used to transfer documents over the World Wide Web.

This service program can, optionally, also do "https" (HTTP over SSL) requests to an SSL-enhanced web server.

This is a powerful utility with many uses, so I'm opening it up to the world. Since this has only been tested for a few applications with a few servers, I'm looking for people to help out with testing, documentation and maybe even with new features.

Have Fun! 

use LIBHTTP to talk SOAP to websites using RPGLE on IBM i

  • Posted on: 18 December 2013
  • By: NickLitten

Thankyou -- Scott Klement!

HTTPAPI (LIBHTTP) on IBM i is the bomb. Luckily I am not boarding a plane at the moment, so I can use that kind of language without getting strip searched by some burly TSA agents.

Firstly, I have never met Mr. Klement but (like almost every IBM i Developer out there) have read many of his excellent articles about programming and tinkering with IBM i systems. Secondly, the man is a genius and I owe him a very large beer. After spending far too long investigating various techniques to get my IBM i system to talk to an external website (Authorize.net in this case) and being led down many wrong roads... I stumbled across scott's collection of open source RPGLE programs called HTTPAPI.

In Scott's words:

Download HTTP API source:

This is an RPG IV service program that uses socket calls to implement the HTTP 1.1 protocol. The HTTP protocol is the data transfer protocol that is used to transfer documents over the World Wide Web.

This service program can, optionally, also do "https" (HTTP over SSL) requests to an SSL-enhanced web server.

What happened to the Forums?

  • Posted on: 17 December 2013
  • By: NickLitten

Hello websurfing chaps and chappettes,

Over the years this website has been through many, many changes – from HTML to Flash to Joomla to Wordpress and finally to Drupal. A couple of years ago, I decided to import lots of my old programming and AS400 specific documentation into the website and imported everything in Drupal ‘forums’. Primarily as an easy place to reference old technical articles and because I thought some of the older ‘RPG Programming’ questions just might help the IBM I community out there. Apart from my burbling blogs, the forums are easily the most accessed part of the website.

However, I now find myself spending (wasting) time every day deleting spam, moderating people leaving nasty comments and just basically being annoyed by the inability of some people to have sensible conversations using online forums.

So – whats the solution?

Social media is the answer. Over the last couple of years I've increasingly chosen to use Facebook and Twitter to communicate. I’ve also integrated DISQUS into every article on the website, as it has superb antispam tools built into it. Effectively the entire website is now acting like a forum with facebook and twitter being the new places for chatter and banter.

So, if you’re looking for a Forum – STOP LOOKING. They are dead. Gone. Deceased.

Alas Poor Boris... aka... DEATH of a Landrover

  • Posted on: 12 December 2013
  • By: NickLitten
love to hate this landrover lr3

Boris the Landrover has broken down one final time.

This mornings refusal to start (again!!!) was the final straw!

 

NOTE ADDED MAY 2014: A few people have asked me how I get him to start each time. It's simple, but very annoying, embarrassing and just plain irritating. Simply pop the bonnet (American translation "open the hood") remove the first spark plug connection, return the car and turn it over... it will normally start... leave it to run for 10 seconds or so.... carefully reconnect the spark plug without getting a zap on your fingers and you're off...  now back to the story of why I killed Boris..

So, after doing the sums and realizing that I've spent nearly fourteen thousand dollars on repair bills since owning this Landrover in just two years, and he's still going wrong on a regular basis, its time to give up.  To resign myself to the sad decision to banish Boris to a life in the wilderness, outside the walls of castle Litten. I havent got the heart to sell the car to another owner, or even to trade it into a dealer and be able to look someone in the eye while saying "Yes, this is a reliable little motor and I will be sad to see it go" so its time for the car auctions.... Everybody knows that its a case of 'buyer beware' at Auctions. You can get a steaming deal or a steaming Turd. I know which category I wold put Boris into  :)

Talking to Authorize.net using XML, RPG from IBM i

  • Posted on: 30 November 2013
  • By: NickLitten


So, for the last few weeks I've been working on adding credit card handling to a legacy RPG application with an static HTML website over the top. The application code itself was written in the eighties and has evolved through a number of different versions of RPG (a mix of RPG2, RPG3, RPG400 and even a liberal splash of RPGLE) so I've had an enjoyable task of taking a bunch of old code, re-factoring to RPGLE/free and then adding some funky web services.

Now I've added the Authorize.net CIM functions and windows to my website pages, I can manually test the payment process. Now, the authorize.net documentation is not for noobs and makes an awful lots of assumptions, so implementing this technique on IBM i (AS400) using RPG, without a modern PHP Server on the front, is not as clear as it seems. After reading everything I could on the various SOAP, XML, JAVA, RUBY techniques - I've opted for the XML route.

The next step is setting up the XML conversation to this lovely IBM i System talk to Authorize.net. After two days of googling, reading, studying, prototyping, re-prototyping, going down dead ends, trying sample code that doesn't work and repeating moaning and smacking my forehead with a wooden paddle.

So I want to

Shall we Disqus why Drupal Comments are Dead?

  • Posted on: 14 November 2013
  • By: NickLitten

Spammers... I bloody hate them.

Over the last few weeks, I've had a rash of spam attacks. The modules I was using to modulate spam (Mollom, Antispam, Botcha) worked very well in blocking the huge portion of it. The downside was a big upsurge in CPU utilization on my webserver and finally getting a 'cease and desist' warning from the website abuse folks over at ICDSOFT. *sigh*

So, rather than continue to fight the evil Spam OverLords I decide to travel a different route and let someone fight the battle for me. Why handle the website comments myself when I can let an third party handle them for me.... after a little investigation I was left thinking "Facebook comments or something else to handle it?"

Facebook integration is cumbersome and my memories of doing it last time were not something I want to play with again. There is not enough hours in the day.

DISQUS is very cool.

Enough Said.

Integration of DISQUS in a Druapl7 install is simple. Grab the module from here and plop it into Drupal, then create an APP over on disqus.com for your website and add the APP Keys into your Drupal and VOILA fully managed commenting service. 

Instruction from Disqus are easy to walk through:

 

Latest version of RPG is RPG7.1 right?

  • Posted on: 13 November 2013
  • By: NickLitten

 RPG is not a Rocket Propelled Grenade

RPG2 is that Logic Cycle Thing

RPG3 is the System/38 version

RPG400 is the revamped RPG3 that came with AS400

​everything after that is RPG... unless its ILE then its RPGLE or sometimes RPG4, or its free format so its RPGLE /Free... or its SQL so its RPGSQL or SQLRPGLE... or as many people call RPG/Free - RPG FIVE..... aaaargh

Why doesn't IBM just have a simple version number for each iteration of the wonderful IBM RPG programming language?


IBM i 7.1 Technology Release 7



I love the enhancements to RPG with IBM i V7.1.7. RPG finally looks and reads like a normal modern language. With the advent of this latest version of IBM i, RPG has been neatly upgraded to be a fully free format language. This is a long overdue and a significant change to the language itself. 


Pages