RPG to Java Migration in ERP software
Read more

Back-end solution, Software Consulting, Discovery Workshops, Tech Stack Update
IT Services & Consulting
Ettlingen (Germany) and Wels (Austria)
Team Outsourcing
Payment model:
Time & Materials
From November 2021


In 2021, we partnered with Aptean, as a technology leader in business software for medium-sized enterprises in industry and wholesale trade. The company provides custom ERP software because closely aligns with the process and application requirements of the engineering, retail, medical, and automotive target groups. The ERP software, developed by the client, is available in multiple languages, which means it can be used in different countries. 



ERP systems were implemented with end customers several years ago. By default, these systems are supported and developed by manufacturers for a period of two years. However, over time, companies scale and processes evolve, affecting the need to tailor systems specifically to the business. For a while, customers hired their own developers who understood RPG (AS/400) syntax or worked with different vendors. However, this all happened outside of documentation, so it only functioned on an ad hoc basis for business needs.  Although ERP systems have continued to operate, RPG is now an older technology, which is difficult to find developers for further development.  

Companies, therefore, face a choice: either they decide to go back to the ERP system vendor and build the system anew, which is extremely expensive, or they migrate their customized system to a newer technology. Companies mostly decide to do this, working with the client's teams and VM.PL. 

Our solution

In the initial phase, three programmers worked on the projects. Currently, the client employs a 15-person VM.PL team, which, in addition to programmers, includes a project manager, a business consultant, and a customer success manager.     

Throughout the process, we work directly with the client, directly consulting the end customers.  We have performed migration projects from RPG to Java 11 for companies involved in areas such as: 

  • Supply of medical and food industry gases 
  • Manufacturing of industrial machinery 
  • Production of heat pumps and heating systems 
  • Production of printing products 
  • Providing telecommunications solutions 


Migration from RPG to Java  


The migration process begins by getting to know the old ERP system with the original versions of each client's libraries, which are entirely written in RPG. Each company with such an ERP system has modifications and functionalities built for the needs of its business. After analyzing the older code, we built a new comprehensive client framework with its specifics based on Java 11. 

Our task is to build a fresh version of the ERP system with all the necessary modifications to the system newly implemented. We have learned within the team how to interpret this code, implement customer modifications, and analyze the operations of the older program. 

In addition to backend activities, we use the Java Emitter Template (JET) tool to generate the fields, values, descriptions, and charts necessary to operate the ERP system. 
Our team has no problem understanding the RPG system, which, nevertheless, is not an easy one due to the level of complexity of ERP systems.  

"A vast number of sizable systems, e.g., banking systems or other ERP platforms, are based on RPG code, and fewer and fewer programmers can handle it it is no longer widely taught. We have a significant technological advantage because our teams understand how the code works and its dependencies."  Daniel Hodaniewicz, Backend-Engineer 


What challenges are we overcoming? 

  • ERP system modification conflicts 

When a newer version of the software is implemented, then we actually implement the version update separately for each customer. This is because sometimes modifications can cause some problems when they are created for the client's specific needs, so with each update, we resolve functionality conflicts on an ongoing basis. 

  • Performance issues  

Sometimes, performance issues arise, and then we look for new solutions, optimizing performance from within Java. As we analyze the code, we identify areas to be improved for the next global system update. 

  • Monolithic system architecture 

ERP systems lack an architecture of individual microservices but are one large monolith, which means that, for example, sometimes calling one function suddenly calls up ten different methods from 10 different areas. This requires analysis and inquiry from experts who built the types of dependencies in the ERP system. 

The migration process can be divided into stages: 

  1. ERP consultant meeting with the client (analysis and planning) 
  2. Development - migration from RPG to Java 
  3. Implementation and testing 
  4. Maintain the system for a minimum of one year. 


Upgrading the ERP system version 


Some clients already have a newer system, and having a base system, we customize it. Therefore, we also manage version changes in addition to migrating the code. If the client's version of the ERP system is, for example, 4.1, we upgrade it to version 7.2. This advantageous solution increases efficiency and improves the system's security.  During the version upgrade, we check what modifications have been implemented in the client's system so that they are already incorporated into the new version.  

Building a customized web and mobile application 


We are building a new fuel card system with the client's team for a liquid cargo handling and transportation company. The end client's company operates on an in-house ERP system dealing with, among other things, vehicles, gas stations, car washes, etc. The project aims to unify the four systems that are currently dispersed and create a single platform to implement cards for drivers to use when refuelling. 

A team consisting of an ERP analyst, developers, and a product manager regularly conducts product workshops at the end customer's site to gain detailed information on the design requirements needed to build new functionality. 

The development process follows an Agile approach, and we gradually build prototypes, adding functionality that the customer tests and then develop in greater detail.  


We systematically make improvements to client systems that require transfer to newer technologies. We strengthen project cooperation through remote meetings and in person to build relationships on an ongoing basis, strengthen mutual trust, and discuss processes in depth. 

With a strong command of the German language, the VM.PL team communicates fluently with end customers, significantly improving the quality and pace of work, mutual understanding, and overall atmosphere.   

From the customer

VM.PL was willing to learn our framework and quickly immersed itself in our software and topics. We could use it in customer projects in a very short time, and the customer feedback showed us, as did the project team feedback internally, that the collaboration and the quality of the work were very satisfactory. 

Johannes Sebald
Consultant Senior PS


Design, Development and QA of the Financial Platform

Product design, custom development, and QA services of web platform
See another

Design, Development, DevOps or Cloud - which team do you need to speed up work on your projects?

Chat with your consultation partners to see if we are a good match.

Jakub Orczyk
Member of the Management Board/ Sales Director VM.PL
Book a free consultation
Jakub Orczyk

Let's arrange a meeting!

We will be happy to visit you in your office. This will allow us to discuss the possibilities of cooperation in person.

Just leave a message and we'll get back to you to arrange a convenient date.

* Please complete all mandatory fields.
Let's arrange a meeting!