Application Integration でサポートされているコネクタをご覧ください。

SAP Gateway トリガー

SAP Gateway トリガーは、Connector Event トリガーです。SAP Gateway コネクタを使用すると、SAP Gateway データに対して、挿入、削除、更新、読み取りオペレーションを実行できます。

始める前に

  • SAP Gateway トリガーの新しい接続を作成または構成する場合は、プロジェクトに対する次の IAM ロールがあることを確認してください。
    • Connectors 管理者( roles/connectors.admin
    • ロールの付与については、アクセスの管理をご覧ください。

  • SAP Gateway トリガーに使用するサービス アカウントに、次の IAM ロールを付与します。
  • SAP Gateway トリガーを追加する

    統合に SAP Gateway トリガーを追加する手順は次のとおりです。

    1. Google Cloud コンソールで [Application Integration] ページに移動します。

      Application Integration に移動

    2. ナビゲーション メニューで [統合] をクリックします。

      [統合リスト] ページが開き、Google Cloud プロジェクトで使用可能なすべての統合が一覧表示されます。

    3. 既存の統合を選択するか、[統合の作成] をクリックして新しい統合を作成します。

      新しい統合を作成する場合:

      1. [統合の作成] ペインで名前と説明を入力します。
      2. 統合のリージョンを選択します。
      3. 統合用のサービス アカウントを選択します。統合のサービス アカウントの詳細は、統合ツールバーの [統合の概要] ペインでいつでも変更または更新できます。
      4. [作成] をクリックします。

      統合エディタで統合が開きます。

    4. 統合エディタのナビゲーション バーで、[トリガー] をクリックして、使用可能なトリガーのリストを表示します。
    5. 統合エディタで、[SAP Gateway trigger] 要素をクリックして配置します。
    6. SAP Gateway トリガーを構成するには、Integration Connectors で使用可能な既存の SAP Gateway 接続を使用するか、インライン接続作成オプションを使用して新しい SAP Gateway 接続を作成します。

    既存の接続を使用して SAP Gateway トリガーを構成する

    SAP Gateway トリガーコネクタ イベント トリガーであるため、トリガーの構成にはイベント サブスクリプションを有効にした SAP Gateway 接続のみが使用できます。

    新しい SAP Gateway 接続を使用して SAP Gateway トリガーを構成する方法については、新しい接続を使用して SAP Gateway トリガーを構成するをご覧ください。

    既存の SAP Gateway 接続を使用して SAP Gateway トリガーを構成するには、次の手順を行います。

    1. 統合エディタで [SAP Gateway トリガー] 要素をクリックして、トリガー構成ペインを開きます。
    2. [トリガーの構成] をクリックします。
    3. [Connector Event Trigger Editor] ページで、構成の詳細を次のとおりに入力します。
      1. リージョン: SAP Gateway 接続のリージョンを選択します。
      2. 接続: 使用する SAP Gateway 接続を選択します。

        Application Integration には、アクティブであり、イベント サブスクリプションが有効になっている SAP Gateway 接続のみが表示されます。

      3. イベントタイプのフィールド名を入力します。このフィールドは、受信イベント リクエストに関連付けられているイベントのタイプを識別します。
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. サービス アカウント: SAP Gateway トリガーに必要な IAM ロールを持つサービス アカウントを選択します。
    4. [Done] をクリックしてトリガーの構成を完了し、ページを閉じます。

    新しい接続を使用して SAP Gateway トリガーを構成する

    1. 統合エディタで [SAP Gateway トリガー] 要素をクリックして、トリガー構成ペインを開きます。
    2. [トリガーの構成] をクリックします。
    3. [リージョン] フィールドはスキップします。
    4. [接続] をクリックし、プルダウン メニューから [接続を作成] オプションを選択します。
    5. [接続の詳細] セクションで、次の操作を行います。
      1. Connector: 使用可能なコネクタのプルダウン リストから [SAP Gateway] を選択します。
      2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
      3. [接続名] フィールドに、接続インスタンスの名前を入力します。

        接続名は次の条件を満たす必要があります。

        • 接続名には英字、数字、ハイフンを使用できます。
        • 文字は小文字のみを使用できます。
        • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
        • 接続名は 63 文字以内で指定してください。
      4. 必要に応じて、接続インスタンスの [説明] を入力します。
      5. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
      6. イベント サブスクリプションの接続を使用するには、[イベント サブスクリプションを有効にする] を選択します。これを選択すると、次のオプションが表示されます。
        • エンティティとアクションを使用したイベント サブスクリプションを有効にする: このオプションを選択すると、イベント サブスクリプションとコネクタ オペレーション(エンティティとアクション)の両方に対して接続が使用されます。
        • イベント サブスクリプションのみを有効にする: イベント サブスクリプションに対してのみ接続を使用するには、このオプションを選択します。 このオプションを選択した場合は、[次へ] をクリックしてイベント サブスクリプションを構成します。
      7. Namespace: データを取得するサービスの名前空間を指定します。これは、URL でサービスが指定されていない場合に必要です。
      8. Service: データを取得するサービスを指定します。これは、URL でサービスが指定されていない場合に必要です。
      9. CustomUrlParams: HTTP リクエストに含まれるカスタムクエリ文字列パラメータを指定します。パラメータは、field1=value1&field2=value2 の形式でクエリ文字列としてエンコードする必要があります。クエリ文字列の値は、URL エンコードされている必要があります。
      10. Data Format: データを取得するデータ形式。XML または JSON を選択します。
      11. 表示名を使用する: SAP ラベルを使用するかどうかを決定するブール値。
      12. 必要に応じて、接続ノードの設定を構成します。

        • ノードの最小数: 接続ノードの最小数を入力します。
        • ノードの最大数: 接続ノードの最大数を入力します。

        ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

      13. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
      14. [NEXT] をクリックします。
    6. [宛先] セクションで、SAP Gateway 環境の URL または OData サービスの完全な URL を設定します。形式の例: ${ENVIRONMENT_URL}/sap/opu/odata/${NAMESPACE}/${SERVICE}/、サンプル URL は https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/ です。CustomUrlParams プロパティを使用してプロパティを追加します。
      1. 宛先の種類: 宛先の種類を選択します。
        • リストから [ホストアドレス] を選択して、宛先のホスト名または IP アドレスを指定します。
        • バックエンド システムへのプライベート接続を確立する場合は、リストからエンドポイント アタッチメントを選択し、次にエンドポイント アタッチメントリストから必要なエンドポイント アタッチメントを選択します。

        セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。

        他の宛先を入力するには、[+ 宛先を追加] をクリックします。

      2. [NEXT] をクリックします。
    7. [認証] セクションで、認証の詳細を入力します。
      1. [認証タイプ] を選択し、関連する詳細を入力します。

        SAP Gateway 接続でサポートされる認証タイプは、次のとおりです。

        • ユーザー名とパスワードを指定する
        • Anonymous
      2. これらの認証タイプの構成方法については、認証を構成するをご覧ください。

      3. [NEXT] をクリックします。
    8. Review: 接続と認証の詳細を確認します。
    9. [作成] をクリックします。

    認証を構成する

    使用する認証に基づいて詳細を入力します。

    • ユーザー名とパスワード
      • ユーザー名: コネクタのユーザー名
      • パスワード: コネクタに関連付けられたパスワードを含む Secret Manager の Secret。
    • Anonymous

      匿名ログインを使用する場合は、[Not Available] を選択します。

      • API Key: 現在認証されているユーザーの API キー。

    イベント サブスクリプションを構成する

    イベント サブスクリプションを有効にしている場合は、[イベント サブスクリプションの詳細] セクションに次の値を入力します。

    1. イベント リスナーに次のいずれかの認証タイプを選択します。
    2. イベントタイプのフィールド名を入力します。このフィールドは、受信イベント リクエストに関連付けられているイベントのタイプを識別します。
      {
      "event_type": "user.created",
      ...
      // other request fields
      ...
      }
    3. バックエンド アプリケーションと接続間を安全に接続するには、[プライベート接続を有効にする] を選択します。このオプションを選択した場合は、接続の作成後に追加の構成手順を実行する必要があります。詳細については、イベント サブスクリプションのプライベート接続をご覧ください。
    4. デッドレター構成を入力します。デッドレターを構成すると、指定された Pub/Sub トピックに未処理のイベントが書き込まれます。次の詳細情報を入力します。
      1. デッドレター プロジェクト ID: デッドレター Pub/Sub トピックを構成した Google Cloud プロジェクト ID。
      2. デッドレター トピック: 未処理イベントの詳細を書き込む Pub/Sub トピック。

    SAP で認証を構成する

    オンプレミスまたはクラウド エディションの ABAP SDK for Google Cloud の認証の概要ガイドの手順に沿って、SAP で認証を構成します。

    トリガーを検証する

    トリガーを検証するには、ABAP プログラムを作成します。リファレンスとして使用できる ABAP プログラムのサンプルを次に示します。ls_event_payload フィールドは、要件に応じて変わります。

    *&---------------------------------------------------------------------*
    *& Report ZR_TEST_INT_CONNECTOR
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zr_test_int_connector.
    PARAMETERS: p_auth TYPE char1 RADIOBUTTON GROUP rbg1 USER-COMMAND uc DEFAULT 'X',
     p_apik TYPE char1 RADIOBUTTON GROUP rbg1.
    DATA:
     lv_p_projects_id TYPE string,
     lv_p_locations_id TYPE string,
     lv_p_connections_id TYPE string,
     ls_input TYPE /goog/cl_connectors_v1=>ty_103.
    TYPES: BEGIN OF event_payload,
     event_type TYPE string,
     event_id TYPE string,
     name TYPE string,
     org_id TYPE string,
     END OF event_payload.
    DATA: ls_event_payload TYPE event_payload.
    ls_event_payload = VALUE #(
     event_type = 'create-entity'
     event_id = '1'
     name = 'demo-org'
     org_id = 'SAP'
     ).
    TRY.
     IF p_Auth = abap_true.
     DATA(lv_client_key) = 'IC_DEMO_GOOGLE_AUTH'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-gateway'.
     ELSE.
     lv_client_key = 'IC_DEMO_GOOGLE_APIK'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-gateway-apik'.
     ENDIF.
    * Open HTTP Connection
     DATA(lo_client) = NEW /goog/cl_connectors_v1( iv_key_name = CONV #( lv_client_key ) ).
    * Populate relevant parameters
     lv_p_projects_id = lo_client->gv_project_id.
     lv_p_locations_id = 'us-central1'.
     GET REFERENCE OF ls_event_payload INTO ls_input-payload .
    * Call API method: connectors.projects.locations.connections.listenEvent
     CALL METHOD lo_client->listen_event_connections
     EXPORTING
    
    
    iv_p_projects_id = lv_p_projects_id
     iv_p_locations_id = lv_p_locations_id
     iv_p_connections_id = lv_p_connections_id
     is_input = ls_input
     IMPORTING
    * es_raw =
     es_output = DATA(ls_output)
     ev_ret_code = DATA(lv_ret_code)
     ev_err_text = DATA(lv_err_text)
     es_err_resp = DATA(ls_err_resp).
     IF lo_client->is_success( lv_ret_code ).
     MESSAGE 'Success' TYPE 'S'.
     ELSE.
     MESSAGE lv_err_text TYPE 'E'.
     ENDIF.
    * Close HTTP Connection
     lo_client->close( ).
     CATCH /goog/cx_sdk INTO DATA(lo_exception).
     MESSAGE lo_exception->get_text( ) TYPE 'E'.
    ENDTRY.