查看 Application Integration 支援的連接器

SAP Gateway 觸發條件

SAP Gateway 觸發程序Connector Event 觸發程序。SAP Gateway 連接器可讓您對 SAP Gateway 資料執行插入、刪除、更新和讀取作業。

事前準備

  • 如要為 SAP Gateway 觸發程序建立或設定新連線,請確認您在專案中具有下列 IAM 角色:
    • 連接器管理員 (roles/connectors.admin)
    • 如要瞭解如何授予角色,請參閱「管理存取權」。

  • 將下列 IAM 角色授予要用於 SAP Gateway 觸發程序的服務帳戶:
    • Application Integration 叫用者 (roles/integrations.integrationInvoker)
    • 如要瞭解如何將角色授予服務帳戶,請參閱「管理服務帳戶的存取權」一文。

  • 新增 SAP Gateway 觸發條件

    如要在整合中新增 SAP Gateway 觸發條件,請執行下列步驟:

    1. 前往 Google Cloud 控制台的「Application Integration」頁面。

      前往「Application Integration」

    2. 在導覽選單中,按一下「整合」

      系統隨即會顯示「整合清單」頁面,列出 Google Cloud 專案中可用的所有整合功能。

    3. 選取現有整合,或按一下「建立整合」建立新整合。

      如要建立新的整合項目:

      1. 在「建立整合」窗格中輸入名稱和說明。
      2. 選取整合作業的區域。
      3. 選取整合的服務帳戶。如要變更或更新整合的服務帳戶詳細資料,請隨時前往整合工具列的「整合摘要」窗格。
      4. 點選「建立」

      新建立的整合服務會在整合服務編輯器中開啟。

    4. 整合編輯器的導覽列中,按一下「觸發條件」,即可查看可用觸發條件的清單。
    5. 在整合服務編輯器中,按一下並放置 SAP Gateway 觸發條件元素。
    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 trigger」(SAP Gateway 觸發條件) 元素,開啟觸發條件設定窗格。
    2. 按一下「設定觸發條件」
    3. 在「連接器事件觸發條件編輯器」頁面中,提供下列設定詳細資料:
      1. 地區:選取 SAP Gateway 連線的地區。
      2. 連線:選取要使用的 SAP Gateway 連線。

        應用程式整合只會顯示有效且已啟用事件訂閱的 SAP Gateway 連線。

      3. 輸入事件類型欄位名稱。這個欄位會指出與傳入事件要求相關聯的事件類型。
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. 服務帳戶:選取具有 SAP Gateway 觸發程序必要 IAM 角色的服務帳戶。
    4. 按一下「完成」即可完成觸發條件設定並關閉頁面。

    使用新連線設定 SAP Gateway 觸發條件

    1. 在整合服務編輯器中,按一下「SAP Gateway trigger」(SAP Gateway 觸發條件) 元素,開啟觸發條件設定窗格。
    2. 按一下「設定觸發條件」
    3. 略過「區域」欄位。
    4. 按一下「連線」,然後從下拉式選單中選取「建立連線」選項。
    5. 在「連線詳細資料」部分,完成下列步驟:
      1. 連接器:從可用連接器的下拉式清單中選取「SAP Gateway」
      2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
      3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

        連線名稱必須符合下列條件:

        • 連線名稱可使用英文字母、數字或連字號。
        • 字母必須為小寫。
        • 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
        • 連結名稱不得超過 49 個字元。
        • 如果連接器支援事件訂閱,連接名稱開頭不得為「goog」前置字串。
      4. 視需要輸入連線執行個體的「Description」(說明)
      5. 服務帳戶:選取具備必要角色的服務帳戶。
      6. 如要將連線用於事件訂閱,請選取「啟用事件訂閱」。選取這個選項後,會顯示下列選項:
        • 啟用事件訂閱功能,並使用實體和動作:選取這個選項,即可將連線用於事件訂閱和連接器作業 (實體和動作)。
        • 只啟用事件訂閱項目:選取這個選項,即可只將連線用於事件訂閱。如果選取這個選項,請按一下「下一步」,然後設定事件訂閱
      7. 命名空間:指定要從哪個服務命名空間擷取資料。如果網址中未指定服務,則必須提供這項資訊。
      8. 服務:指定要從哪個服務擷取資料。如果網址中未指定服務,則必須提供這項資訊。
      9. CustomUrlParams:指定要納入 HTTP 要求中的自訂查詢字串參數。參數必須編碼為查詢字串,格式如下:field1=value1&field2=value2。查詢字串中的值必須經過網址編碼。
      10. 資料格式:擷取資料時使用的資料格式。選取 XML 或 JSON。
      11. 使用顯示名稱:布林值,用於判斷是否使用 SAP 標籤。
      12. 視需要設定「連線節點設定」

        • 節點數量下限:輸入連線節點數量下限。
        • 節點數量上限:輸入連線節點數量上限。

        節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

      13. 選用:按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
      14. 點按「下一步」
    6. 在「目的地」部分,設定 SAP Gateway 環境的網址,或 OData 服務的完整網址。格式範例:${ENVIRONMENT_URL}/sap/opu/odata/${NAMESPACE}/${SERVICE}/,網址範例:https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/。使用 CustomUrlParams 屬性新增任何其他屬性。
      1. 目的地類型:選取目的地類型
        • 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
        • 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。

        如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。

        如要輸入其他目的地,請按一下「+新增目的地」

      2. 點按「下一步」
    7. 在「Authentication」(驗證) 部分中,輸入驗證詳細資料。
      1. 選取「驗證類型」並輸入相關詳細資料。

        SAP Gateway 連線支援下列驗證類型:

        • 使用者名稱和密碼
        • 匿名
        • SAP BTP (OAuth 2.0 - 用戶端憑證)
      2. 如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。

      3. 點按「下一步」
    8. 檢查:檢查連線和驗證詳細資料。
    9. 點選「建立」

    設定驗證機制

    根據要使用的驗證方式輸入詳細資料。

    • 使用者名稱和密碼
      • 使用者名稱:連接器的使用者名稱
      • 密碼:Secret Manager 密鑰,內含與連接器相關聯的密碼。
    • 匿名

      如要使用匿名登入,請選取「不適用」

      • API 金鑰:目前已通過驗證的使用者 API 金鑰。
    • SAP BTP (OAuth 2.0 - 用戶端憑證)
      • 用戶端 ID:輸入從 API 用戶端頁面取得的用戶端 ID。
      • 用戶端密鑰:輸入從 API 用戶端頁面取得的用戶端密鑰。
      • 密鑰版本:輸入上方所選密鑰的密鑰版本。
      • OAuthAccessTokenURL:輸入 OAuth 存取權杖的網址。
      • 目的地名稱:輸入 SAP BTP 目的地的名稱。
      • 到達網頁網址:輸入 SAP BTP 的到達網頁網址。
      • 啟用驗證覆寫:選取這個選項,即可在執行階段動態接受不同的驗證。

    設定事件訂閱

    如果您已啟用事件訂閱功能,請在「Event Subscription Details」(事件訂閱詳細資料) 區段中輸入下列值:

    1. 為事件監聽器選取下列任一驗證類型。
    2. 輸入事件類型欄位名稱。這個欄位會指出與傳入事件要求相關聯的事件類型。
      {
      "event_type": "user.created",
      ...
      // other request fields
      ...
      }
    3. 選取「啟用私人連線」,在後端應用程式和連線之間建立安全連線。如果選取這個選項,您必須在建立連線後執行額外設定步驟。詳情請參閱「活動訂閱的私人連線」。
    4. 輸入無法傳送郵件的設定。如果設定無效信件,連線會將未處理的事件寫入指定的 Pub/Sub 主題。輸入下列詳細資料:
      1. 無法傳送的訊息專案 ID: 您已設定無法傳送的訊息 Pub/Sub 主題的 Google Cloud 專案 ID。
      2. 無效信件主題: 要寫入未處理事件詳細資料的 Pub/Sub 主題。

    在 SAP 中設定驗證

    請按照「Google Cloud ABAP SDK 地端部署或任何雲端版本的驗證總覽」指南中的操作說明,在 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.
    

    配額與限制

    如要瞭解配額和限制,請參閱配額和限制

    後續步驟