The document discusses different methods for integrating third party systems with SAP Business One (B1), including DI API, B1 Web Services (B1WS), and DI Server. It provides details on each method, including advantages and limitations. The presenter is Abhishek Sur, Product Head for InSync Solutions, who has expertise in Microsoft technologies and SAP B1 integration.
2. Abhishek Sur
Product Head, InSync Solutions
Abhishek is the Product Head for InSync’s product :
APPSeConnect. an integration platform connecting
Ecommerce and ERP. He is also a Microsoft MVP in
Client App Dev since 2011, C#, WPF and Azure
Insiders and an author of a number of books. He is a
renowned public speaker and technology buff. He
holds a Masters degree in Computers along with
various other certificates.
Twitter : @abhi2434
Email : abhishek.s@insync.co.in
Presented by
3. Organized by
A Product Company making eCommerce
Businesses more efficient through their
product - “APPSeCONNECT”, which
integrates E-Commerce stores with
back-office ERP Systems.
4. SAP B1
SAP B1 is one of the best and widely accepted backend ERP systems
Gives lot of option to the developers as well as the users to use it
Smoothly integrates with other applications as and when required.
5. Third Party Systems Integration with
SAP Business One
Different techniques through which Third Party
Systems Integration with SAP Business One
usually happens.
6. 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.
DI API to directly interact with COM interfaces and objects supported by SAP B1.
SAP DI Server uses standard SOAP protocol messages to interact data using COM
interfaces.
BI WS is a wrapper to SAP DI Server and exposes SOAP messages through IIS.
7. 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. DI Server
also uses Licensing server to validate every request.
9. 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.
11. DI API
• 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.
12.
13. DI API
Advantages:
COM interfacing and support of debugging
Specific handling of objects uniquely exposed through API
Easy to implement
Limitations
Very slow in processing as it requires Serialization /
Deserialization of objects
Single channel communication.
Batch processing is not supported.
15. B1 WS
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 thisHttpHandler as an interface between the COM
APIs supported by DI Server which will validate the requests
and send to the Database backend.
16.
17. B1 WS
Advantages:
Standard Protocol (HTTP) interaction supported.
Can be accessed from anywhere even from outside if standard
http protocol port is exempted from firewall.
Limitations
Need to maintain IIS hosting.
APPSeConnect is a generic integration platform that connects two or more applications. It could be your Backend ERP system connecting e-commerce or marketplace stores or even your CRM System integrating with erp system. We provide various point – point communication channels which transforms data from one platform to another in real time. We are the most fast growing integration platform till date, and probably I could say the best solution in the market. We are also an SAP Gold Partner.
I don’t want to take you too deep into why SAP is best or widely accepted ERP system, but as you are here, you already know why it exists as a best ERP system.
By the way, I want to focus on the 2nd point more, which says, it gives a lot of options to the developers as well as the users to use it. It provides a number of integration systems which gives developers to integrate their own apps smoothly using standard protocol. By standard protocol I mean XML standards like SOAP, REST, XML RPC or even standard low level sockets. SAP B1 gives you an option to use standard protocol to loose couple your app with SAP B1 or tightly couple your app using COM interfaces. For instance, with SAP B1 WS, you have an option to read the schema and pass standard SOAP messages to communicate with SAP system, while with DI API or DI Server integration, you need to tightly couple your app with COM interfaces, thereby communicating with their methods. Though Pinvoke is yet supported, but it is not recommended.
On the 3rd point, I would say, it totally depend on what kind of integration you choose and how smoothly you can integrate both the system. I would say it totally depends on your code and logic you write while integrating the systems.
Why Third party integration ?
We are all dealing with Data. Data is the key with any system. There is no system exists that can solve every problem that the business needs. For instance, say you want your products to be showcased to an external site. Say you want some really great reports regularly, which perhaps the SAP system cannot provide, Say you already have a legacy system and want to use both the system, say you have an external CRM system which gets leads and you want them to be transferred to your SAP system, say you maintain your invoices in a different system, and many more… All these need you to take data out of the SAP software system and needs integration.
Now SAP admits that it cannot provide everything that a business needs and thus gives you as a developer an option to integrate your app with SAP. If you are interested to see how you can integrate your system with SAP, this session is the right choice for you. If you want a ready made solution for a business you own… I would perhaps recommend to try out APPSeConnect, which is much better solution available for you without investing lot of money.
DI API is free for devs to use while DI Server requires licence to work on. The DI Server checks the licence from the Licence service before it can allow to interact.
DI API is point to point integration with specific interfaces for each business object while DI Server supports standard SOAP envelopes to communicate.
BI WS is a wrapper to DI Server only, and it exposes the business object using standard HTTP web interfaces.
DI Server is a wrapper to your SAP System. It provides a COM based interface which allows you to connect to SAP system using Standard protocol. Well even though to connect with DI Server, you need the DLL installed with SAP system and need to reside your application directly within the same system where SAP is installed, the DI server provides two standard interface to allow your app to be loosely coupled somewhat.
DI server allows you to send SOAP messages using UTF 16 encoding. It gives standard XML formats which you can send through your application to invoke CRUD operations on the SAP objects. It offers two methods : Interact and BatchInteract to interact with SAP System.
SAP DI server requires additional licence to be purchased from SAP, per CPU basis, and hence might have some cost.
It is very fast, runs in parallel.
Each SAP DI server can open 1000 sessions at a time and each of those session can parallely run CRUD operations. Until the data is not corrupt, each transaction would be handled separately.
DI API is freely provided SAP integration system which allows devs to interact with again COM interfaces but here the interfaces are tightly coupled with SAP objects.
There is no standard maintained in the DI API system and you need to work on individual APIs individually from your application. But with tightly coupling things, you can have specific messages for each transactions and can maintain transactions sequentially.
The DI API is recommended for applications that does not need heavy duty interactions.
SAPBobxCOM.dll is the main dll for DI API which gives interfaces for Product, Sales Order etc, and master data interfaces like Business Partners, Items etc.
And of course the COM interfaces internally interacts with the database backend.
It’s a Wrapper to the DI server. It gives proxy http handlers called BIWSHttpHandlers which could be installed via a tool WsdlServiceGenerator to interact with SAP system.
Here the app can interact without residing in the same system using standard http protocols.