Complex Distribution System: Case Study
From ADempiere ERP Wiki
A Case Study of a Complex Distribution System
In 2008 Adaxa was requested to provide a proposal for an ADempiere based system to be used by a Company that distributed medical products directly to consumers using a third party logistics organisation. The system was developed during 2009 and went into production in the last quarter of the same year and has now been running in production for about 10 months.
The Company's operations consisted of:
- distributing products that the Company sold on its own account, and
- distributing products to consumers under a number of schemes and with costs reimbursed to the Company by government departments. Each government scheme had its own rules for the entitlements of the consumers who were recipients under their particular program. The Company administered some schemes under delegated authority from the government departments (i.e. accept and approve applications and define entitlements).
Major Changes from Standard ADempiere
- replacement of the ADempiere webstore with the Drupal/Ubercart content management and e-commerce system with real time web-service integration to ADempiere
- third party logistics provider integration including Automated logging of Delivery and Manifest documentation
- functional requirements of a 60 person call centre and (as a later phase) the integration of an Asterisk soft PABX with ADempiere
- replacement of the client's internal 'issues management' system with ADempiere Request functionality
- Business Partner, Contacts and BP relationships allowing many-to-many links
- Extended use of the concept of “Activity” to implement complex business rules
- Multiple UoM based price lists
- Complex Sales Order rules and Delivery Status displayed on order header.
- Management and recording of complex incoming paper application forms.
- Semi-automated form evaluation and response letter creation
- Customer address validation
- Enhanced replenishment functionality for 'fast moving consumer goods'
- Automated Freight Cost calculation in sales orders
- Automatic feeding of Pentaho BI System for sales order revenue and margin calculations
- Automated recording of Package and Tracking information from the third party logistics provider
- Government Payment Gateway access via XML based files
The Open Source Stack
The system runs on Dell Server hardware which hosts multiple virtual machines using Red Hat Linux and the Xen Virtual Machine Manager. The application software consisted of ADempiere 3.5.3, Drupal 6.x and Ubercart. Postgres 8.3 and MySQL were deployed for data storage for ADempiere and Drupal respectively. The details are similar to that shown at http://www.adempiere.com/index.php/X64_Hardware (refer to the 100 user system description).
Access to the Modified Software
For those interesting in exploring the software further, the complete system package is constituted by:
- the original functional specification with 'as-built' changes is available at Case Study - Complex Open Source Distribution System.pdf
- a customisation.jar which will apply all the required changes to an ADempiere 353a release link
- a Postgres database configured to work with the ADempiere modified code and containing a small set of indicative test data ici_slim.psql.20110128_0345.gz
- The Drupal/Ubercart demonstration system which links to the ADempiere instance. slim_drupal.tar
- the source code for the ADempiere system can be downloaded from this link
<<< we are still trying to figure out the best places to put this information particularly the website files which are big >>>>
Inclusion in Core ADempiere?
There is no plan to try to migrate the functionality contained in this system into the ADempiere core because much of the functionality would be of little interest to the majority of users. There are, however, a number of changes that are quite suitable for inclusion in the ADempiere core and anyone who feels that a component of the functionality is suitable for inclusion should make that suggestion.
Thanks to Sponsoring Client
The Client has requested that we make available the modified code to be used by others in the ADempiere community who may have a similar need. To help readers understand the system, the Client has allowed us to make public an anonymized version of the original 'functional requirements' document. We have subsequently modified this to reflect the changes that were made to the original plans to show an “as-built” view of the system.
We would like to thank our Client for the opportunity of working on this project and for their generosity in allowing us to share so much with the ADempiere community. Much of the material presented in this document has been derived from the working experiences and documentation developed during the project implementation. We would like to express our thanks to the staff and management of our Client for their excellent co-operation and assistance during the project.