Use case: integration of CRM and document flow applications
This article describes the project that was implemented in the RosEnergoTrans company, part of SverdlovElektro group. It is a manufacturing plant, producing electrical transformers and other equipment. Sales managers put requests for calculation of electrical transformers into the CRM (MySQL-based application). These requests, together with attached files and other information, are transferred to engineering software (Oracle-based application). There engineers are performing calculations. The result - an estimate - is passing through the coordination process and returns to CRM where sales manager receives it and uses to negotiate with customer. The whole integration process is completely transparent: manager can see in CRM, how his request is processing in engineering software. Manager can even interact with engineer by exchanging comments. Each of them works only in its own application not knowing what application is used by his counterpart. Applications components interaction schema is shown below.
In more detailed view, requests processing include following actions:
- Manager creates "Request" documents in the CRM, attaching necessary files to it.
- Document is passed to engineering software, and is assigned to engineer.
- Engineer performs calculation, attaching it as a file to the request document, and forwards it to his supervisor for confirmation.
- Manager can see in the CRM, how the request is processed. Manager can read engineer's comments, and document's status change history.
- After supervisor confirmation, request processing in engineering software ends. It is returning to CRM system, and manager continue working with it.
Logical schema of information entities exchange is shown below. For simplification, only three entities are shown: a request, attached files, and events - however, in fact there are eight classes with around 100 properties in total.
Exchange process is fully transparent for users of both applications connected. Pause between entering information and its appearance in another is within two minutes (in fact it can be reduced to seconds, but it is not necessary in this particular case). Users are not interacting by any mean with data exchange components, working only with natie functionality of their applications.
Semantic technologies are allowing to acheive significant benefits in this project, such as absence of large amounts of program code, strictly bound to the database structure on both sides. Although there is no simple mapping between databases, they are even having a different set of tables. For example, products in request are stored in separate table in engineering software, but in the same table in the CRM; by the other hand, CRM has a special table for product parameters, while engineering system hasn't. Despite this, using semantic form of information representation as a mediator, we are able to implement required transformations in the most elegant and general way. In addition, such integration schema is much easier to support, than tons of complex program code, which would inevitably appear in case of other integration solutions.