This post is part of a 4-article series covering integration styles for Sage 500 ERP (formerly MAS 500). The purpose is to introduce the subject of Integration Architecture, provide an overview of common approaches found today, and discuss how each can be achieved with Sage 500.
If you haven’t read part 1, we suggest you take a quick peek as it provides an overview of the “Big 4 Integration Styles” at a high level. Other posts in this series cover File Based Data Exchange, Remote Procedure Invocation, and Messaging.
In this article, we’re going to take a look at the 2nd of 4 integration styles which is Direct Database Data Exchange.
Direct Database Data Exchange refers to one of the most common styles of integrating to Sage 500 (and indeed many small and mid-sized ERP solutions). This is a derivative of Fowler’s Shared Database style that more closely resembles how we integrate at the database level in practice.
In this integration style we are connecting directly to the ERP system’s database. Here we may perform direct CRUD (Create, Read, Update, Delete) operations against the Sage 500 tables, or possibly through data views.
Additionally the developer must be aware of the virtualized locking scheme used by Sage for certain entities and processes. Additionally there is no way to meter or throttle access to the database, so the integration may increase the workload on the database server at inopportune times (during large posting or shipment commit operations for example).
This integration style does offer the lowest latency of any of the integration approaches, as data is read and written in real time against the actual Sage 500 database schema.
Sage 500 ERP offers an open, and well documented, database schema that allows developers to directly interact with the system’s tables, views, and other database objects.
However, this approach exposes a number of challenges - key among them being the responsibility of the developer to understand and observe the underlying data rules and business rules.
In part 3 of the 4-part series, we'll examine Remote Procedure Invocation as another integration style and option.
Sage 500 Integration Styles Part 3
Sage 500 Integration Styles: File Based Data Exchange
Sage 500 Integration Styles: Remote Procedure Invocation
Sage 500 Integration Styles: Messaging