RPG APIs: A Modernization Treasure

K3SWhen modernizing applications, we help organizations select a software architecture that’s flexible, yet can last many years.

A recent article about our client K3S got our attention. Author Alex Woodie wrote that the inventory forecasting software vendor had updated their package with an attractive web-based interface using PHP, while adapting their existing RPG code into APIs written in RPG.

But I knew there was more to this story. So I asked King Harrison IV—K3S’s executive vice president, friend, and founding member of Club Seiden— to elaborate on their choice of RPG APIs.

Why RPG APIs?

Their reasons were not sentimental, but deliberate and strategic.

“We considered several options for modernization, such as rewriting every piece of our application from RPG to PHP. But we realized that if we separated our front-end interface from our back-end logic, PHP works for the user interface, while RPG becomes the perfect fit for the back-end.

“RPG really shines when you are working with back-end processes, providing long-term support for code you write today, compiled code and level checks, the ability to handle long numbers with great precision . . . all these components (combined with re-using much of our existing code base) made the choice of writing our APIs in RPG an easy and smart one.”

I explored each of these points with him to learn more.

Long Life and Stability

Because RPG has long backward compatibility, K3S has been able to perfect and improve their valuable APIs as needed and continue to rely upon them for many years. Front-ends can change as frequently as necessary while the back-end functionality remains stable.

“The APIs are our treasure,” says Harrison. “They have allowed us to encapsulate our business logic and code, to know it is rock solid and stable, and then have the freedom to explore front ends with all the new languages to develop interfaces people love.”

Compiled Code and Level Checks

According to Harrison, K3S’s APIs have been honed and perfected over many years to provide accurate results that save money for their customers. Whereas it’s common for many ERPs to be modified or customized by internal programmers, it’s better to run K3S’s package with the APIs provided. The compiled nature of RPG and protections against unexpected database changes ensure that their software always works as expected.

Decimal Math

RPG is known for handling numbers that have many decimal places with great accuracy and precision. For K3S, such precision enables them to provide more accurate forecasting. That, according to Harrison, saves their customers money by not having to carry as much safety stock.

Efficient Coding Techniques

Harrison is proud of the consistency of his API programs. They created RPG service programs to “use as many repeatable pieces as possible.”

Talent and Staffing

What about the staffing problems we hear about?

Harrision says, “We currently have five programmers at our company. Two are proficient in open source languages. Three are proficient in RPG.

“We have set an initiative to generate more RPG talent through outsourcing projects and developing skills in house. We are excited about the Boot Camp offered by COMMON, a practical way to teach a programmer RPG. It is also giving us a path to finally get our current RPG programmers on RDi!”

One Approach of Many

The path chosen by K3S is just one approach to successful modernization.

If your organization would like to take the next step in modernization using the best of open source, RPG, and other kinds of technology, we can help. Contact us for software-independent, tool-independent guidance.

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

If you agree to these terms, please click here.

This site uses Akismet to reduce spam. Learn how your comment data is processed.