The Task
Two trading entities managed by the same team buy from and sell to one another on a regular basis. Every transaction had to follow the same steps which were manually performed by someone in the team. The steps involved:
- Company 1 (OneCorp) would receive an order from a customer.
- OneCorp would load a sales order for the customer.
- OneCorp would raise an invoice for the customer.
- OneCorp would raise a purchase order on Company 2 (Two-Corp).
- TwoCorp would load a sales order for OneCorp.
- TwoCorp would raise an invoice for OneCorp.
- OneCorp would receipt the purchase order.
- OneCorp would match the invoice from TwoCorp to the receipt note.
The Challenges
Having to manually perform the steps required for each transaction resulted in the following challenges:
- Lots of time was used up performing each step of a repetitive transaction.
- Pricing and stock errors were possible and common at each step.
- Errors resulted in credits and additional corrective action, also wasting time.
The Solution
Our development team mapped out the process and devised a simple solution to automate most of the task. The team developed a Windows service that runs in the background, and communicates with SYSPRO through the business objects to get the job done efficiently and safely, without errors. It works as follows:
- Every minute the service checks if there’s a new customer invoice in OneCorp for a product supplied by TwoCorp.
- When it finds a new invoice, it creates the purchase order in OneCorp, captures it as a sales order in TwoCorp, creates the invoice in TwoCorp, then receipts the purchase order in OneCorp, and matches the invoice from TwoCorp with the receipt note in OneCorp.
- It does all of this in around 5 seconds, and provides a dashboard view to the user if there are any issues that need to be addressed.