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. 연결 이름 필드에서 연결 인스턴스의 이름을 입력합니다.

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

        • 연결 이름에 문자, 숫자, 하이픈을 사용할 수 있습니다.
        • 문자는 소문자여야 합니다.
        • 연결 이름은 문자로 시작하고 문자 또는 숫자로 끝나야 합니다.
        • 연결 이름은 49자(영문 기준)를 초과할 수 없습니다.
      4. 선택적으로 연결에 대한 설명을 입력합니다.
      5. 필요한 경우 Cloud Logging을 사용 설정한 다음 로그 수준을 선택합니다. 기본적으로 로그 수준은 Error로 설정됩니다.
      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. 백엔드 애플리케이션과 연결 간의 보안 연결을 위해 비공개 연결 사용 설정을 선택합니다. 이 옵션을 선택하면 연결을 만든 후 추가 구성 단계를 수행해야 합니다. 자세한 내용은 이벤트 구독용 비공개 연결을 참조하세요.
    4. 데드 레터 구성을 입력합니다. 데드 레터를 구성하면 연결에서 처리되지 않은 이벤트를 지정된 Pub/Sub 주제에 씁니다. 다음 세부정보를 입력합니다.
      1. 데드 레터 프로젝트 ID: 데드 레터 Pub/Sub 주제를 구성한 Google Cloud 프로젝트 ID입니다.
      2. 데드 레터 주제: 처리되지 않은 이벤트의 세부정보를 쓰려는 Pub/Sub 주제입니다.

    커스텀 테이블 읽기 함수 사용

    RFC_READ_TABLE

    커넥터는 SAP RFC_READ_TABLE 함수를 사용하여 SAP 테이블에서 데이터를 가져옵니다.

    하지만 몇 가지 제한사항이 있습니다. 예를 들어 DATA_BUFFER_EXCEEDED 예외를 고려하세요. SAP RFC_READ_TABLE의 고정 크기는 512바이트입니다. 이는 각 행의 데이터 버퍼에 맞추어지므로 이 버퍼에 맞는 크기보다 더 많은 열을 선택할 수 없습니다. 512바이트를 초과하여 선택하면 행당 허용되는 최대 버퍼 크기를 초과하였으므로 더 적은 열을 선택해야 한다고 예외가 발생합니다.

    RFC_READ_TABLE2

    SAP ERP 커넥터는 RFC_READ_TABLE2 테이블 읽기 함수를 지원합니다. ReadTableFunction/SAPDS/RFC_READ_TABLE2로 설정하여 활성 테이블 읽기 함수를 RFC_READ_TABLE2로 전환할 수 있습니다.

    커스텀 테이블 읽기 함수

    커넥터에는 SAP RFC_READ_TABLE과 유사하지만 DATA_BUFFER_EXCEEDED 문제를 해결하고 RFC_READ_TABLE 제한사항을 우회하기 위해 더 큰 버퍼가 있는 커스텀 읽기 테이블 RFC인 Z_CUSTOM_READ_TABLE이 포함되어 있습니다.

    포함된 커스텀 읽기 테이블 RFC를 사용하여 기본 RFC_READ_TABLE의 제한사항을 우회하려면 다음 단계를 수행합니다.

    1. RFC_READ_TABLE 함수를 새 함수의 템플릿으로 사용합니다. 트랜잭션 코드 SE37SDTX 함수 그룹을 선택하고 RFC_READ_TABLE을 새 함수 그룹이나 작업 함수 그룹에 복사합니다. 이 예시에서는 RFC_READ_TABLEZ_CUSTOM_READ_TABLE에 복사됩니다.
    2. SAP 화면의 속성 탭에서 Remote Enabled Module을 선택합니다.
    3. 테이블 탭에서 DATA 매개변수를 CHAR8000으로 설정합니다. 화면을 마우스 오른쪽 버튼으로 클릭한 후 표시 -> 변경을 클릭합니다.
    4. 소스 코드 탭에서 설치 디렉터리의 db 하위 폴더에 있는 대체 RFC_READ_TABLE 함수 모듈의 소스 코드 예시를 붙여넣습니다. 코드는 Z_CUSTOM_READ_TABLE.txt에 있지만 SAP ERP 인스턴스에서 ABAP 버전 7.52 이상이 실행되는 경우에는 Z_CUSTOM_READ_TABLE_752.txt가 권장됩니다.
    5. 저장을 클릭합니다.
    6. 제공된 커스텀 읽기 표에 설명된 대로 가져오기, 테이블, 예외를 정의합니다.
    7. 함수 모듈을 활성화하고 연결 문자열에서 ReadTableFunctionZ_CUSTOM_READ_TABLE 또는 함수 모듈 이름으로 설정합니다.

    ABAP 7.52 커스텀 읽기 표

    ABAP 버전 7.52 이상에는 Z_CUSTOM_READ_TABLE.txt와 함께 Z_CUSTOM_READ_TABLE_752.txt 파일도 있습니다. Z_CUSTOM_READ_TABLE과 유사하지만 ABAP 스크립트 대신 ABAP 7.52에서 사용 가능한 새로운 키워드를 활용하여 데이터베이스 내에서 페이징을 수행합니다. 따라서 대규모 테이블을 사용하여 작업할 때 페이징이 효율적으로 이루어집니다.

    Z_CUSTOM_READ_TABLE_752 RFC를 사용하는 것이 좋습니다.

    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-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.
    

    할당량 및 한도

    할당량 및 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.

    다음 단계