Modern Web Dev on Iseries
April 24th, 2017
I have recently been merging very old tech (RPG on ISeries) with modern tech (angulaJS 1.6) and it has brought a whole bundle of fun little issues on the ISeries side that I thought I would just note down.
I am NOT an RPG programmer (and never will be), but if you are ever having to deal with REST services (or Web Services) being hand cranked for you by a Iseries Dev, there are some of the issues that you may hit
- Truncation: JSON data can quite easily pop the string limit on ISeries, so your Iseries Dev will have to do this “write to file” thing to get round it, if your JSON is over about the 6Meg limit then you are really going to cause some speed issues.
- Inconsistent data types: Given that the PUT/GET/POST services are all coded separately, you will get field formatting issues especially if changes are made retrospectively, a Field that is a string in the GET may be a numeric on the PUT, you just have to keep a grip on it and try not to go for the easy option of “we will get it working then come back and fix it later”
- Leading zeros on numerics: If you are passing decimals less that 1 then the Iseries is going to want to send them as “.000” rather than “0.000” thus invalidating the JSON, don’t be tempted to turn these numbers into strings, they CAN be formatted correctly.
- Character sets: A lot of the activity seems to be UTF-8, and you may get a fair amount of issues revolving extended character sets, if you are getting errors that are simply baffling when you send stuff to the ISeries, check the formatting of the characters that you are sending.
- Alternating Parameters: You may be used to REST services in the format “\Name\Parmeter\Name2\Parmeter2” well this causes problems apparently, so you have to deal with them in the format “\Name\Name2\Parmeter\Parmeter2”
A lot of RPG Programmers will not have done this kind of programming before, so testing the results will be a pain to them, may I suggest that you get chrome and https://client.restlet.com/ installed on their machine so they can test and https://jsonformatter.curiousconcept.com/ so they can test the results they are getting.