SAP B1 is one of the best and widely accepted backend ERP systems for SMEs gives lot of option to the developers as well as the users to use it smoothly and integrate with other applications as and when required. Different techniques are available in SAP Business One for Integration such as DI API, DI Server, B1WS, etc. In this blog article we will understand the architecture and details of different techniques through which ‘Third Party Systems Integration with SAP Business One’ usually happens.
Difference between DI API, BI WS and DI Server
As per SAP B1, there are mainly two types of interfaces supported to interact with each other. It is either DI API to directly interact with COM interfaces and objects supported by SAP B1 or through SAP DI Server which uses standard SOAP protocol to access data. Here are the architectural diagrams of each of them.
What is SAP B1 DI Server?
SAP B1 provides a number of endpoints which can help people to integrate their applications with it. DI or Data Interface Server API enables business partners to develop SOAP based solutions over the Data infrastructure to do CRUD operations (Create, Read, Update & Delete) over the database objects without handling the database objects manually.
The DI Server is a COM based service which gets automatically installed into the server (with SAP installation). It receives SOAP request messages from client using the Interact method. The DI server converts the SOAP messages into data objects for SAP B1 database. The SOAP messages must be uTF 16 encoded which SAP D1 understands. On the contrary, the DI Server wraps the response data and sends it to the client as SOAP response using the Interact method return value.
Advantages of SAP B1 DI Server interfaces
Many of you might have tried to use DI API to communicate SAP B1. The SAP B1 DI Server implementation is recommended to the users for the following benefit.
- Heavy duty operations supported and read / write in Batch. Hence gives high performance.
- Supports parallel transactions.
- Bypasses calls to the Web methods configured in IIS and uses COM element to interact with Data Interface Service directly.
Even though DI API works fine, it is very slow and works as a per call basis.
In case of DI API, the Application directly takes reference to the functionalities and sends data according to the API provided by SAP. As there is no standard maintained on input and output data, the data is more specific and also gives specific output related to call. Here the SAPBobsCOM.dll is used to reference the business objects exposed through SAP B1.
- COM interfacing and support of debugging
- Specific handling of objects uniquely exposed through API
- Easy to implement
- Very slow in processing as it requires Serialization / Deserialization of objects
- Single channel communication.
- Batch processing is not supported.
The B1 WS uses IIS with a predefined HttpHandler installed with SAP called BIWSHttpHandler. This handler redirects every interaction endpoints and you can use WsdlServiceGenerator to generate proxy Wsdl over the IIS. The IIS uses BIWSHttpHandler to interact to the DI Service. You can think of this HttpHandler as an interface between the COM APIs supported by DI Server which will validate the requests and send to the Database backend.
- Standard Protocol (HTTP) interaction supported.
- Can be accessed from anywhere even from outside if standard http protocol port is exempted from firewall.
- Need to maintain IIS hosting.
- Batch operation isn’t supported.