RPG to Node.js Conversion
About This Space
RPG Application that allows you to work with Insurance Claims converted to Node.js to run in the cloud, using any database
Last updated on April 3, 2020
Forked from: /scotroach/rla-using-sql/
Public Permissions: View Open/Fork Run Comment
Converting RPG IV program to run on NodeRun
This space is a proof of concept to show how an RPG IV program can be easily converted to Node.js code and pointed to a new database server that is not DB2.
No changes are made to the program code beyond running the automatic conversion to Node.js.
The original RPG source code is provided in the claim03r.txt file for reference.
Before screen shots
Conversion By Profound Logic
This entire process can be implemented by our services team for a specific customer project and can be applied to any system that can run Node.js. Contact the Profound Logic Services team for more information.
Manual Conversion
For a smaller project or proof of concept the conversion can be completed manually and the steps involved are provided below.
This example started with a program that already had a rich display screen which had been converted from a green screen and then enhanced with some additional features.
However, the original green screen display file could have been used instead. A copy of the converted original green screen is provided in file claim01d.json for reference.
Convert Display
Convert the display file to Rich display using the converter in Profound UI designer then save as .json file
The Profound UI designer includes a conversion option that provides a one-step method of creating a rich display from an existing DDS file.
Convert RPG code
Convert RPG code to node using Profound.js Converter command PJSCONVERT
The Profound.js converter is an automated process that accurately converts your RPG code into Node.js code that will run in the Profound.js framework.
The converter has options to help clean up code, modularize code, and even create web service stubs for all subroutines and procedures int he original code.
For this example we selected to remove dead code but otherwise keep the same single program structure.
Copy both the .json file and .js file to a new NodeRun space
Database
Duplicate Database Table An automated process would use a DB Migration tool to make this easier but for one or two tables for a POC you can do it manually.
- Use Manage DB2 for i in ACS to generate SQL
- removed DB2 specific parts from create table command and ran in NodeRun
- export data and generate an insert script to run in NodeRun
This blog post has more information about doing this manually
Using Your IBM i Tables with NodeRun
Running the create script in NodeRun
Db Override Modules
Create Db customize modules In an automated process these modules would be programmatically generated based on the table definitions.
- When manually creating your own POC you can use claimsp.js and claims2l.js as examples.
- Both modules use the single table claimsp. claims2l is no longer needed
- You can override any of the db record elvel access commands and can even add your own custom methods.
For example we could add a GetClaim() method to pull all the data for a specific claim.
Rich Display Enhancement changes
This example started with an RPG prorgam that was using a Profound UI Rich Display that was enhanced with File Upload and Image widgets.
Because these widgets interact with the file system there are a couple adjustments needed to move them to another system.
- Create a folder for images under the public folder
- Change the Target Directory for the File Upload widget and the Image Source script for the Iamge widget to /public/images
- Add a puiuplexit.js file
The puiuplexit.js file is an exit module that is required to give the file upload widget permission to upload files.
You can write your own code to verify the type, size, and directory before allowing an upload.
More Spaces By Alex (@alex)
This is a simple demo of Fibers! Fibers simplifies code by avoiding messy code known as "callback hell", "promises hell", or "async/await hell". Once Fibers is setup, you never have to think about callbacks or promises (they are handled automatically for you).
37265
0
0
This is a simple demo of Fibers! Fibers simplifies code by avoiding messy code known as "callback hell", "promises hell", or "async/await hell". Once Fibers is setup, you never have to think about callbacks or promises (they are handled automatically for you).
35873
0
0
53416
0
3
52674
0
2
Be the first to comment:
Comments