In this article I want to consider how Sage CRM's SOAP based web services can be used to extend its features and integration with other systems.
Sage CRM actually has two forms of web service in the current system. It offers both SData and SOAP Web Services.
- SData is a Sage standard that is used across many of Sage's products. It is a form of web service based on RESTful principles (Representational state transfer). SData is covered in another series of articles.
- SOAP Web Services are the classic interfaces that adhere to the SOAP protocol specification. Wikipedia has a good article that explains SOAP. http://en.wikipedia.org/wiki/SOAP
The presence of two Web Service interfaces in Sage CRM is a product of its design and the fact that Sage CRM is a system in transition from one architecture to another.
The above diagram shows that the architecture is a hybrid between the older eWare.dll based parts and the newer Java/Tomcat elements.
SData is used by the newer features (that use the Tomcat webapp technology) as its communication protocol. SData is increasingly important to developers. For example SData is used by the Client Side API as the basis for its Ajax requests.
Note: It is very important to understand that the SData API available for customization and 3rd party development use is currently only ReadOnly. The classic SOAP Web Services on the other hand are fully able to allow Create, Read, Update and Delete (CRUD) actions. This is why the SOAP Web Services continues to be so important to developers and implementers working with Sage CRM.
Sage CRM's web service API (application programming interface) enables developers to manipulate CRM records remotely with SOAP (Simple Object Access Protocol) over HTTP using XML (Extensible Markup Language). It is possible to access a CRM server or a hosted system from a specified client machine (typically another server) in order to read, create, update, or delete records for each exposed entity, for example, Companies, People, Opportunities, Cases, Quotes and Orders.
The image above shows a development environment in which a Windows program is being created that will interact with the data in Sage CRM. The interface is being created using C# within Visual Studio. Sage CRM's SOAP web services do not provide users with a (Graphical User Interface) GUI, which is the case with the .NET and COM APIs. Instead, web services share business logic, data, and some processes through a programmatic interface across a network.
Developers can add the web service to a GUI, such as a Web page or an executable program, to provide users with the required functionality.
Within a Sage CRM Cloud edition it is not possible to add application extensions using either .NET or ASP pages. This will need to be done using Web Services (both SOAP and SData can be used together).
How a SOAP Web Service request works
To learn more about the way in which the SOAP web services work then please read the article "About the SOAP Web Services".