BAPI ソース

Virtual DataPort では、SAP BAPI (Business Application Programming Interface) を呼び出して、SAP ERP をはじめとする SAP アプリケーションに保存されているデータを取得できます。

重要

どの BAPI データソースも作成していない段階で、『Denodo Platform インストールガイド』の以下の節に説明がある手順を実行しておきます。

  1. SAP JCo コネクターのインストール

  2. SAP で BAPI データソースを使用する権限の付与

新しい BAPI データソースを作成するには、[Server Explorer] で右クリックして、[New] > [Data source] > [BAPI] の順にクリックします。

新しい BAPI データソースを作成するためのダイアログが表示されます。

Creating a new BAPI data source

新しい BAPI データソースの作成

[Connection] タブで以下の詳細情報を入力します。

  • Name: 新しいデータソースの名前。

  • System Name: SAP ERP の SAP システム ID。

  • Client ID: クライアントの ID。

  • SAP router (オプション): SAP ルート文字列は、2 つのホストの間に必要なコネクションのステーションを記述します。この文字列の構文は以下のとおりです。

    (/H/host/S/service/W/pass)*

    つまり、 /H/host/S/service/W/pass という形式のサブ文字列を任意の数だけ記述します。

    このルートには、各 SAP ルーターおよびターゲットサーバーに接続するためのサブ文字列を記述します。各サブ文字列には、このルートで各 SAP ルーターがコネクションをセットアップするために必要な情報として、ホスト名とポート名のほか、指定されていればパスワードがあります。

    • /H/: ホスト名を示します。

    • /S/ (オプション): サービス (ポート) を示します。デフォルト値は 3299 です。

    • /W/ (オプション): ルート上の前後の SAP ルーターとの間のコネクションのパスワードを示します。デフォルト値は "" (パスワードなし) です。

  • Language (オプション): SAP サーバーとの間で確立するコネクションの言語。

  • Connection type:

    • コネクションタイプが [Direct] の場合、以下の値を入力します。

      1. Host: SAP が動作しているホスト。

      2. System Number: 同じホスト上で動作している複数の SAP インスタンスを区別する 2 桁の数字。

    • コネクションタイプが [Logon load balanced] の場合、以下の値を入力します。

      1. Message Host: 適切なアプリケーションサーバーを選択するためのデータを提供する SAP サーバーのホスト。

      2. Message Service (オプション): SAP メッセージサーバーがコネクションをリッスンするポート。

      3. SID: SAP システムのシステム ID。

      4. Logon group (オプション): SAP アプリケーションサーバーのグループの名前。

  • Pass-through session credentials: 選択した場合は、クライアントがこのデータソースを使用するビューにクエリを実行すると、Virtual DataPort は、[User name] フィールドと [Password] フィールドの値ではなく、このユーザーの資格情報を使用して BAPI を実行します。[User name] フィールドと [Password] フィールドの値は、このデータソースから基本ビューを作成する際に、基本ビューの SAP BAPI に関する情報を取得するために SAP に接続する目的でのみ使用されます。

    このオプションを使用するデータソースを作成し、Virtual DataPort サーバーへの接続に使用した資格情報とは別の資格情報でそのデータソースのビューにクエリを実行する場合は、 USERNAMEUSERPASSWORD の各パラメーターをクエリの CONTEXT に追加します。この 2 つのパラメーターは、[Pass-through session credentials] オプションをチェックして作成したデータソースでのみ考慮されます。

    たとえば、このオプションを有効にして BAPI データソースから作成した view1 に以下を実行するとします。

    SELECT *
    FROM view1
    CONTEXT(USERNAME = 'admin', PASSWORD = 'd4GvpKA5BiwoGUFrnH92DNq5TTNKWw58I86PVH2tQIs/q1RH9CkCoJj57NnQUlmvgvvVnBvlaH8NFSDM0x5fWCJiAvyia70oxiUWbToKkHl3ztgH1hZLcQiqkpXT/oYd' ENCRYPTED)
    

    Virtual DataPort サーバーは、ユーザー名「admin」、パスワード「password」を使用して SAP に接続します。Virtual DataPort サーバーとの接続でユーザーが使用した資格情報は無視されます。

    トークン ENCRYPTED を追加して、暗号化したパスワードを入力することは必須です。パスワードを暗号化するには、 ENCRYPT_PASSWORD ステートメントを使用します。以下に例を示します。

    ENCRYPT_PASSWORD 'my_secret_password';
    

    データソースがこのオプションを指定して作成されている場合、Virtual DataPort サーバーでは、ユーザーとパスワードのペアごとにコネクションプールが作成されます。当初は、過剰な数のコネクションが作成されないように、これらのプールに存在するコネクションは 1 つのみです。プールごとの最大コネクション数は、コネクションプールの [Maximum number of active connections] フィールドの値です。

    警告

    パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、付録「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。

  • User NamePassword: SAP ERP にアクセスするための資格情報。

  • Connection pool: クリックして [Connections Pool Configuration] ダイアログを開き、SAP ERP へのアクセスを最適化するために Virtual DataPort で使用されるコネクションプールを構成します。

    • Maximum number of active connections: プールに置くことができるアクティブなコネクションの最大数。

    • Maximum number of idle connections: プールにアイドル状態で置くことができるコネクションの最大数。

    • Maximum waiting time (milliseconds): プールからコネクションが取得されるまでスレッドが待機する最大時間。この制限に到達すると、そのコネクションを要求したクエリは失敗します。

    • Minimum time between evictions (milliseconds): プールでアイドル状態になっているコネクションが閉じられてプールから削除されるまでの最小時間。

    • Minimum time before eviction (milliseconds): Virtual DataPort サーバーは、プールでアイドル状態にあるコネクションを定期的に確認し、それを閉じます。このパラメーターは、この確認が実施される最小間隔を示します。

[Advanced] タブでは、Virtual DataPort サーバーと SAP との間でセキュアネットワークコミュニケーション (SNC) を有効化できます。SNC は、SAP のデフォルトのセキュリティオプションより強力な認証と暗号化メカニズムを提供します。

  1. [Enable SNC] を選択します。

  2. SAP 暗号ライブラリへのパスを入力します。Virtual DataPort サーバーが Windows 上で動作している場合、このパスは sapcrypto.dll ファイルへのパスです。Linux 上で動作している場合は、 libsapcrypto.so へのパスです。このライブラリは、SAP の Web サイトからダウンロードできます。

  3. [Partner name] に、SAP サーバーの識別名を入力します。

  4. [Security level] を選択します。SAP には 3 つの構成レベルがあるほか、以下の各オプションが用意されています。

    1. Use the value from snc/data_protection/use: SAP サーバーで設定されているデフォルトのセキュリティレベルを使用します。

    2. Use the value from snc/data_protection/max: SAP サーバーに用意されている最高のセキュリティレベルを使用します。

[Metadata] タブでは、データソースの格納先フォルダーと説明を設定します。

データソースを編集する際、 image1 ボタンをクリックすると、その所有者も変更できます。

[Save] をクリックして、データソースを作成します。

データソースを作成した後、[Create base view] をクリックして、基本ビューの作成を開始します。

Creating a BAPI base view

BAPI の基本ビューの作成

このダイアログで、BAPI の名前を入力して [Ok] をクリックします。SAP に対してデータの挿入、変更、削除を実行する BAPI の場合は、[Commit after BAPI execution] チェックボックスをチェックします。これにより、この基本ビューにクエリを実行すると、Virtual DataPort によって、この基本ビューの BAPI が 実行された後 で、BAPI の BAPI_TRANSACTION_COMMIT が実行されます。

この基本ビューの BAPI を実行してもデータが変更されない場合は、このチェックボックスを チェックしないでください 。このようにすることで、この基本ビューにクエリを実行するたびに Virtual DataPort で実行される BAPI の数が 2 つではなく、1 つになるので、SAP に対するオーバーヘッドが少なくなります。

[Ok] をクリックすると、BAPI を呼び出したことによって生成されたスキーマが表示されます。ここで、この新しいビューとそのフィールドの名前を変更できます。その後で [Save] (image3) をクリックするとビューが作成されます。

作成済みの基本ビューの [Commit after BAPI execution] オプションを変更する場合は、そのビューを開いて [Edit]、[Source refresh] の順にクリックします。新しい SAP 基本ビューを作成したときと同じダイアログが表示されます。