SAP Gateway
SAP Gateway コネクタを使用すると、SAP Gateway データベースに対して、挿入、削除、更新、読み取りオペレーションを実行できます。
サポート対象のバージョン
このコネクタは、SAP Gateway API を使用して、ゲートウェイを使用する SAP サービスへの双方向アクセスを可能にします。サポートされている SAP エディションは次のとおりです。
- S/4 HANA クラウド
- S/4 HANA
- SAP ERP
- SAP Gateway API をサポートするその他の SAP エディション
始める前に
SAP Gateway コネクタを使用する前に、次の作業を行います。
- Google Cloud プロジェクトで次の操作を行います。
- ネットワーク接続が設定されていることを確認します。ネットワーク パターンの詳細については、ネットワーク接続をご覧ください。
- コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
- コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。
- 次のサービスを有効にします。
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
サービスを有効にする方法については、サービスを有効にするをご覧ください。
以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。
S/4HANA On-Premise で SAP OData サービスを構成する
S/4HANA On-Premise で SAP OData サービスを構成するには、次のタスクを行います。
- ICM サービスを有効にする
- SAP Gateway を有効にする
- OData サービスを有効にする
- SAP サーバーで有効な OData サービスをテストする
ICM サービスを有効にする
SAP OData サービスは、HTTP または HTTPS プロトコル経由で機能します。したがって、Internet Communication Manager(ICM)で関連するサービスが有効になっていることを確認してください。HTTPS を使用して、転送中のデータを保護します。
- トランザクション SMICM に移動します。
- [サービス] に移動します。
- [サービス] > [作成] をクリックします。
- 新しいサービスを定義します。
- HTTP プロトコルと HTTPS プロトコルの残りのパラメータを設定します。
サービスポートを定義すると、一部のパラメータは SAP システムに基づいて事前入力されます。
SAP Gateway を有効にする
SAP Gateway を有効にするには、次の操作を行います。
- トランザクション SPRO に移動し、[SAP 参照 IMG] を選択します。
- SAP NetWeaver > SAP Gateway > OData チャネル > 構成 > ユーザー設定 > 接続設定 > SAP Gateway の有効化または無効化 ノードを展開し、右クリックして [アクティビティを編集] を選択します。
- [Activate] をクリックします。ダイアログに [SAP Gateway is currently active] というメッセージが表示された場合は、[キャンセル] をクリックします。
OData サービスを有効にする
OData サービスを有効にするには、次の操作を行います。
- トランザクション SICF に移動します。
- [実行] をクリックするか、F8 を押します。
- 選択画面で [フィルタ] をスキップ。
- ツリーノード default_host > sap > opu > OData に移動して、すべての OData(V2)サービスを有効にします。
- 個々のサービスを有効にするには、ツリー内の対応するノードに移動します。
- OData サービスノードを右クリックして、[有効にする] を選択します。
SAP サーバーで有効化された OData サービスをテストする
SAP Gateway クライアント ツールを使用して OData リクエストを実行します。
次のトランザクションを呼び出してツールを開始します。/n/IWFND/GW_CLIENT
- OData リクエスト URI を指定します。
- HTTP メソッド、プロトコル(HTTP または HTTPS)、リクエスト ヘッダー、リクエスト本文を選択します。
- 必要なリクエスト データをすべて入力したら、[実行] をクリックしてリクエストを送信します。
実行後、レスポンス ヘッダーとレスポンス データが表示されます。
S/4HANA Cloud で SAP OData サービスを構成する
S/4HANA Cloud で SAP OData Service を構成するには、次の操作を行います。
- コミュニケーション ユーザーを作成する
- コミュニケーション システムを作成する
- 通信設定を作成する
コミュニケーション ユーザーを作成する
通信ユーザーは、外部 OData サービス呼び出しに使用される特別なタイプの技術ユーザーです。外部システムとの SAP 通信にのみ使用され、通信ユーザーを使用して SAP GUI にログオンすることはできません。Maintain Communication Users アプリを使用すると、これらの設定を Cloud で定義できます。
- [Maintain Communication Users] アプリに移動します。
- [新規] をクリックして新しいユーザーを作成します。
- ユーザーのユーザー名と説明を入力します。
- パスワードを入力します。 propose password を使用してパスワードを生成します。
- [作成] をクリックします。
コミュニケーション システムを作成する
通信システムは、通信パートナーを表すシステムの仕様と、通信に必要なすべての技術情報(ホスト名/IP アドレス、ID、ユーザー情報、証明書など)です。S/4HANA Cloud システムでは、これらのエンティティは外部通信に必要です。通信システム アプリを使用すると、これらの設定を Cloud で定義できます。
- Communication Systems アプリに移動します。
- [新規] をクリックして、新しい通信システムを作成します。
- システム ID とシステム名を入力します。
- [+] をクリックして、作成したコミュニケーション ユーザーをインバウンド コミュニケーションに追加します。連絡先のユーザーの詳細を入力します。
- [保存] をクリックします。
インバウンド通信とは、通信パートナーが定義済みシステムを使用して外部から SAP S/4HANA システムを呼び出すことを意味します。
通信設定を作成する
通信の調整については、 通信の調整をご覧ください。
- Communication Arrangements アプリに移動します。
- [新規] をクリックして、新しいコミュニケーション アレンジメントを作成します。
- コミュニケーション シナリオを選択し、アレンジ名を入力して [作成] をクリックします。
- 通信システムを追加し、この通信設定で使用する通信ユーザーを選択します。
- OData サービスを呼び出す URL は、コミュニケーションの設定で次の形式で確認できます。https://
-api.s4hana.ondemand.com/sap/opu/odata/sap/ - [保存] をクリックします。
接続の構成
コネクタを構成するには、データソース(バックエンド システム)への接続を作成する必要があります。接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。
- Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。
- [+ 新規作成] をクリックして [接続の作成] ページを開きます。
- [ロケーション] セクションで、接続のロケーションを選択します。
- リージョン: プルダウン リストからロケーションを選択します
サポートされているすべてのリージョンの一覧については、ロケーションをご覧ください。
- [NEXT] をクリックします。
- リージョン: プルダウン リストからロケーションを選択します
- [接続の詳細] セクションで、次の操作を行います。
- Connector: 使用可能なコネクタのプルダウン リストから [SAP Gateway] を選択します。
- コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
- [接続名] フィールドに、接続インスタンスの名前を入力します。
接続名は次の条件を満たす必要があります。
- 接続名には英字、数字、ハイフンを使用できます。
- 文字は小文字のみを使用できます。
- 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
- 接続名は 49 文字以内で指定してください。
- イベント サブスクリプションをサポートするコネクタの場合、接続名の先頭に接頭辞「goog」は使用できません。
- 必要に応じて、接続インスタンスの [説明] を入力します。
- サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
- イベント サブスクリプションの接続を使用するには、[イベント サブスクリプションを有効にする] を選択します。これを選択すると、次のオプションが表示されます。
- エンティティとアクションを使用したイベント サブスクリプションを有効にする: このオプションを選択すると、イベント サブスクリプションとコネクタ オペレーション(エンティティとアクション)の両方に対して接続が使用されます。
- イベント サブスクリプションのみを有効にする: イベント サブスクリプションに対してのみ接続を使用するには、このオプションを選択します。このオプションを選択した場合は、[次へ] をクリックして、イベント サブスクリプションを構成します。
- Namespace: データを取得するサービスの名前空間を指定します。これは、URL でサービスが指定されていない場合に必要です。
- Service: データを取得するサービスを指定します。これは、URL でサービスが指定されていない場合に必要です。
- CustomUrlParams: HTTP リクエストに含まれるカスタムクエリ文字列パラメータを指定します。パラメータは、
field1=value1&field2=value2
の形式のクエリ文字列としてエンコードする必要があります。クエリ文字列の値は、URL エンコードされている必要があります。 - Data Format: データを取得するデータ形式。XML または JSON を選択します。
- 表示名を使用する: SAP ラベルを使用するかどうかを決定するブール値。
- 必要に応じて、接続ノードの設定を構成します。
- ノードの最小数: 接続ノードの最小数を入力します。
- ノードの最大数: 接続ノードの最大数を入力します。
ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。
- 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
- [NEXT] をクリックします。
- [Destinations] セクションで、SAP Gateway 環境の URL または OData サービスの完全な URL を設定します。形式の例は
${ENVIRONMENT_URL}/sap/opu/odata/${NAMESPACE}/${SERVICE}/
、URL の例はhttps://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/
です。CustomUrlParams プロパティを使用してプロパティを追加します。- 宛先の種類: 宛先の種類を選択します。
- リストから [ホストアドレス] を選択し、宛先のホスト名または IP アドレスを指定します。
- バックエンド システムへのプライベート接続を確立する場合は、リストからエンドポイント アタッチメントを選択し、次にエンドポイント アタッチメントリストから必要なエンドポイント アタッチメントを選択します。
セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。
他の宛先を入力するには、[+ 宛先を追加] をクリックします。
- [NEXT] をクリックします。
- 宛先の種類: 宛先の種類を選択します。
-
[認証] セクションで、認証の詳細を入力します。
- [認証タイプ] を選択し、関連する詳細を入力します。
SAP Gateway 接続でサポートされる認証タイプは、次のとおりです。
- ユーザー名とパスワードを指定する
- Anonymous
- [NEXT] をクリックします。
これらの認証タイプの構成方法については、認証を構成するをご覧ください。
- [認証タイプ] を選択し、関連する詳細を入力します。
- Review: 接続と認証の詳細を確認します。
- [作成] をクリックします。
認証を構成する
使用する認証に基づいて詳細を入力します。
-
ユーザー名とパスワード
- ユーザー名: コネクタのユーザー名
- パスワード: コネクタに関連付けられたパスワードを含む Secret Manager の Secret。
-
Anonymous
匿名ログインを使用する場合は、[Not Available] を選択します。
- API Key: 現在認証されているユーザーの API キー。
イベント サブスクリプションを構成する
イベント サブスクリプションを有効にしている場合は、[イベント サブスクリプションの詳細] セクションに次の値を入力します。
- イベント リスナーに次のいずれかの認証タイプを選択します。
- Google 認証このオプションを有効にする場合、JSON Web Token を使用して認証するの手順に沿って、ABAP SDK の認証を構成します。また、サービス アカウントに、アクセス トークンが認証に使用される roles/connectors.listener ロールがあることを確認します。
- API キー認証このオプションを選択する場合は、API キーを作成して、Secret Manager シークレットとしてキーを保存している必要があります。詳細については、API キーを作成するをご覧ください。
- イベントタイプのフィールド名を入力します。このフィールドは、受信イベント リクエストに関連付けられているイベントのタイプを識別します。
{ "event_type": "user.created", ... // other request fields ... }
- バックエンド アプリケーションと接続間を安全に接続するには、[プライベート接続を有効にする] を選択します。このオプションを選択した場合は、接続の作成後に追加の構成手順を実行する必要があります。詳細については、イベント サブスクリプションのプライベート接続をご覧ください。
- デッドレター構成を入力します。デッドレターを構成すると、指定された Pub/Sub トピックに未処理のイベントが書き込まれます。次の詳細情報を入力します。
- デッドレター プロジェクト ID: デッドレター Pub/Sub トピックを構成した Google Cloud プロジェクト ID。
- デッドレター トピック: 未処理イベントの詳細を書き込む Pub/Sub トピック。
接続構成のサンプル
このセクションでは、SAP Gateway コネクタを作成するときに構成するさまざまなフィールドの値の例を示します。
基本認証 - 接続タイプ
フィールド名 | 詳細 |
---|---|
リージョン | us-central1 |
コネクタ | SAP Gateway コネクタ |
Connector Version | 1 |
コネクタ名 | sapgateway-basicauth-conn |
サービス アカウント | SERVICE_ACCOUNT-compute@developer.gserviceaccount.com |
データ形式 | JSON |
詳細レベル | 5 |
ホストアドレス | http://192.0.2.0/sap/opu/odata/sap/HOST_ADDRESS |
認証: | ユーザー パスワード |
ユーザー名 | ユーザー名 |
パスワード | パスワード |
バージョン | 1 |
API トークン - 接続タイプ
フィールド名 | 詳細 |
---|---|
リージョン | us-central1 |
コネクタ | SAP Gateway コネクタ |
Connector Version | 1 |
コネクタ名 | sapgateway-api-token-conn |
サービス アカウント | SERVICE_ACCOUNT-compute@developer.gserviceaccount.com |
データ形式 | JSON |
詳細レベル | 5 |
ホストアドレス | http://192.0.2.0/sap/opu/odata/sap/HOST_ADDRESS |
API キー | API_KEY-example-pet-store.com |
バージョン | 1 |
プロキシ - 接続タイプ
フィールド名 | 詳細 |
---|---|
リージョン | us-central1 |
コネクタ | SAP Gateway コネクタ |
Connector Version | 1 |
コネクタ名 | sapgateway-basicauth-conn |
サービス アカウント | SERVICE_ACCOUNT-compute@developer.gserviceaccount.com |
データ形式 | JSON |
詳細レベル | 5 |
ホストアドレス | http://192.0.2.0/sap/opu/odata/sap/HOST_ADDRESS |
データ形式: | JSON |
詳細レベル: | 5 |
プロキシ | True |
Proxy SSL Type | 自動 |
プロキシ サーバー | 34.148.1.XX:XXXX |
ホストアドレス: | http://192.0.2.0/sap/opu/odata/sap/HOST_ADDRESS |
認証: | ユーザー パスワード |
ユーザー名 | ユーザー名 |
パスワード: | パスワード |
バージョン | 1 |
エンティティ、オペレーション、アクション
すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。
- エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。
ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、
Entities
リストは空になります。 - オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。
使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがいずれかのエンティティ オペレーションをサポートしていない場合、サポートされていないオペレーションは
Operations
リストに含まれません。 - アクション: コネクタ インターフェースを介して統合で使用できる主要な関数の一つです。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、
Actions
リストが空になります。
システムの上限
- SAP Gateway コネクタは、ノードごとに 1 秒あたり最大 9 件のトランザクションを処理できます。
Integration Connectors に適用される上限の詳細については、上限をご覧ください。
- 以下の機能はサポートされていません。
- OAuth 2.0 ベースの認証。
- ETags
- ディープ インサート
- ファイルベースのオペレーション
エンティティ オペレーションの例
このセクションでは、このコネクタでエンティティ オペレーションの一部を実行する方法について説明します。
例 - すべてのレコードを一覧表示する
この例では、SalesOrderSet
エンティティ内のすべてのレコードを一覧表示します。
- [
Configure connector task
] ダイアログで、[Entities
] をクリックします。 Entity
からSalesOrderSet
を選択します。- [
List
] オペレーションを選択し、[完了] をクリックします。 - 必要に応じて、コネクタタスクの [タスク入力] セクションでフィルタ句を指定して、結果セットをフィルタリングできます。
たとえば、
City='Bangalore'
のようにします。論理演算子を使用して複数のフィルタ条件を指定することもできます。例:City='Bangalore' and region='asia-south2'
。
例 - レコードを取得する
この例では、SalesOrderSet
エンティティから、指定した ID のレコードを取得します。
- [
Configure connector task
] ダイアログで、[Entities
] をクリックします。 Entity
からSalesOrderSet
を選択します。- [
Get
] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで [EntityId] をクリックし、[デフォルト値] フィールドに
13
を入力します。ここで、
13
はSalesOrderSet
エンティティの主キー値です。
例 - レコードを作成する
この例では、SalesOrderSet
エンティティに レコードを作成します。
- [
Configure connector task
] ダイアログで、[Entities
] をクリックします。 Entity
からSalesOrderSet
を選択します。- [
Create
] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayload
をクリックし、Default Value
フィールドに次のような値を入力します。{ "Vbeln":"999", "Erdat":"2020-08-25 00:00:00", "Erzet":"13:12:31", "Ernam":"Test" }
統合に成功すると、コネクタタスクの
connectorOutputPayload
フィールドの値は次のようになります。{ "Vbeln": "999" }
例 - レコードを作成する
この例では、SalesPriceSet
エンティティに レコードを作成します。
- [
Configure connector task
] ダイアログで、[Entities
] をクリックします。 Entity
からSalesPriceSet
を選択します。- [
Create
] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayload
をクリックし、Default Value
フィールドに次のような値を入力します。{ "Vbeln": "129", "Posnr": "000000", "Knumh": "SUN25MAY", "Kpein": 1.0 }
統合に成功すると、コネクタタスクの
connectorOutputPayload
フィールドの値は次のようになります。{ "Posnr": "000000", "Vbeln": "129" }
例 - レコードを更新する
この例では、SalesOrderSet
エンティティに レコードを作成します。
- [
Configure connector task
] ダイアログで、[Entities
] をクリックします。 Entity
からSalesOrderSet
を選択します。- [
Update
] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayload
をクリックし、Default Value
フィールドに次のような値を入力します。{ "Ernam": "Test123" }
- [エンティティ ID] をクリックし、[デフォルト値] フィールドに「
99
」と入力します。統合に成功すると、コネクタタスクの
connectorOutputPayload
フィールドの値は次のようになります。{ "Vbeln": "999" }
Terraform を使用して接続を作成する
Terraform リソースを使用して、新しい接続を作成できます。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。
Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。
パラメータ名 | データ型 | 必須 | 説明 |
---|---|---|---|
namespace | STRING | False | データを取得するサービスの名前空間を指定します。これは、URL でサービスが指定されていない場合に必要です。 |
service | STRING | False | データを取得するサービスを指定します。これは、URL でサービスが指定されていない場合に必要です。 |
custom_url_params | STRING | False | CustomUrlParams を使用すると、HTTP リクエストに含まれるカスタムクエリ文字列パラメータを指定できます。パラメータは、field1=value1&field2=value2 の形式でクエリ文字列としてエンコードする必要があります。クエリ文字列の値は、URL エンコードされている必要があります。 |
data_format | ENUM | False | データを取得するデータ形式。XML または JSON を選択します。 サポートされている値は、XML、JSON です。 |
use_display_names | BOOLEAN | False | SAP ラベルを使用するかどうかを決定するブール値。 |
詳細度 | STRING | False | 接続の詳細レベルは 1~5 です。詳細レベルが高いと、すべての通信の詳細(リクエスト、レスポンス、SSL 証明書)がログに記録されます。 |
proxy_enabled | BOOLEAN | False | 接続用のプロキシ サーバーを構成するには、このチェックボックスをオンにします。 |
proxy_auth_scheme | ENUM | False | ProxyServer プロキシへの認証に使用する認証タイプです。サポートされている値は、BASIC、DIGEST、NONE です。 |
proxy_user | STRING | False | ProxyServer プロキシへの認証に使用されるユーザー名です。 |
proxy_password | SECRET | False | ProxyServer プロキシの認証に使用されるパスワード。 |
proxy_ssltype | ENUM | False | ProxyServer プロキシへの接続時に使用する SSL のタイプです。サポートされている値は AUTO、ALWAYS、NEVER、TUNNEL です。 |
統合で SAP Gateway 接続を使用する
接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。
- Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
- Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
Google Cloud コミュニティの助けを借りる
Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。次のステップ
- 接続を一時停止して再開する方法を確認する。
- コネクタの使用状況をモニタリングする方法を確認する。
- コネクタログを表示する方法を確認する。