BAPI ソース¶
Virtual DataPort では、SAP BAPI (Business Application Programming Interface) を呼び出して、SAP ERP をはじめとする SAP アプリケーションに保存されているデータを取得できます。
初めて BAPI データソースを作成する場合は、「 SAP Java Connector のインストール 」ページの手順の後に同じページの「 SAP で BAPI データソースを使用する権限の付与 」のセクションの手順に従います。SAP JcO コネクターをすでにインストールしている場合、再インストールする必要はありません。多次元データソースがある場合、このコネクターはすでにインストールされています。
新しい BAPI データソースを作成するには、[Server Explorer] で右クリックして、[New] > [Data source] > [BAPI] の順にクリックします。
新しい BAPI データソースを作成するためのダイアログが表示されます。

新しい 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] の場合、以下の値を入力します。
Host: SAP が動作しているホスト。
System Number: 同じホスト上で動作している複数の SAP インスタンスを区別する 2 桁の数字。
コネクションタイプが [Logon load balanced] の場合、以下の値を入力します。
Message Host: 適切なアプリケーションサーバーを選択するためのデータを提供する SAP サーバーのホスト。
Message Service (オプション): SAP メッセージサーバーがコネクションをリッスンするポート。
SID: SAP システムのシステム ID。
Logon group (オプション): SAP アプリケーションサーバーのグループの名前。
Authentication: オプションを以下に示します。
Use login and password: データソースは、ユーザーが入力したログインとパスワードを使用して SAP に接続します。
Use Kerberos: データソースは、Kerberos 認証を使用して SAP Web サーバーにログインすることで、データソースが取得する「SAP ログインチケット」を使用して SAP に接続します。
Use Pass-through session credentials: 選択すると、このデータソースを使用するビューにクライアントがクエリを実行するとき、Virtual DataPort ではユーザーの資格情報を使用して BAPI を実行します。動作は、選択した認証方法によって変わります。
アプリケーションが Kerberos 認証を使用して Virtual DataPort に接続する場合、データソースは該当のユーザーに代わって SAP Web サーバーに接続するための Kerberos チケットを要求し、SAP への接続に使用される SAP ログインチケットを取得します。
アプリケーションがログインとパスワードを使用して Virtual DataPort に接続すると、データソースはこのログインとパスワードを使用して SAP に接続します。このシナリオに対して Kerberos 認証を強制するには、[This data source requires Kerberos authentication] を選択します。データソースは、ログインとパスワードを使用して Kerberos チケットを取得して SAP Web サーバーに接続し、SAP への接続に使用する SAP ログインチケットを取得します。
[Use Pass-through session credentials] を使用するデータソースを作成し、Virtual DataPort サーバーへの接続に使用した資格情報とは別の資格情報でそのデータソースのビューにクエリを実行する場合は、
USERNAME
とUSERPASSWORD
の各パラメータをクエリのCONTEXT
に追加します。この 2 つのパラメータは、[Pass-through session credentials] オプションをチェックして作成したデータソースでのみ考慮されます。たとえば、このオプションを有効にして BAPI データソースから作成した
view1
に以下を実行するとします。SELECT * FROM view1 CONTEXT(USERNAME = 'admin', PASSWORD = 'd4GvpKA5BiwoGUFrnH92DNq5TTNKWw58I86PVH2tQIs/q1RH9CkCoJj57NnQUlmvgvvVnBvlaH8NFSDM0x5fWCJiAvyia70oxiUWbToKkHl3ztgH1hZLcQiqkpXT/oYd' ENCRYPTED)
データソースは、ユーザー名「admin」、パスワード「password」を使用して SAP に接続します。Virtual DataPort サーバーとの接続でユーザーが使用した資格情報は無視されます。
トークン
ENCRYPTED
を追加して、暗号化したパスワードを入力することは必須です。パスワードを暗号化するには、ENCRYPT_PASSWORD
ステートメントを使用します。以下に例を示します。ENCRYPT_PASSWORD 'my_secret_password';
データソースがこのオプションを指定して作成されている場合、Virtual DataPort サーバーでは、ユーザーとパスワードのペアごとにコネクションプールが作成されます。当初は、過剰な数のコネクションが作成されないように、これらのプールに存在するコネクションは 1 つのみです。プールごとの最大コネクション数は、コネクションプールの [Maximum number of active connections] フィールドの値です。
警告
パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、付録「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。
Credentials vault: この認証では、 資格情報ボールト から取得した資格情報を使用してデータベースに接続します。選択した認証方法 (ログイン/パスワードまたは Kerberos) が使用されます。これらの認証には以下の 2 種類の構成があります。
Single secret: 使用する 資格情報ボールト で、シングルシークレットに資格情報が保存されている場合 (例: CyberArk や AWS Secrets Manager)。この構成を選択した場合は、目的のアカウント向けに資格情報ボールトに保存されている アカウント名 を入力します。
BAPI データソース: 「シングルシークレットを使用するパスワードボールトから資格情報を取得」¶
One secret per field: 使用する 資格情報ボールト で各資格情報が別々のシークレットに保存されている場合 (Azure Key Vault)。これを選択した場合は、値を 資格情報ボールト から取得するかどうかを指定する各フィールドを構成し、状況に応じてそのシークレットの名前または値を入力します。
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 のデフォルトのセキュリティオプションより強力な認証と暗号化メカニズムを提供します。
[Enable SNC] を選択します。
SAP 暗号ライブラリへのパスを入力します。Virtual DataPort サーバーが Windows 上で動作している場合、このパスは
sapcrypto.dll
ファイルへのパスです。Linux 上で動作している場合は、libsapcrypto.so
へのパスです。このライブラリは、SAP の Web サイトからダウンロードできます。[Partner name] に、SAP サーバーの識別名を入力します。
[Security level] を選択します。SAP には 3 つの構成レベルがあるほか、以下の各オプションが用意されています。
Use the value from snc/data_protection/use: SAP サーバーで設定されているデフォルトのセキュリティレベルを使用します。
Use the value from snc/data_protection/max: SAP サーバーに用意されている最高のセキュリティレベルを使用します。
[Metadata] タブでは、データソースの格納先フォルダと説明を設定します。
データソースを編集する際、 ボタンをクリックすると、その所有者も変更できます。
[Save] をクリックして、データソースを作成します。
データソースを作成した後、[Create 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] () をクリックするとビューが作成されます。
作成済みの基本ビューの [Commit after BAPI execution] オプションを変更する場合は、そのビューを開いて [Edit]、[Source refresh] の順にクリックします。Design Studio では、新しい SAP 基本ビューを作成したときと同じダイアログが表示されます。