Installing the SAP Java Connector¶
To retrieve data from SAP ERP (BAPI data sources) or from SAP BW / SAP BI (with multidimensional data sources with the BAPI adapter), install the SAP Java Connector 3.1 (SAP JCo).
You can do this at another time; you do not need to do it right after installing the Denodo Platform.
Installing the Connector¶
Follow these steps to install the SAP JCo connector:
On Windows, SAP JCo requires you to install the Visual Studio 2013 C/C++ runtime libraries on the computer in which the Denodo Platform is installed.
If this library is not present or you are unsure, follow these steps:
Go to https://support.microsoft.com/en-us/topic/update-for-visual-c-2013-redistributable-package-d8ccd6a5-4e26-c290-517b-8da6cfdf4f10 to download the Microsoft Visual C++ Redistributable Package.
In this page, download the file: vcredist_x64.exe. Select the version for the language of your operating system.
This is the file for 64-bit operating systems and applications that run with the 64-bit version of the Java Virtual Machine (the one included with the Denodo Platform).
Execute the downloaded file and follow the installation instructions.
Go to https://support.sap.com/en/product/connectors/jco.html.
For Windows, download the version for Microsoft Windows and Windows Server - 64-bit x86 processor.
For Linux, download the version for the processor of this computer.
Decompress the downloaded file
Log in with the Administration Tool with an administrator account.
Click the menu File > Extensions management.
Click the tab Libraries and then, click Import.
In the new dialog, in Resource type, select sapjco.
In Version, select the version you are going to upload.
Click Add and select these files:
sapjco3.jar
If Virtual DataPort runs on Windows,
sapjco3.dll
If Virtual DataPort runs on Linux,
libsapjco3.so
To select more than one file, hold the key Ctrl and select each file.
Click Ok to upload the file(s) to Virtual DataPort.
Restart the Virtual DataPort server after the files upload is completed.
Testing the Connector on Windows¶
If the Denodo Platform is installed on Windows, connect to the computer where it is installed, open a command line and execute the following commands. This is to test that the JCo connector has all the dependencies it needs.
cd <DENODO_HOME>
cd extensions\thirdparty\sap-jco
..\..\..\jre\bin\java.exe -jar sapjco3.jar -stdout
You should see something like this:
Java Runtime:
Operating System: Windows 10 10.0 for amd64
Java VM: 11.0.8 AdoptOpenJDK
Default charset: windows-1252
Versions:
JCo API: 3.1.3 (2020-09-18)
JCo middleware: JavaRfc 2.10.1
JCo library: 753.710
Library Paths:
JCo archive: C:\Denodo\Denodo Platform-9\extensions\thirdparty\lib\sap-jco-connector\sapjco3.jar
JCo library: C:\Denodo\Denodo Platform-9\extensions\thirdparty\lib\sap-jco-connector\sapjco3.dll
In the last two lines, you should see the path to the files sapjco3.jar and sapjco3.dll. If you see something like “JCo library: not loaded, caused by java.lang.UnsatisfiedLinkError: … Can’t load IA 32-bit .dll on an AMD 64-bit platform” it means that the file sapjco3.dll is the 32-bit version of the file and you should copy the 64-bit one.
If you configured Virtual DataPort to run a Java Runtime Environment (JRE) that is not the one included out of the box, execute this command with that JRE to make sure that at runtime, the SAP JCo connector will work.
Testing the Connector on Linux¶
If the Denodo Platform is installed on Linux, connect to the computer where it is installed, open a command line and execute the following commands. This is to test that the JCo connector has all the dependencies it needs.
cd <DENODO_HOME>
cd extensions/thirdparty/sap-jco
../../../jre/bin/java -jar sapjco3.jar -stdout
You should see something like this:
Java Runtime:
Operating System: Linux 4.14.186-110.268.amzn1.x86_64 for amd64
Java VM: 11.0.8 AdoptOpenJDK
Default charset: UTF-8
Versions:
JCo API: 3.1.3 (2020-09-18)
JCo middleware: JavaRfc 2.10.1
JCo library: 753.710
Library Paths:
JCo archive: /opt/denodo/denodo-platform-9/extensions/thirdparty/lib/sap-jco-connector/sapjco3.jar
JCo library: /opt/denodo/denodo-platform-9/extensions/thirdparty/lib/sap-jco-connector/libsapjco3.so
In the last two lines, you should see the path to the files sapjco3.jar and libsapjco3.so. If you see something like “JCo library: not loaded, caused by java.lang.UnsatisfiedLinkError: … Can’t load IA 32-bit .so on an AMD 64-bit platform” it means that the file sapjco3.so is the 32-bit version of the file and you should copy the 64-bit one.
If you configured Virtual DataPort to run a Java Runtime Environment (JRE) that is not the one included out of the box, execute this command with that JRE to make sure that at runtime, the SAP JCo connector will work.
Grant Privileges in SAP for BAPI Data Sources¶
If you are going to query SAP executing BAPIs (i.e. create BAPI data
sources), you have to grant access to the following functions, via the
authorization object S_RFC
, to the user account used by Virtual
DataPort to connect to SAP:
RFCPING
RFC_GET_FUNCTION_INTERFACE
DDIF_FIELDINFO_GET
SYSTEM_RESET_RFC_SERVER (executed after running the BAPI of a base view)
In addition, grant access to the BAPI invoked by each BAPI base view you create.
Grant Privileges in SAP BW for Multidimensional Data Sources¶
Usually, SAP systems are configured to limit the functions a user can invoke.
If you are going to query SAP BW (i.e. create multidimensional data sources), you have to grant access to the
following functions, via the authorization object S_RFC
, to the user
account used by Virtual DataPort to connect to SAP BW:
RFCPING
RFC_GET_FUNCTION_INTERFACE
DDIF_FIELDINFO_GET
SYSTEM_RESET_RFC
SYSTEM_RESET_RFC_SERVER
RFC_METADATA_GET
SAPJCO30 (when connecting with the connector SAP JCo 3.0.x)
SAPJCO31 (when connecting with the connector SAP JCo 3.1.x - recommended option)
Virtual DataPort invokes these BAPIs at introspection time (when opening the data source to list the SAP BW cubes):
BAPI_MDPROVIDER_GET_CUBES
BAPI_MDPROVIDER_GET_VARIABLES
BAPI_MDPROVIDER_GET_MEASURES
BAPI_MDPROVIDER_GET_DIMENSIONS
BAPI_MDPROVIDER_GET_LEVELS
BAPI_MDPROVIDER_GET_PROPERTIES
BAPI_MDPROVIDER_GET_HIERARCHYS
RSOBJS_GET_NODES
RSOBJS_GET_NODES_X
RSZ_X_COMPONENT_GET
When querying views that involve a multidimensional data source with the “SAP BW 3.x (BAPI)” adapter, it invokes these:
BAPI_MDDATASET_CREATE_OBJECT
BAPI_MDDATASET_GET_AXIS_INFO
BAPI_MDDATASET_GET_AXIS_DATA
BAPI_MDDATASET_GET_CELL_DATA
BAPI_MDDATASET_SELECT_DATA
BAPI_MDDATASET_DELETE_OBJECT
BAPI_MDPROVIDER_GET_MEMBERS
When querying views that involve a multidimensional data source with the “SAP BI 7.x (BAPI)” adapter, it invokes these:
RSR_MDX_CREATE_OBJECT
RSR_MDX_GET_AXIS_INFO
RSR_MDX_GET_AXIS_DATA
RSR_MDX_GET_CELL_DATA
BAPI_MDDATASET_SELECT_DATA
BAPI_MDDATASET_DELETE_OBJECT
BAPI_MDPROVIDER_GET_MEMBERS