How to Migrate from Old Fashion ERP to new Modern one “The Real Story” part 2

Alaa Alsalehi
4 min readFeb 14, 2022
source https://commons.wikimedia.org/wiki/File:Mediq_Sverige_Kungsbacka_warehouse.jpg

Introduction

The last article mostly discussed the migration of POS (point of sale) and how we transcend different obstacles starting with account department resistance ending with stock insufficient information. In this part, we will deep dive into how we transcend stock issues that happened, because of the unrealistic old ERP system.

Stock Issues

Retailing companies have large daily sales invoices and it is pain in the ass to keep tracking all these changes in stocking and accounting departments because of that, accountants depend on perpetual inventory systems to help them handle this situation.

Here is a simple definition of perpetual inventory. Perpetual inventory is a method of accounting for inventory that records the sale or purchase of inventory immediately through the use of computerized point-of-sale systems and enterprise asset management software.

But on the other hand, if you decide to start perpetual inventory in a running company you need to do a stock reconciliation with a very low error rate.

You need to be aware that if you run a perpetual inventory system without true stock quantities you will end up with stock you can not sell because this stock is not on the system — actually you can allow selling with negative but this is a bad choice mostly -.

Also, retailing companies mostly deal with goods that have an expiration date and if this data is missing you will be in danger of expired items.

Simple brief of this section:

1- we need to do stock reconciliation with a low error rate.

2- we need to handle the expiration date

Stock Reconciliation

Stock reconciliation is a process to count and fix quantities between real inventory and ERP system — sometimes also it includes fixing valuation -. Actually, this is a very hard and full of error process, especially in large stock companies.

To handle this situation we divide our facilities into small parts and establish two teams. Every part will count twice once from the team of the facility and once from an external team.

After the two teams finished the reconciliation, the IT team extracted differences between the two reconciliation and a third-team check the items and decide which team has the right counting.

To reduce the error and enhance the process our IT team do the following steps:

1- we create an android application with API access to our ERP.

2- we create a custom module on our ERP to allow dividing stock reconciliation.

Android App

Allow teams of reconciliation to synch items data and synch reconciliation process also allow them to works in different situations like a warehouse with bad wireless coverage.

ERP Custom Module

This part was really challenging we have a lot of data in every warehouse so we follow this strategy :

- we want to be sure pure data always be untouchable and if we need it, we can get it anytime

- also we want to summation every sub stock reconciliation into one reconciliation, after all, it is one whole stock reconciliation and the item may be exist on more than one shelf.

- after that, we need to reset any item that exists on ERP and does not mention in the whole stock reconciliation.

This strategy was really good, the summation data part has an issue in the code written to handle it and we can easily fix the issue without any damage to reconciliation data or process.

Batch for Expiration Date

Usually in ERPs to handle expiry stock they have a stock second dimension called Batch — batch also used for other situations like huge differences in valuation between purchases -.

Usually, when we add an item to the system, it has a batch or has not. But because we have a lack of these data when we start the system, we decide to start without batches for all items.

After a while, we create a plan with operational and IT deep details to adopt the batch again.

It looks like a simple operation, but if we convert an item to a batch item we need to know the batches details we have in our warehouse. To know these data we need to do a complete stock reconciliation for these items in every warehouse we have.

Unfortunately, We have 10 stores and we can not do this process for all warehouses at the same time.

On another side, if we convert the item to a batch item after reconciliation of one warehouse, the other warehouses will not be able to sell this product because they do not know its batches.

To solve this dilemma we put a plan for IT and operational departments I will try to describe it as simple as possible:

Operational:

  • We start with stock reconciliation including batches
  • We stop all stock entries including purchases and transfers simply anything has an effect on item valuation.
  • We allow only sales invoices and delivery notes.

Simply operation can only sell but not buy.

IT:

  • We create a parallel server containing the items and their valuations
  • We convert the items to batch on the new server
  • We change the reconciliation app from the production server to a new one
  • Upgrade reconciliation app in reconciliation machines
  • After reconciliation is finished we convert items to be batched and apply the reconciliation with an old date to the main server.

This was a team effort so I must thank all of my colleagues especially

Ahmed Abdelrahman, Mohammed Wildali, Jehad Aljabari, and Alaa Saqallah.

Finally, “and something else happened instead”

I am really a big fan of this TEDx talk and really encourage you to see it. It inspired me a lot because knowing you are wrong and moving forward is a blessing not all people have.

--

--

Alaa Alsalehi

Chief technology officer of NewHR company, one of the leading companies in HR software in Palestine. I have a food recipe content startup