Application Integration에 지원되는 커넥터를 참조하세요.

SAP ERP 트리거

SAP ERP 트리거는 SAP ERP 데이터에서 삽입, 삭제, 업데이트, 읽기 작업을 수행할 수 있는 커넥터 이벤트 트리거입니다.

시작하기 전에

  • SAP ERP 트리거에 새 연결을 만들거나 구성하려면 프로젝트에 다음 IAM 역할이 있는지 확인합니다.
    • 커넥터 관리자(roles/connectors.admin)
    • 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

  • SAP ERP 트리거에 사용할 서비스 계정에 다음 IAM 역할을 부여합니다.
  • SAP ERP 트리거 추가

    SAP ERP 트리거를 통합에 추가하려면 다음 단계를 수행합니다.

    1. Google Cloud 콘솔에서 Application Integration 페이지로 이동합니다.

      Application Integration으로 이동

    2. 탐색 메뉴에서 통합을 클릭합니다.

      Google Cloud 프로젝트에서 사용할 수 있는 모든 통합이 나열된 통합 목록 페이지가 나타납니다.

    3. 기존 통합을 선택하거나 통합 만들기를 클릭하여 새 통합을 만듭니다.

      새 통합을 만드는 경우:

      1. 통합 만들기 창에 이름과 설명을 입력합니다.
      2. 통합 리전을 선택합니다.
      3. 통합을 위한 서비스 계정을 선택합니다. 통합 툴바의 통합 요약 창에서 언제든지 통합에 대한 서비스 계정 세부정보를 변경하거나 업데이트할 수 있습니다.
      4. 만들기를 클릭합니다.

      통합 편집기 페이지에서 통합이 열립니다.

    4. 통합 편집기 탐색 메뉴에서 트리거를 클릭하여 사용 가능한 트리거 목록을 확인합니다.
    5. 통합 편집기에서 SAP ERP 트리거 요소를 클릭하여 배치합니다.
    6. SAP ERP 트리거를 구성하려면 Integration Connectors에서 제공하는 기존 SAP ERP 연결을 사용하거나 인라인 연결 만들기 옵션을 사용하여 새 SAP ERP 연결을 만들면 됩니다.

    기존 연결을 사용하여 SAP ERP 트리거 구성

    SAP ERP 트리거커넥터 이벤트 트리거이므로 이벤트 구독이 사용 설정된 SAP ERP 연결만 사용하여 트리거를 구성할 수 있습니다.

    새 SAP ERP 연결을 사용하여 SAP ERP 트리거를 구성하는 방법에 대한 자세한 내용은 새 연결을 사용하여 SAP ERP 트리거 구성을 참조하세요.

    기존 SAP ERP 연결을 사용하여 SAP ERP 트리거를 구성하려면 다음 단계를 수행합니다.

    1. 통합 편집기에서 SAP ERP 트리거 요소를 클릭하여 트리거 구성 창을 엽니다.
    2. 트리거 구성을 클릭합니다.
    3. 커넥터 이벤트 트리거 편집기 페이지에서 다음 구성 세부정보를 제공합니다.
      1. 리전: SAP ERP 연결 리전을 선택합니다.
      2. 연결: 사용할 SAP ERP 연결을 선택합니다.

        Application Integration에는 활성 상태이고 이벤트 구독이 사용 설정된 SAP ERP 연결만 표시됩니다.

      3. 이벤트 유형 필드 이름을 입력합니다. 이 필드는 수신 이벤트 요청과 연결된 이벤트 유형을 식별합니다.
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. 서비스 계정: SAP ERP 트리거에 필요한 IAM 역할이 있는 서비스 계정을 선택합니다.
    4. 완료를 클릭하여 트리거 구성을 완료하고 페이지를 닫습니다.

    새 연결을 사용하여 SAP ERP 트리거 구성

    1. 통합 편집기에서 SAP ERP 트리거 요소를 클릭하여 트리거 구성 창을 엽니다.
    2. 트리거 구성을 클릭합니다.
    3. 리전 필드를 건너뜁니다.
    4. 연결을 클릭하고 드롭다운 메뉴에서 연결 만들기 옵션을 선택합니다.
    5. 연결 세부정보 섹션에서 다음을 완료합니다.
      1. 커넥터: 사용 가능한 커넥터 드롭다운 목록에서 SAP ERP를 선택합니다.
      2. 커넥터 버전: 사용 가능한 버전의 드롭다운 목록에서 커넥터 버전을 선택합니다.
      3. 연결 이름 필드에서 연결 인스턴스의 이름을 입력합니다.

        연결 이름은 다음 기준을 충족해야 합니다.

        • 연결 이름에 문자, 숫자, 하이픈을 사용할 수 있습니다.
        • 문자는 소문자여야 합니다.
        • 연결 이름은 문자로 시작하고 문자 또는 숫자로 끝나야 합니다.
        • 연결 이름은 63자를 초과할 수 없습니다.
      4. 선택적으로 연결에 대한 설명을 입력합니다.
      5. 선택적으로 Cloud Logging을 사용 설정합니다.
      6. 서비스 계정: 필수 역할이 있는 서비스 계정을 선택합니다.
      7. 이벤트 구독에 연결을 사용하려면 이벤트 구독 사용 설정을 선택합니다. 이 옵션을 선택하면 다음 옵션이 표시됩니다.
        • 항목 및 작업으로 이벤트 구독 사용 설정: 이벤트 구독 및 커넥터 작업(항목 및 작업) 모두에 연결을 사용하려면 이 옵션을 선택합니다.
        • 이벤트 구독만 사용 설정: 이벤트 구독에만 연결을 사용하려면 이 옵션을 선택합니다. 이 옵션을 선택하는 경우 다음을 클릭한 다음 이벤트 구독 구성을 클릭합니다.
      8. 클라이언트: SAP 시스템에 인증하는 클라이언트입니다.
      9. System ID: SAP 시스템의 System ID 또는 R3Name은 최대 3자의 문자열입니다. 부하 분산 연결에 자주 사용됩니다.
      10. 시스템 번호: 대상 시스템이 정의된 번호입니다. 호스트 연결 속성을 설정할 때 사용됩니다.
      11. 프로젝트 ID: SAP JCo jar이 포함된 GCS 버킷이 있는 Google Cloud 프로젝트의 ID입니다.
      12. 버킷: sapjco3.jar 및 libsapjco3.so 파일이 포함된 버킷의 이름입니다.
      13. Jaco jar 개체 ID: JCo jar의 객체 ID입니다.
      14. libsapjco3 객체 ID: libsapjco3 jar의 객체 ID입니다.
      15. 테이블 모드: 뷰로 표시할 SAP 테이블을 선택합니다.
      16. SNC_LIB 객체 ID: SNC 라이브러리의 객체 ID입니다.
      17. PSE 이름: 버킷에 적용할 수 있는 개인 보안 환경(PSE) 파일의 이름입니다. PSE 파일은 공개 및 비공개 키 쌍과 X.509 인증서를 ASN.1 구조로 저장합니다.
      18. 그룹: 로그인할 그룹 이름입니다. 이는 일반적으로 SAP 시스템이 부하 분산기를 사용하는 경우 지정됩니다
      19. 메시지 서버: 부하 분산기를 사용하는 SAP 시스템에 연결할 때 사용할 메시지 서버의 이름입니다.
      20. 테이블 읽기 함수: 테이블 읽기에 사용할 함수의 이름입니다. 자세한 내용은 커스텀 테이블 읽기 함수 사용을 참조하세요.
      21. 연결 스키마: SAP 시스템에 연결하는 데 사용할 연결 스키마를 선택합니다.
      22. 시스템 ID: SAP 시스템의 시스템 ID 또는 R3Name입니다. 최대 3자까지 입력할 수 있습니다.
      23. SNC 비밀번호: SNC 라이브러리 비밀번호의 Secret Manager 보안 비밀을 선택합니다.
      24. 보안 비밀 버전: 보안 비밀 버전을 선택합니다.
      25. SNC 모드: Application Integration과 SAP 시스템 간 인증에 SNC를 사용 설정하려면 이 옵션을 선택합니다.
      26. SNC 이름: SNC 연결 이름을 입력합니다.
      27. SNC qop: 보호 수준을 선택합니다. 지원되는 수준은 다음과 같습니다.
        • 1 - 인증만 적용됩니다.
        • 2 - 무결성 보호가 적용됩니다. 여기에는 인증 보호도 포함됩니다.
        • 3 - 개인 정보 보호 기능이 적용됩니다. 여기에는 무결성 및 인증 보호도 포함됩니다.
        • 8 - 기본 보호가 적용됩니다.
        • 9 - 최대 보호가 적용됩니다.
      28. SNC 파트너 이름: 애플리케이션 서버의 SNC 이름을 입력합니다.
      29. 쿼리 모드: 뷰로 표시할 SAP 테이블을 선택합니다.
      30. 검색 가능한 뷰: 표시할 뷰 목록을 쉼표로 구분해서 입력합니다. 예를 들면 ViewA,ViewB,ViewC입니다.
      31. 세부정보 수준: 로깅의 세부정보 수준을 입력합니다. 지원 값은 1~5 사이의 값입니다. 값이 클수록 로그에서 더 많은 세부정보를 볼 수 있습니다.
      32. 필요한 경우 연결 노드 설정을 구성합니다.

        • 최소 노드 수: 최소 연결 노드 수를 입력합니다.
        • 최대 노드 수: 최대 연결 노드 수를 입력합니다.

        노드는 트랜잭션을 처리하는 연결의 단위(또는 복제본)입니다. 연결에 대해 더 많은 트랜잭션을 처리하려면 더 많은 노드가 필요합니다. 이와 반대로 더 적은 트랜잭션을 처리하기 위해서는 더 적은 노드가 필요합니다. 노드가 커넥터 가격 책정에 미치는 영향을 파악하려면 연결 노드 가격 책정을 참조하세요. 값을 입력하지 않으면 기본적으로 최소 노드가 (높은 가용성을 위해) 2로 설정되고 최대 노드는 50으로 설정됩니다.

      33. 필요한 경우 + 라벨 추가를 클릭하여 키-값 쌍의 형식으로 연결에 라벨을 추가합니다.
      34. 다음을 클릭합니다.
    6. 대상 섹션에서 연결하려는 원격 호스트(백엔드 시스템)의 세부정보를 입력합니다.
      1. 대상 유형: 대상 유형을 선택합니다.
        • 목록에서 호스트 주소를 선택하여 대상의 호스트 이름 또는 IP 주소를 지정합니다.
        • 백엔드 시스템에 비공개 연결을 설정하려면 목록에서 엔드포인트 연결을 선택한 다음 엔드포인트 연결 목록에서 필요한 엔드포인트 연결을 선택합니다.

        추가 보안을 사용하여 백엔드 시스템에 공개 연결을 설정하려면 연결의 고정 아웃바운드 IP 주소를 구성한 후 방화벽 규칙을 구성하여 특정 고정 IP 주소만 허용 목록에 추가합니다.

        추가 대상을 입력하려면 +대상 추가를 클릭합니다.

      2. 다음을 클릭합니다.
    7. 인증 섹션에서 인증 세부정보를 입력합니다.
      1. 인증 유형을 선택하고 관련 세부정보를 입력합니다.

        SAP ERP 연결에서는 다음 인증 유형이 지원됩니다.

        • 사용자 이름 및 비밀번호
      2. 이러한 인증 유형을 구성하는 방법은 인증 구성을 참조하세요.

      3. 다음을 클릭합니다.
    8. 이벤트 구독을 사용 설정한 경우 이벤트 구독 세부정보 섹션이 연결 만들기 페이지에 표시됩니다. 이벤트 구독 세부정보를 구성하는 방법은 이벤트 구독 구성을 참조하세요.
    9. 검토: 연결 및 인증 세부정보를 검토합니다.
    10. 만들기를 클릭합니다.

    인증 구성

    사용할 인증을 기반으로 세부정보를 입력합니다.

    • 사용자 이름 및 비밀번호
      • 사용자 이름: 커넥터의 사용자 이름입니다.
      • 비밀번호: 커넥터와 연결된 비밀번호가 포함된 Secret Manager 보안 비밀입니다.

    이벤트 구독 구성

    이벤트 구독을 사용 설정했으면 이벤트 구독 세부정보 섹션에 다음 값을 입력합니다.

    1. 이벤트 리스너에 다음 인증 유형 중 하나를 선택합니다.
    2. 이벤트 유형 필드 이름을 입력합니다. 이 필드는 수신 이벤트 요청과 연결된 이벤트 유형을 식별합니다.
      {
      "event_type": "user.created",
      ...
      // other request fields
      ...
      }
    3. Select Enable private connectivity for secured connectivity between your backend application and your connection. If you select this option, you must perform additional configuration steps after creating the connection. For more information, see Private connectivity for event subscription.
    4. Enter the dead-letter configuration. If you configure dead-letter, the connection writes the unprocessed events to the specified Pub/Sub topic. Enter the following details:
      1. Dead-letter project ID: The Google Cloud project ID where you have configured the dead-letter Pub/Sub topic.
      2. Dead-letter topic: The Pub/Sub topic where you want to write the details of the unprocessed event.

    Use a custom read table function

    RFC_READ_TABLE

    The connector uses the SAP RFC_READ_TABLE function to get data from SAP tables.

    However, it has certain limitations. As an example, consider the DATA_BUFFER_EXCEEDED exception. The SAP RFC_READ_TABLE has a fixed size of 512 bytes. It can buffer for each row of data, and thus you cannot select more columns than the amount that would fit in this buffer. If you select more than 512 bytes, an exception occurs indicating that you have exceeded the maximum buffer size allowed per row and need to select fewer columns.

    RFC_READ_TABLE2

    The SAP ERP connector supports the RFC_READ_TABLE2 table read function. You can switch the active table read function to RFC_READ_TABLE2 by setting ReadTableFunction to /SAPDS/RFC_READ_TABLE2.

    Custom read table functions

    The connector includes a custom read-table RFC, Z_CUSTOM_READ_TABLE that is similar to the SAP RFC_READ_TABLE, but with a larger buffer to address the DATA_BUFFER_EXCEEDED problem and bypass RFC_READ_TABLE limitations.

    To use the included custom read-table RFC to bypass limitations with the default RFC_READ_TABLE, follow these steps:

    1. Use the RFC_READ_TABLE function as a template for the new function. Select transaction code SE37 and the SDTX function group and copy RFC_READ_TABLE to a new function group or your working function group. In this example, RFC_READ_TABLE is copied to Z_CUSTOM_READ_TABLE.
    2. On the Attributes tab of the SAP screen, select Remote Enabled Module.
    3. On the Tables tab, set the DATA parameter to CHAR8000. Right-click on the screen and then click Display -> Change.
    4. On the Source Code tab, paste the example source code for the replacement RFC_READ_TABLE function module located in the db subfolder of the installation directory. The code is located in Z_CUSTOM_READ_TABLE.txt, though Z_CUSTOM_READ_TABLE_752.txt is preferred if your SAP ERP instance is running ABAP version 7.52 or later.
    5. Click Save.
    6. Define the imports, tables, and exceptions as documented in the provided custom read table.
    7. Activate the function module and in your connection string set ReadTableFunction to Z_CUSTOM_READ_TABLE, or the name of your function module.

    The ABAP 7.52 Custom Read Table

    Along with Z_CUSTOM_READ_TABLE.txt, there is also a Z_CUSTOM_READ_TABLE_752.txt file, for ABAP version 7.52 and above. It is similar to Z_CUSTOM_READ_TABLE, but it takes advantage of the newly available keywords in ABAP 7.52 to perform paging within the database instead of in the ABAP script itself. This makes paging efficient when working with large tables.

    It is recommended to use the Z_CUSTOM_READ_TABLE_752 RFC.

    Configure authentication in SAP

    Configure the authentication in SAP by following the instructions in the Authentication overview for the on-premises or any cloud edition of ABAP SDK for Google Cloud guide.

    Validate the trigger

    To validate the trigger, you can create an ABAP program. The following is a sample ABAP program that you can use as a reference. The ls_event_payload field changes based on your requirements:

    *&---------------------------------------------------------------------*
    *& 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-erp'.
     ELSE.
     lv_client_key = 'IC_DEMO_GOOGLE_APIK'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-erp-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.