Exciting times ahead for the SAP Community! We've outgrown our home, so we'll be migrating to a new platform later this year. Let's continue the journey together!
In my role in the Global Roll-out team, it is my passion to provide you with well-prepared information. The purpose of this blog is to serve as a central point of entry through which we would like to provide you with information and various aspects of the integration framework for SAP Business One.
I would like to start with the topic about integration in general:
The meaning and importance of integration or the question, why integration is needed?
In a daily business life, the subject of integration plays an increasingly important role. Integration affects many areas of a company, such as business cooperation, integration of employees from other countries, connecting business units, and a very important aspect is the integration of different software systems and components that best enhance your company processes.
In this blog, we will specifically look at the topic of integrating software systems and components to show how they can be connected for data exchange. Especially in times of digitalization, companies are increasingly facing the challenge of how to connect different software components, such as different systems, mobile applications, integration of sensors, and other technologies to become a more automated, intelligent and connected company.
Which kind of interfaces are available in SAP Business One for data exchange?
SAP Business One is a very open and flexible ERP system that offers various possibilities of data exchange across system boundaries.
For data exchange in SAP Business One, these two interfaces, so called Application Programming Interfaces (APIs), are present in the system:
SAP HANA Service Layer API Technology
The next generation API
for the digial business
allowing you to create lightweight mobile apps consuming SAP Business One data and services using open core protocols such as HTTP and ODATA.
This technology is only available for SAP Business One, version for SAP HANA.
SAP Business One DI API
The DI API contains objects and methods that enable developers to read, write, update, and remove data objects on database level.
This DI API is available for SAP Business One on MS SQL, too.
Both APIs, the SAP HANA Service Layer and the DI API can be used for data exchange in both versions of the integration framework, version 1 and version 2.
Get more general information about SAP Business One via this
link
.
Data Exchange and Connection of External System in General
The integration framework for SAP Business One is a Web browser-based solution to design integration flows for exchanging data between different systems.
In contrast to the classic integration of software components through in-house development and direct use of the existing API’s, various components / services already exist in the integration framework that simplify integration tasks, such as integration services, different adapters, load balancing, security functions, message flow control and monitoring, error handling, easy adjustment when APIs change, a light-weight business process management and more.
The integration framework for SAP Business One is an integral part of SAP Business One and can be used in every customer installation whatever the installation is, on premise or in the cloud.
What is the integration framework in general and why to use it?
The integration framework provides an infrastructure that allows for the communication and interaction between software applications such as SAP Business One, other SAP solutions as well as non-SAP systems; whether they are cloud applications or on-premise applications. In contrast to developing against the classical application programming interfaces (APIs) for data exchange, development within the integration framework only takes place in dedicated spaces, called atoms. There are various types of atoms to support the integration design which will be described in another blog.
The purpose of the integration framework is to provide data mapping and transformed information to the software applications involved. This means that definitions are provided for sender- and receiver systems, the mapping of data and their values, which data is to be transformed and exchanged, the specified time intervals or prompts for when the data exchange should take place, and much more.
All definitions for the data exchange is saved in the integration framework in an object or form known as a
scenario
.
Knowledge of IT, XML/XSLT, JavaScript as well as basic SQL, and a general understanding of the data structure of SAP Business One are sufficient.
The integration framework provides the possibility to create custom-specific scenarios. However, standard ready-to-run scenarios are already available, which can be changed or adapted to suit the specific customer needs. Some of these standard scenarios extend the various standard processes in SAP Business One, such as Request for Quotation, connection to SAP Hybris or SAP Ariba. Other scenarios cover legal requirements like electronic invoices for different localizations, and so on.
(NEW in May 2020)
The integration platform (also called B1iP) is the basis of the integration framework for SAP Business One. Get more information in the collection of technical articles in this Blog
Technical Articles About the Integration Platform (B1iP)
Please consider the licensing model according to the SAP Business One licensing terms.
What is the benefit of the integration framework?
The usage of the integration framework has several advantages. I would like to explain some of them by using examples:
Fast adaptation in case of changes
Let’s assume that a scenario is created for data exchange and synchronization with other systems. It could be possible that changes will happen, e.g. new fields are available and should be considered. These new fields could be incorporated into the mapping, or deleted if required.In addition, SAP Business One release changes generally do not have an impact on the already created integration scenarios.
Release independent usage
A single scenario can be created to exchange and synchronize data across several SAP Business One company databases. This single scenario can be used for the different SAP Business One release versions.
Let’s assume in a new release new fields are available. The existing scenario can be updated using these new fields. The same scenario can still be used for the older release versions despite not having the fields available.Furthermore, the different release versions of SAP Business One are available for selection and usage in the integration framework.
Reuse of scenarios
Another benefit of the integration framework is the reuse of existing components.
Let’s assume a scenario to exchange and synchronize data between two databases is created. It is not necessary to create a new scenario when adding a new database with similar integration requirements. The existing scenario can be enhanced or used as a template scenario.
Which versions / programming models are available for the integration framework?
Integration Framework Version 1
The current standard version of the integration framework for SAP Business One is version 1.x, also called programming model 1. This is the standard version for SAP Business One installations, that typically runs on-premise at the customer side.
Information about the functionality of this model and its components, such as
System Landscape Directory
(SLD),
Inbound
,
Processing
,
Outbound
,
Monitoring
, and so on, you will find in this Blog about the
Integration Framework Version 1 – Concept of Scenario Development
Integration Framework Version 2
A new, alternative approach for the creation of integration scenarios has been added with SAP Business One 9.3 PL04. It’s called the integration framework 2.0 for SAP Business One and provides possibilities to run integration content for multiple customers in the cloud.
The model resides on top of the integration platform, offers an Integrated Development Environment (IDE) for scenario development, and uses the platform capabilities with a lower-level approach than the integration framework 1.x model. The integration framework 2.0 runs directly on the integration platform. To access to the integration framework 2.0 calling a different URL is required.
Both integration framework versions 1.x and 2.0 are independent and integration packages can run simultaneously without runtime conflicts. Both integration framework versions share the same SLD.
See a highlevel example on the Integration Framework for SAP Business One 2.0 in the
Factory Automation Demo
clip.
Solutions Based on the Integration Framework for SAP Business One
Besides the above mentioned standard scenarios there are additional solutions based on the integration framework, which are enhancing the scope of SAP Business One:
Intercompany Integration Solution for SAP Business One
The integration between associated companies running SAP Business One enables businesses to manage transactions across multiple SAP Business One systems by automatic replication of master data, business transactions, journal entries among companies within the group and by providing intercompany reports as well as collaboration features.
Get more information in this
Central Blog
and in the
SAP Help Portal
Customer Checkout
SAP Customer Checkout can be used as a stand-alone solution for point of sales requirements in a fan shop or retail store. In combination with SAP Business One, the sales relevant information such as prices, item stock levels, currencies and more is managed in SAP Business One. That information can be sent via the integration package to the SAP Customer Checkout solution and displayed there to handle POS related processes and fulfill payment means like cash, standard EC and credit cards and vouchers. The relevant invoice data is sent to SAP Business One for further processing in the ERP system.
Get more information about the
POS System
SAP Business One Integration for SAP NetWeaver
Subsidiary integration with headquarters is the solution used to integrate SAP Business One running in subsidiaries with the SAP Business Suite and SAP Business Warehouse in the headquarters, or into SAP Business One used as a central system in the headquarters.
Get more information in the
Overview Presentation
and in the
SAP Help Portal
Business Process Management
The Business Process Management (BPM) is part of the integration framework and the purpose is to design, model, and automatize business processes.
Business Process Management orchestrates different integration scenarios by adding automated tasks or human actions. For example, a process needs to wait until certain information is provided or after a defined timeframe ends.
The Business Process Management is available for both integration models, version 1.x and 2.0.
See an example on the Business Process Management usage in the
Cold Storage Demo
clip.
Happy integrating!
Miriam Rieger
(Special thanks to Krisztian Papai, Annemarie Kiefer, and Justin McGuire for their valuable input and documents.)
Thanks for this nice write-up about B1iF. I have been wanting to look at further documentation for B1iF version 2.0. Can you provide additional links specific to getting started on Version 2?
I need an information regarding integration or API's available or used between SQL server and SAP Business one.
Can you please advise/help on this!
Thanks,
Rohini
Hi Rohini,
it looks that your question is related to the extensibility of SAP Business One itself and the DI API.
You will find more information on the SAP Help Portal under
SAP Business One
and the SAP Business One 9.3 SDK Help Center (access required).
If you have further questions please post a new question in the SAP Community under the tag "SAP Business One Extensibility".
Thank you and best regards
Miriam
Hello Miriam,
well done!! Thank you for your valuable contribution. I've worked with version 1 of B1iF for the last 5 years, and always got difficult to find good stuffs about B1iF. Now I'm following you !!
I'm very interested in version 2.0. But at first glance about the wsdl generation on WSAR adapter, I got a little surprised. Do we have to create them in hand? Please tell me it's a mistake....
Thanks!!
Leonardo
Hi Leonardo,
thank you that you appreciate this information and that it's helpful.
And please see Anne's answer.
Regards
Miriam
Hello Leonardo,
Supporting WSDL generation for version 2 is on our list. Just give us a little more time.
Best regards,
Annemarie
Hi Annemarie,
Just wondering if support for wsdl generation has been completed and if there is any documentation beyond the WSAR adapter documentation available guiding one through the process of generating a wsdl file in B1iF 2.0?
Regards
Hi Miriam
1.x and 2.0 share the same SLD. I'm wondering if they share also the same SLD Entry. I have a SAP ECC connection and the new scenarios I would like to do on the V2.0, but it looks like if it triggers either the steps in 1.x or 2.0. It this correct or can I somehow configure it different?
Best regards,
Damian
Hi Damian,
yes, it‘s not possible to run 1.x and 2.0 R/3 inbound scenarios against the same R/3 system.
The reason is that there is only one RFC server on B1i side.
You could develop a small scenario step in 1.x, subscribed to the required IDOC, which is just putting the incoming IDOC into a queue which will trigger your 2.0 scenario step.
Develop you new step in 2.0, inbound is internal queue, give a name for the queue, open Deployment Panel, activate the step, open Runtime Artefacts, IPO, check the name of the queue/stream that you use in your 1.x step.
best regards - Heinz
Hi Miriam and others,
You know, We can set up the integration between Subsidiary(B1) and Headquarter(ECC) via ALE/IDoc (
corresponded to the RFCA/RFCP configurations in the SLD
), I am not sure if this interface technology can also be used for SAP S/4 HANA? Is there something needs to do with oDATA or HANA Cloud Integration for the integration between B1 and S/4 HANA?
BR / Jim
Hi Jin,
S/4 HANA OP (on-premise) supports the same RFC interfaces that are used by the subsidiary integration solution to connect to R/3 4.6c, R/3 4.7 and ECC.
S/4 HANA Cloud has HTTP based interfaces.
The SAP out-of-the box solution does not support these interfaces yet. Of course you can use the inbuilt HTTP adapter to connect by your own (or modify the copied SAP package) scenarios,
best regards
Heinz
Hi Miriam
We would like to monitor a couple core elements of the Integration Framework (version 1) in an external monitoring system (www.paessler.com), for example, the queue.
But it seems that the B1i doesn't allow external monitoring. Do we miss something?
Best Regards
Pascal
Hi Pascal,
you can open the url/link of the Integration Framework and also a concrete menu also from other browsers in your network but first you need to change a parameter in the file “xcellerator.cfg”. Open this file in an text editor and change the value “false” (by default) to “true”
xcl.http.localOnly=true
After changing it you also need to restart the windows service “SAP Business One Integration Service” to make this change active.
Hope this helps!
Regards, Nicolas
Thanks for this blog.
We have to do a large integration for a customer between SAP Business One on HANA with ECC.
The number of transactions is going to be in the region of 5,000 per day. We are contemplating using B1iF 2.0 for the same. Could you please send us some s
erver sizing guide for a standalone B1iF
Server.
Regards,
Tushar
Hi Tusher,
the server sizing guide is coming together with SAP Business One. The number of transaction you are mentioning can easily handled with a standard server and default tomcat settings. But to gain better performance you can assign more memory (4GB or more) to tomcat .
Regards, Nicolas
Hi MIriam!
After executing the test scenario, B1if responds with the next exception: java.sql.BatchUpdateException: Violation of PRIMARY KEY constraint ‘PK_DBQSTREAMS’. Cannot insert duplicate key in object ‘dbo.DBQSTREAMS’.
Could you please tell me how can I debug this issue?
Hi Miguel,
this sounds like a very special error message. You find more information about debugging in the help menu of the Integration Framework.
Regards, Nicolas
Hi Miriam!
Thanks for sharing the information with us! Is really usefull your blog.
But now I have a doubt. Is it possible to integrate SAP Business One with SAP Extended Warehouse Management Descentralized?
Till now I haven´t find any information related to this integration.
Thanks in advaced
Regards,
Luis Gerardo.
Hi Luis,
the Integration Framework as part of SAP Business One can be used to integrate further SAP and external solutions. There are no out-of-the box scenarios to integrate B1 and SAP Extended Warehouse Management. This can be built using the Integration Framework.
Regards, Nicolas
We need to install a global client, on 3 main installations - One in the US, on In EU and One in Asia - Each installation will handle multiple companies in each region - 30 companies in total... The client is looking for functions such as 'stock consolidation' from one region or from the 3 regions in 'real time'... SAP B1 ICI will be deployed for this client, but instead of 'global' queries to get the stock information from the different regions, we tend to implement a B1if custom scenario.. Do you have any return on experience using B1f on multiple SAP B1 companies in a global/distributed Network ?
Thanks for your feedback.
Best regards - Thierry
Hi Thierry,
the Integration Framework (aka B1iF) is heavily used in the area of subsidiary/branch etc. integration also in a global distributed networks. Every implementation has also customer specific challenges which can be solved by building your own integration scenarios. This is also the case in respect of 'stock consolidation" which the one or the other customer/partner probably might have designed already.
I hope this helps you!
Regards, Nicolas
Hi Miriam,
Thanks for this blog post! I’m actually trying to search different documentation regarding the integration options between B1 and SAP Ariba Buying. With SAP ERPs (ECC / S4) the integration of transactional (ie POs,etc) and master data is very straight forward with CIG.
However with SAP B1, I’m not sure of the options we have to integrate both transactional and master data for Ariba Buying. The few docs I found mention the integration of RFQs to Ariba, but nothing "out of the box" for POs / Buying integratoin.
Could you perhaps share some insights on what is possible in the P2O scenario? Can the B1iF be used for this?
Much appreciated!
Adi
Hi Adi,
for the integration of SAP Business One with SAP Ariba the Integration Framework (aka B1iF) offers scenario packages to support buyers and suppliers. Both come as templates because every customer has different requirements which can be adjusted.
In the packages mainly the standard transactional processes are available such as sending an purchase order (buyer) or receiving an order request (supplier) and more.
Regards, Nicolas
Hello friends,
I need to connect B1iF (netweaver) to S4HANA. How do I configure SLD in B1iF? Is there a SAP note? Now my B1iF points to Sap ECC and it works fine.
Thanks to all for the possible answers.
Regards, Pasquale
Hello Pasquale,
please check the Configuration/Administration guide as part of the product "Integration Framework for SME" (separate download is required).
In the section 'Setting Up the System Landscape' you get all necessary information on how to configure the SLD.
Regards, Nicolas
Hi Nicolas, Miriam,
Thank you for your valuable information regarding Integration Framework.
It is easy to find B1IF good training material related to calling SAP Business One objects and inbound HTTP CALL. However, I cannot find an
example/tutorial related to 'outbound HTTP CALL'
. Where can I find it please?
Thank you, Regards, Claudio
Hi Claudio,
when you go to "Integration Framework 2.0 - Essentials" you can find a document named "Example about sending attachments". This example uses HTTA as a receiver system to hand over a multipart message. Hope this helps.
Regards, Nicolas
Hi Nicolas, Miriam,
There is a way to auto export package scenario periodically?
Can I schedule auto export scenarios?
Can I implement a scenario that automatically exports other scenarios?
Regards
Pasquale
Hi Pasquale,
unfortunately there is no existing API calling option - please have a look to the online help for"Calling Options for the API Services".
But for sure you can design an integration scenario which will store the relevant files from the bizstore to your FTP or local directory. The scenario could run periodically,
You also could use an external tool which connects via webdav to the BizStore of the Integration Framework and downloads the relevant files.
Regards, Nicolas
Hi Nicolas, Miriam,
I'm working on B1iF 1.0 and with interal queue.
I have a scenario that creates 10 packets which it puts in a interal queue, for example: "my_queue" with this order pck1, pck2 ... pck10.
Each item in "my_queue" contains the data for an "insert into"
inside second scenario.
Sure that the first pck1 is read first?
Sure that the first pck10 is read last?
Is the logical handling of queued items FIFO?
Looking forward to your reply, thank you very much and good work
Hi Pasquale,
technically yes, what also depends on the scenario(s) who are consuming these queues. In case of parallel processing/consuming this scenario step this also matters. Please pay attention that sequential = true which is part of the scenario step design.
Regards, Nicolas
Goodmorning everyone.
Thanks for the previous support.
I ask you if there is a way to check that a queue is empty or not.
There is an code example in b1if?
Thanks a lot.
Hi Pasquale,
One way would be to use the Xcellerator Internal Document "dbqstatus". You will find the documentation in B1i Control Center / Development / XCL Reference.
Another way would be to check the content of DBQSTREAMS table of B1i database. But take care not to cause any database locks on this highly frequented used table while reading it!
Best regards,
Marcus
My goal is to make sure all my scenario queues are empty and send an call a new scenario.
Thanks a lot.
Best regards
Hi Pasquale,
Why should the scenario call itself?
It sounds more easier to have two scenario steps.
The first one would be timer triggered and runs every x minutes. It could check the db queue status and only if it's empty, it would call the other scenario step.
Best regards,
Marcus
Hello,
Thank you for all this information, it has been extremely helpful in my scenario development.
I am trying to create an SLD connection to an encrypted MySQL database. I have installed the MySQL JDBC driver, which works fine for unencrypted data retrieval. I also have the necessary SSL cert and key .pem files, but I simply don’t know how to apply them to the SLD or JDBC connection. If this is something anyone can assist me with, or direct me to an appropriate resource, I would greatly appreciate it.
Thank you,
Hi Daniel,
please check the documentation of the jdbc driver for the MySQL on how to setup such a connection - technically spoken only the jdbc driver connection url is in place to do so which is freely configurable in the SLD. There should be no obstacle on the part of the Integration Framework.
Regards, Nicolas
Dear Experts,
I need to append a line to an existing set of attachments via B1if. I do not want to update any field of the existing lines.
Example:
The attachments table ATC1 contains two lines (Line 1 and Line 2) having the same AbsEntry 1025.
I need to append a third line to this existing set of lines. I do not want to update any field of the two existing lines.
I cannot use the schema below, as it automatically overwrites the Date (attachment date) field.
Note: Using DTW template I can easily solve this issue using LineNum = 2.
How can I get the same result using Integration Framework?
Thank you, Claudio
We had a problem with all our Stock items connected to BoMs not being marked as purchase items. We wanted to be able to buy these itemsin one company from another company and the only solution was to delete the BoMs, mark the items as Purchase and then reinstall the BoMs. However, there are around 7000 BoMs so we couldn’t do it manually. I had a Utility written that would do this and have run it this weekend.
The problem is that the intercompany is now deleting the recreated BoMs as it seems to have held the delete process and both companies are deleting the BoMs in the other company. I have tried restoring the original backups but to no avail. I can't find where these delete commands are in the integration framework. Do you have any suggestions to clear these commands? At the moment I have disabled the Integration Service and the Event Sender Service so that they can operate without the BoMs being deleted
Miriam, great article
I checked in your links and cannot find the Integration Component Administrators Guide which shows the B1iF installation.
Pls advise
regards, Sotos Soteriou
Hi Sotos,
when you download B1iF you also get the Administrators Guide which also describes the installation process etc.
Regards, Nicolas
Good morning! I have a question and I don't know how to solve it, I need to connect a client with two independent servers, one in Spain and the other in China, in a single instance of Integration Framework, the issue so far that I have achieved is to connect to the Spanish server in the server where the Integration is, due to the urgency of invoices to the SII, however I do not achieve the connection between the Chinese server and the intercompany server, how do I achieve this connection of two separate instances in a single integration and above all how do I achieve the connection with the Event Sender without affecting the current connection for sending invoices... I'm quite confused on this topic and no matter how much I read I can't find a solution.
Has anyone made a similar connection?
Greetings
Quick question. We are looking to synch the MASTER DATA (Items) from SAP B1 back to our ECC system. Based on the examples, I do see that reverse flow exist (from SAP business suite to SAP B1), but do not see an option for initiating a API to post data from SAP B1 to SAP Business suite (for master data - Items).
Hi, only the synchronization of products between SAP ERP and SAP B1 is delivered as an out-of-the box integration scenario. If you want to switch the sender and receiver a new scenario has to be designed. The technical connection works the same, the mapping between SAP B1 and SAP ERP has to be designed in xslt. The incoming IDOC for the scenario SAP ERP -> SAP B1 could be used as an example for the "message schema". Regards, Nicolas