SAP Java Connector のインストール¶
SAP ERP (BAPI データソース) または SAP BW/SAP BI (BAPI アダプターを使用する多次元データソース) からデータを取得するには、SAP Java Connector 3.1 (SAP JCo) をインストールします。
この作業はいつでも実行できます。Denodo Platform のインストール直後でなくてもかまいません。
コネクターのインストール¶
以下の手順に従って、SAP JCo コネクターをインストールします。
Windows の場合、SAP JCo を利用するには、Denodo Platform をインストールしたコンピューターに、Visual Studio 2013 C/C++ ランタイムライブラリをインストールする必要があります。
このライブラリが存在しないか、不明な場合、以下の手順に従います。
https://support.microsoft.com/topic/update-for-visual-c-2013-redistributable-package-d8ccd6a5-4e26-c290-517b-8da6cfdf4f10 を開いて Microsoft Visual C++ 再頒布可能パッケージ をダウンロードします。
このページから file: vcredist_x64.exe をダウンロードします。利用しているオペレーティングシステムの言語に合わせてバージョンを選択します。
このファイルは、64 ビット版 Java 仮想マシン (Denodo Platform に含まれるもの) で動作する 64 ビットのオペレーティングシステムとアプリケーション用のファイルです。
ダウンロードしたファイルを実行して、インストールの指示に従います。
https://support.sap.com/en/product/connectors/jco.html に移動します。
Windows の場合、[Microsoft Windows and Windows Server] の [64-bit x86] プロセッサー用バージョンをダウンロードします。
Linux の場合、使用しているコンピューターのプロセッサー用バージョンをダウンロードします。
ダウンロードしたファイルを解凍します。
Administration Tool を使用して、管理者アカウントでログインします。
[File] メニュー > [Extensions management] をクリックします。
[Libraries] タブをクリックして、[Import] をクリックします。
新しいダイアログの [Resource type] で、[sapjco] を選択します。
[Version] で、アップロードするバージョンを選択します。
[Add] をクリックして、以下のファイルを選択します。
sapjco3.jar
Virtual DataPort が Windows で動作している場合、
sapjco3.dll
Virtual DataPort が Linux で動作している場合、
libsapjco3.so
複数のファイルを選択するには、Ctrl キーを押しながら各ファイルを選択します。
[OK] をクリックして、ファイルを Virtual DataPort にアップロードします。
ファイルのアップロードが完了したら、Virtual DataPort サーバーを再起動します。
Windows でのコネクターのテスト¶
Denodo Platform を Windows にインストールした場合、JCo コネクターに必要な依存関係がすべて揃っていることをテストするため、インストール先のコンピュータに接続し、コマンドラインを開いて以下のコマンドを実行します。
cd <DENODO_HOME>
cd extensions\thirdparty\sap-jco
..\..\..\jre\bin\java.exe -jar sapjco3.jar -stdout
以下のようなテキストが出力されます。
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
最後の 2 行に、sapjco3.jar ファイルと sapjco3.dll ファイルのパスが表示されます。「JCo library: not loaded, caused by java.lang.UnsatisfiedLinkError: ... Can't load IA 32-bit .dll on an AMD 64-bit platform」のようなテキストが表示されている場合、sapjco3.dll ファイルが 32 ビットバージョンであり、64 ビットバージョンのファイルをコピーする必要があることを意味します。
標準で付属する以外の Java Runtime Environment (JRE) を実行するように Virtual DataPort を構成している場合、その JRE を指定して前述のコマンドを実行して、実行時に SAP JCo コネクターが動作することを確認します。
Linux でのコネクターのテスト¶
Denodo Platform を Linux にインストールした場合、JCo コネクターに必要な依存関係がすべて揃っていることをテストするため、インストール先のコンピュータに接続し、コマンドラインを開いて以下のコマンドを実行します。
cd <DENODO_HOME>
cd extensions/thirdparty/sap-jco
../../../jre/bin/java -jar sapjco3.jar -stdout
以下のようなテキストが出力されます。
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
最後の 2 行に、sapjco3.jar ファイルと libsapjco3 ファイルのパスが表示されます。「JCo library: not loaded, caused by java.lang.UnsatisfiedLinkError: ... Can't load IA 32-bit .so on an AMD 64-bit platform」のようなテキストが表示されている場合、sapjco3.so ファイルが 32 ビットバージョンであり、64 ビットバージョンのファイルをコピーする必要があることを意味します。
標準で付属する以外の Java Runtime Environment (JRE) を実行するように Virtual DataPort を構成している場合、その JRE を指定して前述のコマンドを実行して、実行時に SAP JCo コネクターが動作することを確認します。
SAP で BAPI データソースを使用する権限の付与¶
BAPI が実行されている SAP にクエリする (すなわち BAPI データソースを作成する) 場合、権限オブジェクト S_RFC
を使用して、Virtual DataPort が SAP に接続するために使用するユーザーアカウントに、以下の関数へのアクセス権限を付与する必要があります。
RFCPING
RFC_GET_FUNCTION_INTERFACE
DDIF_FIELDINFO_GET
SYSTEM_RESET_RFC_SERVER (ベースビューの BAPI を実行した後に実行)
さらに、作成した各 BAPI ベースビューによって呼び出される BAPI へのアクセス権限を付与します。
SAP BW で多次元データソースを使用する権限の付与¶
通常、SAP システムは、ユーザーが呼び出し可能な関数を制限するように構成されています。
SAP BW にクエリする (すなわち多次元データソースを作成する) 場合、権限オブジェクト S_RFC
を使用して、Virtual DataPort が SAP BW に接続するために使用するユーザーアカウントに、以下の関数へのアクセス権限を付与する必要があります。
RFCPING
RFC_GET_FUNCTION_INTERFACE
DDIF_FIELDINFO_GET
SYSTEM_RESET_RFC
SYSTEM_RESET_RFC_SERVER
RFC_METADATA_GET
SAPJCO30 (SAP JCo 3.0.x コネクターを使用して接続する場合)
SAPJCO31 (SAP JCo 3.1.x コネクターを使用して接続する場合 - 推奨オプション)
Virtual DataPort は、イントロスペクションの際 (データソースを開いて SAP BW キューブをリストする際)、以下の BAPI を呼び出します。
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
「SAP BW 3.x (BAPI)」アダプターを使用して多次元データソースを含むビューに対してクエリを実行する際には、以下の BAPI を呼び出します。
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
「SAP BI 7.x (BAPI)」アダプターを使用して多次元データソースを含むビューに対してクエリを実行する際には、以下の BAPI を呼び出します。
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