Application Integration에 지원되는 커넥터를 참조하세요.
SAP ERP 트리거
SAP ERP 트리거는 커넥터 이벤트 트리거입니다. SAP ERP 커넥터를 사용하면 SAP ERP 데이터에 대한 삽입, 삭제, 업데이트, 읽기 작업을 수행할 수 있습니다.
시작하기 전에
- SAP ERP 트리거에 새 연결을 만들거나 구성하려면 프로젝트에 다음 IAM 역할이 있는지 확인합니다.
- 커넥터 관리자(
roles/connectors.admin
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
- 커넥터 관리자(
- SAP ERP 트리거에 사용할 서비스 계정에 다음 IAM 역할을 부여합니다.
- Application Integration 호출자(
roles/integrations.integrationInvoker
)
서비스 계정에 역할 부여에 대한 자세한 내용은 서비스 계정에 대한 액세스 관리를 참조하세요.
- Application Integration 호출자(
- Google Cloud 콘솔에서 Application Integration 페이지로 이동합니다.
- 탐색 메뉴에서 통합을 클릭합니다.
Google Cloud 프로젝트에서 사용할 수 있는 모든 통합이 나열된 통합 목록 페이지가 나타납니다.
- 기존 통합을 선택하거나 통합 만들기를 클릭하여 새 통합을 만듭니다.
새 통합을 만드는 경우:
- 통합 만들기 창에 이름과 설명을 입력합니다.
- 통합 리전을 선택합니다.
- 통합을 위한 서비스 계정을 선택합니다. 통합 툴바의 통합 요약 창에서 언제든지 통합에 대한 서비스 계정 세부정보를 변경하거나 업데이트할 수 있습니다.
- 만들기를 클릭합니다.
통합 편집기 페이지에서 통합이 열립니다.
- 통합 편집기 탐색 메뉴에서 트리거를 클릭하여 사용 가능한 트리거 목록을 확인합니다.
- 통합 편집기에서 SAP ERP 트리거 요소를 클릭하여 배치합니다.
- 통합 편집기에서 SAP ERP 트리거 요소를 클릭하여 트리거 구성 창을 엽니다.
- 트리거 구성을 클릭합니다.
- 커넥터 이벤트 트리거 편집기 페이지에서 다음 구성 세부정보를 제공합니다.
- 리전: SAP ERP 연결 리전을 선택합니다.
- 연결: 사용하려는 SAP ERP 연결을 선택합니다.
Application Integration에는 활성 상태이고 이벤트 구독이 사용 설정된 SAP ERP 연결만 표시됩니다.
- 이벤트 유형 필드 이름을 입력합니다. 이 필드는 수신 이벤트 요청과 연결된 이벤트 유형을 식별합니다.
{ "event_type": "user.created", ... // other request fields ... }
- 서비스 계정: SAP ERP 트리거에 필요한 IAM 역할이 있는 서비스 계정을 선택합니다.
- 완료를 클릭하여 트리거 구성을 완료하고 페이지를 닫습니다.
- 통합 편집기에서 SAP ERP 트리거 요소를 클릭하여 트리거 구성 창을 엽니다.
- 트리거 구성을 클릭합니다.
- 리전 필드를 건너뜁니다.
- 연결을 클릭하고 드롭다운 메뉴에서 연결 만들기 옵션을 선택합니다.
- 연결 세부정보 섹션에서 다음을 완료합니다.
- 커넥터: 사용 가능한 커넥터 드롭다운 목록에서 SAP ERP를 선택합니다.
- 커넥터 버전: 사용 가능한 버전의 드롭다운 목록에서 커넥터 버전을 선택합니다.
- 연결 이름 필드에서 연결 인스턴스의 이름을 입력합니다.
연결 이름은 다음 기준을 충족해야 합니다.
- 연결 이름에 문자, 숫자, 하이픈을 사용할 수 있습니다.
- 문자는 소문자여야 합니다.
- 연결 이름은 문자로 시작하고 문자 또는 숫자로 끝나야 합니다.
- 연결 이름은 49자(영문 기준)를 초과할 수 없습니다.
- 이벤트 구독을 지원하는 커넥터의 경우 연결 이름은 'goog' 프리픽스로 시작할 수 없습니다.
- 선택적으로 연결에 대한 설명을 입력합니다.
- 필요한 경우 Cloud Logging을 사용 설정한 다음 로그 수준을 선택합니다. 기본적으로 로그 수준은
Error
로 설정됩니다. - 서비스 계정: 필수 역할이 있는 서비스 계정을 선택합니다.
- 이벤트 구독에 연결을 사용하려면 이벤트 구독 사용 설정을 선택합니다. 이 옵션을 선택하면 다음 옵션이 표시됩니다.
- 항목 및 작업으로 이벤트 구독 사용 설정: 이벤트 구독 및 커넥터 작업(항목 및 작업) 모두에 연결을 사용하려면 이 옵션을 선택합니다.
- 이벤트 구독만 사용 설정: 이벤트 구독에만 연결을 사용하려면 이 옵션을 선택합니다. 이 옵션을 선택하는 경우 다음을 클릭한 다음 이벤트 구독을 구성합니다.
- 클라이언트: SAP 시스템에 인증하는 클라이언트입니다.
- System ID: SAP 시스템의 System ID 또는 R3Name은 최대 3자의 문자열입니다. 부하 분산 연결에 자주 사용됩니다.
- 시스템 번호: 대상 시스템을 정의하는 번호입니다. 호스트 연결 속성을 설정할 때 사용됩니다.
- 프로젝트 ID: SAP JCo jar가 포함된 GCS 버킷이 있는 Google Cloud 프로젝트의 ID입니다.
- 버킷: sapjco3.jar 및 libsapjco3.so 파일이 포함된 버킷의 이름입니다.
- Jaco jar 개체 ID: JCo jar의 객체 ID입니다.
- libsapjco3 객체 ID: libsapjco3 jar의 객체 ID입니다.
- 테이블 모드: 뷰로 표시할 SAP 테이블을 선택합니다.
- 테이블 읽기 함수: 테이블 읽기에 사용할 함수의 이름입니다. 자세한 내용은 커스텀 테이블 읽기 함수 사용을 참조하세요.
- 시스템 ID: SAP 시스템의 시스템 ID 또는 R3Name입니다. 최대 3자(영문 기준)까지 입력할 수 있습니다.
- 쿼리 모드: 뷰로 표시해야 하는 SAP 테이블을 선택합니다.
-
탐색 가능한 뷰: 표시할 뷰를 쉼표로 구분된 목록으로 입력합니다.
예를 들면
ViewA,ViewB,ViewC
입니다. - Language: 이 속성을 SAP에 로그인할 때 지정한 언어로 설정합니다. 이 속성은 SAP 시스템에서 사용하는 언어의 ISO 639-1 코드입니다. 기본적으로 EN이 사용됩니다.
- 서비스 항목: 연결에 사용할 서비스 항목입니다.
-
SNC 모드: 애플리케이션 통합과 SAP 시스템 간의 인증에 SNC를 사용 설정하려면 이 옵션을 선택합니다. 이 옵션을 선택하는 경우 다음 세부정보를 지정합니다.
- SNC_LIB 객체 ID: SNC 라이브러리의 객체 ID입니다.
- PSE 이름: 버킷에 적용할 수 있는 개인 보안 환경 (PSE) 파일의 이름입니다. PSE 파일은 공개 및 비공개 키 쌍과 X.509 인증서를 ASN.1 구조로 저장합니다.
- SNC 비밀번호: SNC 라이브러리 비밀번호의 Secret Manager 보안 비밀을 선택합니다.
- 보안 비밀 버전: 보안 비밀 버전을 선택합니다.
- SNC 이름: SNC 연결의 이름을 입력합니다.
-
SNC qop: 보호 수준을 선택합니다. 지원되는 수준은 다음과 같습니다.
- 1 - 인증만 적용됩니다.
- 2 - 무결성 보호가 적용됩니다. 여기에는 인증 보호도 포함됩니다.
- 3 - 개인 정보 보호 기능이 적용됩니다. 여기에는 무결성 및 인증 보호도 포함됩니다.
- 8 - 기본 보호가 적용됩니다.
- 9 - 최대 보호가 적용됩니다.
- SNC 파트너 이름: 애플리케이션 서버의 SNC 이름을 입력합니다.
-
연결 스키마: 메시지 서버 (그룹 서버)를 사용하여 SAP 시스템에 연결할지 애플리케이션 서버를 사용하여 SAP 시스템에 연결할지 지정합니다. 메시지 서버가 있는 SAP 시스템에 연결하기 위해 충족해야 하는 기본 요건에 대한 자세한 내용은 메시지 서버 (그룹 서버) 연결 유형을 참고하세요.
GroupServer를 선택하는 경우 다음 세부정보를 지정해야 합니다.
- 메시지 서버: 부하 분산을 사용하는 SAP 시스템에 연결할 때 메시지 서버를 지정합니다.
- 메시지 서버 서비스: 연결할 메시지 서버 서비스입니다.
- 그룹: 사용되는 로그온 그룹입니다. 부하 분산을 사용하는 SAP 시스템에 연결할 때만 지정해야 합니다.
메시지 서버 (그룹 서버)를 사용하여 SAP 시스템에 연결하는 경우 대상 섹션에 호스트 주소를 지정할 필요가 없습니다.
- 필요한 경우 연결 노드 설정을 구성합니다.
- 최소 노드 수: 최소 연결 노드 수를 입력합니다.
- 최대 노드 수: 최대 연결 노드 수를 입력합니다.
노드는 트랜잭션을 처리하는 연결의 단위(또는 복제본)입니다. 연결에 대해 더 많은 트랜잭션을 처리하려면 더 많은 노드가 필요합니다. 이와 반대로 더 적은 트랜잭션을 처리하기 위해서는 더 적은 노드가 필요합니다. 노드가 커넥터 가격 책정에 미치는 영향을 파악하려면 연결 노드 가격 책정을 참조하세요. 값을 입력하지 않으면 기본적으로 최소 노드가 (높은 가용성을 위해) 2로 설정되고 최대 노드는 50으로 설정됩니다.
- 필요한 경우 + 라벨 추가를 클릭하여 키-값 쌍의 형식으로 연결에 라벨을 추가합니다.
- 다음을 클릭합니다.
- 대상 섹션에서 연결하려는 원격 호스트(백엔드 시스템)의 세부정보를 입력합니다. 메시지 서버를 사용하여 SAP 시스템에 연결하는 경우 호스트 주소를 지정할 필요가 없습니다.
- 대상 유형: 대상 유형을 선택합니다.
- 목록에서 호스트 주소를 선택하여 대상의 호스트 이름 또는 IP 주소를 지정합니다.
- 백엔드 시스템에 비공개 연결을 설정하려면 목록에서 엔드포인트 연결을 선택한 다음 엔드포인트 연결 목록에서 필요한 엔드포인트 연결을 선택합니다.
추가 보안을 사용하여 백엔드 시스템에 공개 연결을 설정하려면 연결의 고정 아웃바운드 IP 주소를 구성한 후 방화벽 규칙을 구성하여 특정 고정 IP 주소만 허용 목록에 추가합니다.
추가 대상을 입력하려면 +대상 추가를 클릭합니다.
- 다음을 클릭합니다.
- 대상 유형: 대상 유형을 선택합니다.
-
인증 섹션에서 인증 세부정보를 입력합니다.
- 인증 유형을 선택하고 관련 세부정보를 입력합니다.
SAP ERP 연결에서는 다음 인증 유형이 지원됩니다.
- X509 인증서 기반 인증
- 사용자 이름 및 비밀번호
- 다음을 클릭합니다.
이러한 인증 유형을 구성하는 방법은 인증 구성을 참조하세요.
- 인증 유형을 선택하고 관련 세부정보를 입력합니다.
- 이벤트 구독을 사용 설정한 경우 이벤트 구독 세부정보 섹션이 연결 만들기 페이지에 표시됩니다. 이벤트 구독 세부정보를 구성하는 방법은 이벤트 구독 구성을 참조하세요.
- 검토: 연결 및 인증 세부정보를 검토합니다.
- 만들기를 클릭합니다.
-
X509Certificate 기반 인증
- X509Certificate: 로그인하는 데 사용되는 X509 인증서입니다.
- 보안 비밀 버전: 보안 비밀 버전을 선택합니다.
-
사용자 이름 및 비밀번호
- 사용자 이름: 커넥터의 사용자 이름입니다.
- 비밀번호: 커넥터와 연결된 비밀번호가 포함된 Secret Manager 보안 비밀입니다.
-
다음에서 이벤트 리스너의 인증 유형을 선택합니다.
- Google 인증. 이 옵션을 사용 설정하는 경우 JSON 웹 토큰을 사용하여 인증의 단계에 따라 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 주제입니다.
RFC_READ_TABLE
함수를 새 함수의 템플릿으로 사용합니다. 트랜잭션 코드SE37
및SDTX
함수 그룹을 선택하고RFC_READ_TABLE
을 새 함수 그룹이나 작업 함수 그룹에 복사합니다. 이 예시에서는RFC_READ_TABLE
이Z_CUSTOM_READ_TABLE
에 복사됩니다.- SAP 화면의 속성 탭에서
Remote Enabled Module
을 선택합니다. - 테이블 탭에서
DATA
매개변수를CHAR8000
으로 설정합니다. 화면을 마우스 오른쪽 버튼으로 클릭한 후 표시 -> 변경을 클릭합니다. - 소스 코드 탭에서 설치 디렉터리의
db
하위 폴더에 있는 대체RFC_READ_TABLE
함수 모듈의 소스 코드 예시를 붙여넣습니다. 코드는Z_CUSTOM_READ_TABLE.txt
에 있지만 SAP ERP 인스턴스에서 ABAP 버전 7.52 이상이 실행되는 경우에는Z_CUSTOM_READ_TABLE_752.txt
가 권장됩니다. - 저장을 클릭합니다.
- 제공된 커스텀 읽기 표에 설명된 대로 가져오기, 테이블, 예외를 정의합니다.
- 함수 모듈을 활성화하고 연결 문자열에서
ReadTableFunction
을Z_CUSTOM_READ_TABLE
또는 함수 모듈 이름으로 설정합니다. - 모든 태스크 및 트리거 알아보기
- 통합을 테스트하고 게시하는 방법 알아보기
- 오류 처리 알아보기
- 통합 실행 로그 알아보기
SAP ERP 트리거 추가
SAP ERP 트리거를 통합에 추가하려면 다음 단계를 따르세요.
SAP ERP 트리거를 구성하려면 Integration Connectors에서 제공하는 기존 SAP ERP 연결을 사용하거나 인라인 연결 만들기 옵션을 사용하여 새 SAP ERP 연결을 만들면 됩니다.
기존 연결을 사용하여 SAP ERP 트리거 구성
SAP ERP 트리거는 커넥터 이벤트 트리거이므로 이벤트 구독이 사용 설정된 SAP ERP 연결만 사용하여 트리거를 구성할 수 있습니다.
새 SAP ERP 연결을 사용하여 SAP ERP 트리거를 구성하는 방법에 대한 자세한 내용은 새 연결을 사용하여 SAP ERP 트리거 구성을 참조하세요.
기존 SAP ERP 연결을 사용하여 SAP ERP 트리거를 구성하려면 다음 단계를 따르세요.
새 연결을 사용하여 SAP ERP 트리거 구성
인증 구성
사용할 인증을 기반으로 세부정보를 입력합니다.
이벤트 구독 구성
이벤트 구독을 사용 설정하는 경우 ABAP SDK를 구성해야 합니다. ABAP SDK 구성에 관한 자세한 내용은 ABAP SDK for Google Cloud 개요를 참고하세요.
이벤트 구독 세부정보 섹션에 다음 값을 입력합니다.
커스텀 테이블 읽기 함수 사용
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
의 제한사항을 우회하려면 다음 단계를 수행합니다.
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.
할당량 및 한도
할당량 및 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.