This is the third article in a new series of articles which aims to explain the architecture of the Sage CRM Connector for Sage 200.


We have discussed previously how the Sage 200 proxy objects that are accessed by the Sage CRM Connector for Sage 200 may be complex.

We know that the Sage 200 customer object contains not just information from the customer table in Sage 200, but it also contains the contact, address email and phone details.

The proxy object represents a hierarchy of data. The data that is returned when the object is accessed contains parent and child data.

This can be used to some considerable advantage when the integration is being set up. If Sage CRM is being introduced to a customer site where there is an existing Sage 200 install then the Sage CRM database is likely to be empty and the Sage 200 database is likely to be full existing contact data.

That data will be migrated to CRM and the subsequent ongoing synchronization rules can be configured.

During data migration and synchronization Sage CRM uses the customer definition. This contains the customer, contact, address, phone and email information which will be mapped to the corresponding data fields in Sage CRM. This is data that is synchronized and not just accessed as a real-time fetch from Sage 200.

The mapping of Sage 200 fields to Sage CRM fields is controlled by editable configuration files. The configuration file allows control of what fields get copied and the nature of the bi-directional synchronize. This can control whether Sage 200 always ‘wins’ when data is moved or whether there is parity between the systems.

The data synchronization can be controlled by a scheduler and the script used for the processing of the synchronization is customizable.

One data has been added to Sage CRM and the Sage CRM user is accessing the screens they will be able to access the Sage 200 data on a live basis.

The companies that are synchronized with Sage 200 will have a two tabs (Financial and Commercial) that give access to live information from the business management system.

These screens display in the Sage CRM user interface just like the main system screens. This is because the screens are drawn using the standard Sage CRM scripting API. The connector uses a script page that is written in JavaScript and that uses methods and objects which are part of the standard toolkit that anyone experienced in customizing Sage CRM would be familiar with using.

The screens follow the style guides and behaviour of the main CRM interface.

The screens display Quotes, Order and Work Orders directly from Sage 200. This is live, real-time access to the data. Because the objects returned by the Sage 200 proxy objects are hierarchical and complex, they have both header and child records within them, this allows the screens generated by the connector to show full drill down into header and child records.

And the important benefit that is provided by the interaction with the proxy objects is that the grids are fully editable and allow update and insertion of new data that can be submitted back to Sage 200 via those same proxy objects.

The virtual entities defined in metadata provide the basis for the interface in Sage CRM, but the data lives in Sage 200 and the proxy objects ensure complete data integrity.

Another training section will cover how the Sage 200 data is shown in Sage CRM and how the user can work with the Business Management Solution data.

You will be installing and configuring software, so it would be helpful to be used to installing and configuring both Sage CRM and Sage 200.

You will need to be familiar with Sage CRM Administration and Customization.

If you want to take the integration beyond the default then you will need development skills around using the script pages written in JavaScript.

The basic integration makes simple use of the Sage 200. You should have familiarity with the user features and screens and be comfortable with administering Sage 200. This includes adding columns and altering screens.

If you wish to take it further, then you will need to be familiar with development for Sage 200.