Third-Party Systems Integration
ECF supports several ways of integrating with other systems. In this document we will discuss some most common methods.
Database Integration
The ECF uses Microsoft SQL Server 2008 as the database for storing most of its data. This leads to a natural integration point with SQL Server. All of the data is stored in regular tables and fields including meta data information. SQL Server provides a very rich infrastructure for data based integration. SQL Server Integration Services (SSIS) is a great tool to use. It can be used to integrate Product Catalogs, Inventory Data, Orders, Accounts, Customers and many other types of data.
For those who are familiar with SSIS, this should be a straight forward process. The required fields are typically marked “not null” in the database(s) so they should be easy to spot. The rest depends on your specific implementation.
Here is some general advice:
Typically, you will want to maintain some kind of structure by adding entries and nodes into the structure tables (NodeEntryRelation and so on) – you can find the diagram for the catalog database here – API Object Model and Database Diagram.
The rest is accomplished by a trial and error approach – you load sample data and see if it displays properly on the site.
A couple of considerations:
Search Indexing: Basically search indexing is performed every time the data is changed (records updated, removed) and is tracked in a log table (ApplicationLog).
There are a couple of approaches you can employ. You can either add entries into the log table OR you can invalidate the index by removing the “build” file from the index directory (or you can rebuild the index completely if you like).
Serialization: Serialization is used for entries to quickly load all the meta fields (instead of requesting it one by one). Serialized data contains binary serialized meta data information which is used to improve performance when reading data. You can only read serialized data using the APIs.
The data is stored in “SerializedData” field in CatalogEntry table. You can simply set it to NULL. There is a project under Tools in your Visual Studio solution called “CatalogIndexer” that you can use to serialize all of the NULL entries to improve performance.
The advantage of this method is having access to all of the tools for monitoring, troubleshooting and scheduling.
Depending on your version of SQL Server you can read more here:
| SQL Version |
Information |
|---|---|
| SQL Server 2005 |
http://www.microsoft.com/sqlserver/2005/en/us/integration-services.aspx |
| SQL Server 2008 |
http://www.microsoft.com/sqlserver/2008/en/us/integration.aspx |
Direct APIs
In some cases it is easier to use direct APIs. This can be used to import Catalogs, integrate with Order workflow and many other ways.
There is a catalog import function that can be used to import the catalog programmatically. The catalog is stored in ZIP format (so we can include images as well as data in one file). You can unzip that file and you will find a XML file inside the zip package with a readable format.
An example of how to use that method can be found inside the following unit test: UnitTests.CatalogSystem.CatalogSystem_UnitTests
WCF APIs
ECF provides Beta Version of Windows Communication Foundation APIs for Order and Catalog sub systems. These APIs are in beta and available as part of the Professional Distribution.
The WCF APIs are only available currently for the Catalog System. You can see example of how to use these APIs insidethe “IntegrationTest” project. You will need to work with the .config file to make this integration work properly.
To read more, go to http://msdn.microsoft.com/en-us/library/aa480190.aspx.