Skip to Content
1
Dec 18, 2017 at 12:58 PM

What SBO API to use in what scenario?

2147 Views

Hi there,

I am investigating the possibilities in the SAP Business One Environment for accessing/connecting/integrating external systems. I am a bit baffled about what API is to be used in what scenario. Is information on this available? Advice on what you should not do would be appreciated as well.

Seemingly there 6 APIs and each of them has a slightly different focus, nevertheless there seems quite a bit of overlap. Furthermore the licenses required are different depending on the API.

UI API which seems to center around SBO front-end. If that is so, does it mean that it does not help when accessing the SBO through web access? Is it mainly for customizing the front-end?

DI API is COM based which is said to comparatively easy to use (at least from .NET), but has some limitations concerning concurrency and speed. Furthermore it provides functionality to create, edit and delete user tables and user objects (which DI Server does not provide).

DI Server is more difficult to work with, more targeted at connecting with websites, provides a better performance for such a scenario and it supports a wider range of client technologies. It has another license which is not user based (which might be cheaper or more expensive depending on the use case).

B1WS provides web services using WSDL. It is a wrapper around DI Server that (if we are to believe SAP) makes it easier and quicker to develop add-ons based on the SAP Business One DI Server. That should mean that it has similar capabilities and limitations as DI Server. Some people claim that is buggy. Does it require the same license as DI Server?

Services Layer API is only available in SBO HANA. It is based on DI API and therefore should have similar capabilities. How about the performance? It seems that it can be faster than DI API. Why?

B1if provides integration through web services, html calls, accessing DBs, file upload etc. Data transformed into xml before being consumed and afterwards it gets exported from xml to other formats. Some people claim that debugging with B1if gives you headaches. It seems to provide functionality the other APIs also provide.

If I misunderstood anything, corrections are welcome.

Especially the B1if seems to be a bit of a "can do everything" gismo. Which API should be used in what use case?

Best regards

Nils