Bizagi's built-in SAP connector provides the ability to interact with your SAP system and execute business functions, without the need for special coding.
This connector is officially SAP-certified (http://partneredge.sap.com/content/partnerfinder/search/partnerdetails.html?partnerid=0001587571), and it works with the SAP server by sending requests to it and by monitoring and responding to events that occur in the SAP server.
Bizagi integrates with SAP by sending requests (to query a customer record in a SAP table or to update an order document) and by receiving events from the SAP server (to be notified that a customer record has been updated). The connector creates a standard interface to the applications and data on the SAP server, so that Bizagi does not have to understand the lower-level details (the implementation of the application or the data structures) on the SAP server.
The connector supports SAP's BAPI integration interfaces:
BAPI (Business Application Programming) — BAPIs are the methods exposed by SAP business objects. This interface is used for real time queries and updates to and from the SAP system. BAPIs are SAP's recommended integration interface over RFCs (Remote Function Call).
Through the SAP connector, you configure your processes to invoke BAPI wrappers to either query, create or update records directly in SAP.
Integrate any of your SAP modules such as the Financial Accounting (FI), Sales and Distribution (SD), Material Management (MM), Human Resources (HR), or the Controlling module (CO), to name a few, in any part of your process: either from a button's click in the user interface or through a service task.
SAP integration is configured by using powerful graphical mapping features for SAP inputs and outputs, avoiding the need of programming:
Using Bizagi processes that integrate to SAP is a great approach to leverage your existing SAP systems.
To view a video and introduction about Bizagi SAP connector's approach and how it benefits Bimodal IT objectives, refer to this video: https://vimeo.com/146790374.
Additional benefits of integrating through SAP connector, instead of integrating for instance, through web services are:
1. The SAP connector features a powerful capability to configure error handling.
Through this option you may configure special routing and treatment for functional errors (SAP exceptions predefined by the BAPIs themselves).
2. The SAP connector authenticates directly with an authorized SAP user, instead of delegating security to your web service setup.
Often, security configuration for the web service setup requires more time to achieve adequately (i.e. setting an appropriate security level which is not too restrictive to cause issues, nor too permissive to be prone to vulnerabilities). Such configuration does not provide the same maintainability advantages.
3. The SAP connector offers enhanced performance due to the RFC connection it relies on, instead of going over HTTP/HTTPS.
Similarly, the direct RFC connection is commonly set through a more secure channel which can also rely on hardened measures (such as restricted ports).
Getting ready to integrate with SAP
In order to use the SAP connector feature, you will need to make sure you install the SAP.NET assemblies provided by SAP (as specified in the below sections).
SAP.NET assemblies are those from SAP's .NET Connector in its version 3.0 (official documentation on this library at http://help.sap.com/saphelp_dm40/helpdata/de/e9/23c80d66d08c4c8c044a3ea11ca90f/content.htm).
Getting the SAP.NET assemblies
The SAP.NET assemblies is requested from https://websmp205.sap-ag.de/public/connectors (authorized access by using your valid SAP credentials required).
You will need to explicitly download the SAP.NET assemblies for your system architecture (32-bit or 64-bit systems).
The assemblies needed are: sapnco.dll and sapnco_utils.dll version 3.0, which are available as both (32-bit and 64-bit).
Installing the SAP.NET assemblies
Once you have the 2 SAP.NET assemblies called sapnco.dll and sapnco_utils.dll, make sure you install them in your machine's global assembly cache (GAC).
For this, you may rely on .NET's gacutil tool (by using gacutil -i "[assembly]") to make sure these are finally located at the 4.0 .NET GAC (by default at C:\Windows\Microsoft .NET\assembly\GAC_32\ or C:\Windows\Microsoft .NET\assembly\GAC_64\).
In the image below, gacutil is used to install either 32-bit or 64-bit assemblies:
Once you have your assemblies installed, and if using a .NET runtime, run an iisreset.
If you wish to use gacutil, you will need to make sure this tool is installed.
Similarly to the gacutil's install options, note that you may use this tool's other switches to uninstall assemblies (-u parameter) or to list those installed ones (-l parameter).
For example, using gacutil -l "sapnco_utils" and gacutil -l "sapnco", as a checklist to review if these were correctly installed.
1. Supported SAP systems by this feature are:
•SAP R/3 installations (version 4.0B or higher).
•SAP ECC version 5.0 or 6.0 (ECC being the version superseding R/3).
What is important is that your system and infrastructure allows connectivity between Bizagi and SAP, based on SAP Remote Function Calls (RFC) and by relying on SAP Gateway configuration (i.e, port number 3300).
For other versions or editions not listed above, such as SAP Hana or SAP Business One (B1), the use of the SAP Connector is not supported.
In these cases, it is necessary to rely instead on the integration alternatives as recommended and supported by the vendor itself (SAP AG), which include the use of Web services or other APIs (e.g, DI API for Business One).
2. If your project is set up for teamwork collaboration, make sure that any team member working on this project who will be configuring integration with SAP, installs these SAP.NET assemblies as well in his/her machine's GAC.
3. If by any case, installing the SAP.NET assemblies into the machine's GAC is not possible, then you may copy and paste these assemblies into the paths specified below, but you will need to backup the assemblies before upgrading your Bizagi version (both for the Studio's installation and your project's version):
•At C:\Program files\Bizagi\Bizagi Studio\Studio\
For a .NET platform, for the processes execution:
4. If you are running your processes in a JEE platform (on WebSphere, Weblogic, JBoss), make sure you install the SAP connector for JEE platforms at the Bizagi Server as well.
The SAP connector for JEE platforms (called JCo) consists of a .jar file and an additional native library for the operating system (a .so file for *nix operating systems such as Linux, or a .dll for Windows OS).
All JCo required files are requested and downloaded from the same official SAP link at http://service.sap.com/connectors (authorized access by using your valid SAP credentials required).
Make sure you obtain the library that corresponds to your system architecture bits specification (i.e, 64-bit or 32-bit).
In summary, for a development environment running in a JEE platform, you will need to:
•Place the sapjco3.so (for *nix operating systems such as Linux) or the sapjco3.dll (for Windows OS) in your Bizagi Server, at <BIZAGI_JEE_PLUGIN_HOME>/BizagiBPMJEE/connectors/SAP/jco3/ (you may need to create this folder).
<BIZAGI_JEE_PLUGIN_HOME> is where your JEE Plugin is installed in your development environment (Bizagi Studio).
By default, this path is set as C:\BizagiJEE\[Bizagi_version]\.
•Place the sapjco-3.x.jar library in your JEE Application server's repository of libraries:
When using JBoss, place it at <JBOSS_HOME>\modules\system\layers\base\com\sap\jco\main\
<JBOSS_HOME> is where the bundled JBoss of your development environment is installed.
By default, this path is set as C:\BizagiJEE\[Bizagi_version]\jboss-eap-6.2
•Carry out additional configuration steps at your JEE Application server.
For JBoss, you will need to edit the module.xml located at <JBOSS_HOME>\modules\system\layers\base\com\sap\jco\main\ to include at the <resources> element this information: <resource-root path="sapjco3.x.jar"/>:
Then make sure you rename sapjco3.x.jar exactly how your jar file is named (as placed at <JBOSS_HOME>\modules\system\layers\base\com\sap\jco\main\)
Once you've made this change, make sure you re-publish your Work portal.
To install SAP connector (JCo) for a production or test environment (either a WebSphere, Weblogic or JBoss server), refer to the specific steps to configure the SAP connector when pre-configuring your JEE server to work with Bizagi Engine, as instructed at the System administration chapter.
In a development environment using JBoss (the bundled service provided in Bizagi Studio), there are no additional steps to carry out.
In a production environment using JBoss, you will need to add the environment variable -Djava.library.path, as instructed at the System administration chapter of Bizagi Engine.
What you need to do in Bizagi
Once you have installed the SAP.NET assemblies, in order to use Bizagi SAP connector, follow these steps:
1. Configure the connection to your SAP system.
In this step you define the connectivity details, making sure you use an authorized user having access your SAP BAPIs or RFC functions:
This is done from the external systems module in Bizagi Studio.
2. Configure in your Bizagi process, where you want to invoke your SAP BAPIs or RFC functions.
You may do this anywhere in the process.
For instance, via a business rule connecting to SAP (recommended, especially by relying on service tasks and an asynchronous treatment):
Or through the UI by setting an action that connects to SAP, from a particular button:
3. Configure the inputs, outputs and error handling for your SAP BAPI.
At this point you use the graphical mapping features in Bizagi's SAP Connector:
You will need to explicitly know what BAPIs or RFC functions you will invoke in SAP and the inputs, outputs and exceptions handled by it. This may require good expertise in using SAP (SAP Netweaver, SAP Logon).
Along with this, acknowledge which information you strictly require (import, export, or table parameters which are passed by reference) and what type of data these represent.
To see a typical example of how to integrate Bizagi with SAP through this connector, refer to the SAP integration example.
If you wish to integrate Bizagi with SAP via web services (i.e, using SAP PI), you may do so too and use standard HTTP or HTTPS ports for this type of integration.
This means integrating Bizagi with SAP via web services, in which case you use Bizagi's WS Connector instead of the SAP connector featured here.
To view an example for this scenario, refer to How to create a vendor in SAP from Bizagi.