SAP용 비즈니스 이벤트 도구 키트 설치 및 구성

이 문서에서는 SAP용 비즈니스 이벤트 툴킷을 설치하고 구성하는 방법을 설명합니다.

SAP용 비즈니스 이벤트 도구 키트 설치

ABAP SDK for Google Cloud의 최신 버전 온프레미스 또는 모든 클라우드 버전을 설치하면 SAP용 비즈니스 이벤트 도구 키트가 자동으로 설치됩니다. 설치 단계에 관한 자세한 내용은 ABAP SDK for Google Cloud의 온프레미스 또는 모든 클라우드 버전 설치 및 구성을 참고하세요.

ABAP SDK for Google Cloud의 온프레미스 버전 1.9 이하 또는 임의의 클라우드 버전을 사용 중인 경우 최신 버전으로 SDK를 업데이트하여 SAP용 비즈니스 이벤트 도구 키트를 가져옵니다. 자세한 내용은 ABAP SDK for Google Cloud 업데이트를 참고하세요.

대상 Google Cloud API 사용 설정

타겟 Google Cloud 서비스를 사용하기 전에 프로젝트에서 상응하는Google Cloud API가 사용 설정되어 있는지 확인합니다. 예를 들어 Pub/Sub에 이벤트를 게시하려면 Pub/Sub API를 사용 설정하세요.

Google Cloud API를 사용 설정하는 방법에 관한 자세한 내용은 API 사용 설정을 참고하세요.

인증 설정

ABAP SDK for Google Cloud의 온프레미스 또는 클라우드 버전에서 Google Cloud API에 액세스하기 위한 인증을 설정해 두면 SAP용 비즈니스 이벤트 도구 키트는 동일한 인증 방법을 사용하여 Google Cloud API에 SAP 이벤트를 게시합니다. ABAP SDK for Google Cloud의 온프레미스 또는 클라우드 버전에서 인증을 설정하는 방법에 관한 자세한 내용은 인증 개요를 참고하세요.

ABAP SDK for Google Cloud 클라이언트 키 구성에 구성된 서비스 계정에 타겟Google Cloud 서비스에 맞는 필수 IAM 역할이 있는지 확인합니다.

인증 설정의 일부로 만든 클라이언트 키를 기록해 둡니다. SAP 시스템에서 SAP용 비즈니스 이벤트 도구 키트를 구성할 때 이 클라이언트 키를 사용합니다.

CloudEvent 속성 구성

CloudEvent 속성의 기본값을 유지할 수 있습니다. 이러한 값은 테이블 /GOOG/CE_DEFAULT에 저장됩니다.

이 구성은 선택사항입니다. CloudEvent 속성을 전달하거나 코드에서 직접 기본 속성을 재정의할 수 있습니다.

CloudEvent 속성을 구성하려면 다음 단계를 따르세요.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 비즈니스 이벤트 처리: Cloud 이벤트의 컨텍스트 속성 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. 다음 필드에 값을 입력합니다.

    필드 데이터 유형 설명
    Cloud 이벤트 기본 속성 키 String 기본 CloudEvent 속성 구성의 이름을 지정합니다. 예: CLOUD_EVENT_ATTRIBUTE_KEY
    소스 String 이벤트가 발생한 컨텍스트를 식별하는 URI 참조를 제공합니다.
    ID String 이벤트의 고유 식별자입니다. 제작자는 고유한 이벤트마다 소스 + ID가 고유하도록 보장해야 합니다.
    사양 버전 String 이벤트에서 사용하는 CloudEvents 사양 버전입니다. 이 필드를 비워두면 시스템에서 1.0을 사용합니다.
    유형 String 발생한 이벤트 유형을 설명합니다. 라우팅, 관측 가능성, 정책 시행에 주로 사용됩니다.
    데이터 콘텐츠 유형 String 데이터 값의 Content-type입니다. 데이터가 모든 유형의 콘텐츠를 전송할 수 있도록 합니다.
    데이터 스키마 String 데이터가 준수하는 스키마를 식별하는 URI입니다.
    제목 String 이벤트 프로듀서의 맥락에서 이벤트의 주제를 설명합니다.

    이러한 필드에 대한 자세한 내용은 CloudEvents 컨텍스트 속성을 참고하세요.

  5. 새 항목을 저장합니다.

타겟 Google Cloud 서비스 구성

이 설정을 사용하여 이벤트의 타겟 Google Cloud 서비스를 유지할 수 있습니다.

이 설정은 SAP용 비즈니스 이벤트 도구 키트를 사용하여 SAP에서 서비스로 이벤트를 게시할 때 사용됩니다. Google Cloud

타겟 Google Cloud 서비스를 구성하려면 다음 단계를 따르세요.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 비즈니스 이벤트 처리: 이벤트의 Google Cloud 타겟 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. 다음 필드에 값을 입력합니다.

    필드 데이터 유형 설명
    이벤트 키 String 게시자 이벤트 구성의 이름을 지정합니다. 예를 들면 EVENT_KEY입니다.
    이벤트 프로세서 클래스 String

    이벤트의 프로세서 클래스를 지정합니다. 타겟 Google Cloud 서비스에 따라 다음 옵션 중 하나를 선택합니다.

    • /GOOG/CL_PUBLISHER_PUBSUB: Pub/Sub에 이벤트를 게시합니다.
    • /GOOG/CL_PUBLISHER_CLOUDFUNC: Cloud Run 함수에 이벤트를 게시하는 경우
    • /GOOG/CL_PUBLISHER_FCM: Firebase 클라우드 메시징 (FCM)에 이벤트를 게시하는 경우
    • /GOOG/CL_PUBLISHER_CONNECTORS: Integration Connectors API에 이벤트를 게시하는 경우
    Google Cloud 키 이름 String 인증 설정 중에 Google Cloud Google Cloud에 인증하기 위해 구성된 클라이언트 키입니다.
    이벤트 매개변수 1 String 사용하려는 대상 Google Cloud 서비스에 필요한 추가 속성을 지정합니다.
    이벤트 매개변수 2 String 사용하려는 대상 Google Cloud 서비스에 필요한 추가 속성을 지정합니다.
    이벤트 매개변수 3 String 사용하려는 대상 Google Cloud 서비스에 필요한 추가 속성을 지정합니다.
    Cloud 이벤트 기본 속성 키 String 이벤트를 CloudEvent로 전송하려면 CloudEvent 속성 구성 섹션에서 구성한 해당 기본 속성 키의 값을 제공합니다.
    Cloud 이벤트: 인코딩 String

    CloudEvents 인코딩에 적절한 모드를 선택합니다.

    • 구조화됨: CloudEvent 속성이 요청 본문에서 전달됩니다.
    • 바이너리: CloudEvent 속성이 요청 헤더에 전달됩니다.

    CloudEvents 사양을 우회하여 원시 이벤트 데이터를 Google Cloud 서비스로 직접 전송해야 하는 시나리오의 경우 이 입력란을 비워 둡니다.

  5. 새 항목을 저장합니다.

게시자 모듈 확장

사전 빌드된 타겟 외의 다른 Google Cloud 서비스 또는 맞춤 타겟과 통합하려면 자체 구현을 만들어 게시자 모듈을 확장하면 됩니다.

맞춤 구현을 만들려면 다음 단계를 따르세요.

  1. SAP 트랜잭션 SE24에서 /GOOG/CL_PUBLISHER_BASE에서 상속받는 새 클래스를 만듭니다.
  2. PUBLISH_EVENTVALIDATE_PARAMS 메서드를 구현합니다.

    • PUBLISH_EVENT: 이벤트 데이터를 대상으로 전송하는 맞춤 로직이 포함되어 있습니다. 입력 매개변수를 매핑하고 데이터를 전송한 후 타겟의 응답으로 출력 구조를 채웁니다.
    • VALIDATE_PARAMS: 필요한 모든 매개변수가 테이블 /GOOG/CE_ROUTER에 구성되어 있는지 확인할 수 있습니다. 필수 값이 누락된 경우 /GOOG/CX_SDK 유형의 예외를 발생시킵니다.

ABAP 코드가 실행되면 게시자 클래스는 이 테이블에서 구성을 읽어 이벤트 게시 프로세스를 안내합니다.

비즈니스 이벤트 리스너 구성

비즈니스 객체 변경으로 인해 트리거된 이벤트를 캡처하려면 각 비즈니스 객체에 이벤트 리스너를 구성해야 합니다.

비즈니스 이벤트 연결 만들기

SAP용 비즈니스 이벤트 도구 키트를 사용하여 비즈니스 이벤트 연결을 만들어 중요한 SAP 비즈니스 객체 변경사항을 자동으로 트리거하고 Google Cloud 서비스에 이벤트로 게시합니다.

이 연결을 통해 비즈니스 이벤트의 리스너 역할을 하는 수신기를 정의합니다.

비즈니스 이벤트 연결을 만들려면 다음 단계를 따르세요.

  1. SAP GUI에서 트랜잭션 코드 SWETYPV를 실행합니다.

  2. 새 항목을 클릭합니다.

  3. 적절한 비즈니스 객체 카테고리와 비즈니스 객체 유형을 지정합니다.

  4. SAP용 비즈니스 이벤트 도구 키트를 사용하여 이벤트를 수신 대기하고 전달할 이벤트를 지정합니다.

  5. 수신자 유형 필드에 Google_Cloud 또는 Google을 입력합니다.

  6. 연결 설정 (수신기) 섹션에서 다음을 입력합니다.

    • 수신자 호출: 드롭다운 목록에서 방법을 선택합니다.
    • 클래스 이름: /GOOG/CL_BO_EVENT_FORWARD을 입력합니다.
  7. Linkage Activated(연결 활성화됨) 체크박스를 선택합니다.

  8. 구성을 저장합니다.

이벤트 리스너를 이벤트 키에 매핑

SAP용 비즈니스 이벤트 도구 키트가 Google Cloud 통합을 위해 특정 SAP 비즈니스 이벤트를 처리하는 방식을 정의하려면 비즈니스 이벤트 리스너를 이벤트 게시의 설정을 유지하는 이벤트 키에 매핑합니다.

이벤트 리스너를 이벤트 키에 매핑하려면 다음 단계를 따르세요.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 비즈니스 이벤트 처리: 비즈니스 객체의 이벤트 리스너 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. 다음 필드에 값을 입력합니다.

    필드 데이터 유형 설명
    객체 유형 CHAR 트랜잭션 SWETYPV에서 구성한 비즈니스 객체의 이름입니다.
    이벤트 CHAR 비즈니스 객체에 연결된 이벤트의 이름입니다.
    수신자 이름 CHAR 객체 유형과 이벤트의 조합에 대해 트랜잭션 SWETYPV에 구성된 수신기의 이름입니다.
    이벤트 키 CHAR 타겟 서비스 구성 Google Cloud 섹션에 유지되는 게시자 이벤트 구성의 이름입니다.
    프로세서 클래스 CHAR

    선택사항입니다. 이벤트 본문을 채우거나 확장 프로그램 속성을 확장하는 추가 로직을 작성한 프로세서 클래스의 이름입니다. 이 클래스는 /GOOG/IF_BOR_EVNT_DATA_HANDLER 인터페이스를 구현해야 합니다.

    프로세서 클래스를 만드는 방법에 관한 자세한 내용은 프로세서 클래스 확장을 참고하세요.

  5. 구성을 저장합니다.

기본 본문 및 Cloud Event 확장 속성

기본적으로 Pub/Sub에 이벤트를 게시하면 이벤트 리스너가 비즈니스 이벤트 컨테이너에서 대상Google Cloud 서비스로 다음 속성을 전달합니다.

{
  "EVENT_OBJECT": "BUS2012",
  "EVENT_OBJECT_KEY": "450000011",
  "EVENT_NAME": "CHANGED",
  "EVENT_CREATOR": "USER-ID",
  "EVENT_CREATION_DATE": "20250321",
  "EVENT_CREATION_TIME": "135050",
  "EVENT_CREATION_TIMESTAMP": "20250321135050",
  "EVENT_CREATION_LANGUAGE": "EN"
}

클라우드 이벤트 속성이 구성된 경우 페이로드 구조는 다음과 같습니다.

{
  "eventObjectType": "BUS2012", - Picked from Event Container
  "eventObjectKey": "450000011", - Picked from Event Container
  "eventName": "RELEASED", - Picked from Event Container
  "eventCreator": "USER", - Picked from Event Container
  "eventCreationDate": "20250321", -Picked from Event Container
  "eventCreationTime": "135850", - Picked from Event Container
  "eventCreationTimestamp": "20250321135850", - Picked from Event Container
  "id": "D5D1CB352A321FD081FFF6EEA9566190", - Auto Populated
  "source": "sap-s4hana-doc",  - Picked from CE Defaults
  "type": "pochanged", - Picked from CE Defaults
  "specversion": "1.0", - Picked from CE Defaults
  "time": "2025-04-09T16:16:38Z", - Auto Populated
  "subject": "test-subject-A" - Picked from CE Defaults Table
}

이벤트 리스너에서 프로세서 클래스를 만들고 구성하면 결과 페이로드에 맞춤 페이로드 구조가 반영됩니다.

프로세서 클래스 확장

SAP용 비즈니스 이벤트 도구 키트를 사용하면 데이터를 설정하고 클라우드 이벤트에 확장 속성을 추가할 수 있습니다. 이렇게 하려면 /GOOG/IF_BOR_EVNT_DATA_HANDLER 인터페이스를 상속하고 인터페이스 메서드 FILL_EVENT_DATA를 구현하는 클래스를 구현합니다. 이 메서드에는 다음과 같은 가져오기 및 변경 매개변수가 있습니다.

이름 유형 연결된 유형 설명
SENDER 가져오는 중 SIBFLPORB 로컬 영구 객체 참조: BOR 호환
EVENT 가져오는 중 SIBFEVENT 이벤트
EVENT_CONTAINER 가져오는 중 IF_SWF_IFS_PARAMETER_CONTAINER 참조 유형 매개변수 전송을 위한 컨테이너
RECTYPE 가져오는 중 SWFERECTYP 수신기 유형의 이름
HANDLER 가져오는 중 SIBFLPORB 로컬 영구 객체 참조: BOR 호환
CT_DATA 변경 중 /GOOG/CL_PUBLISHER_BASE=>TT_MESSAGES 메시지 표
CT_CE_EXTN_ATTRIBUTES 변경 중 /GOOG/T_CE_ATTR_VALUE Cloud Event: 속성 이름, 값 쌍 테이블

PO 헤더 정보를 클라우드 이벤트 본문으로 포함하는 비즈니스 객체 BUS2012 (구매 주문)의 샘플 구현:

 TYPES: BEGIN OF ty_event_attributes,
             ekgrp TYPE ekgrp,
             werks TYPE werks_d,
             stlnr TYPE stnum,
             stlal TYPE mast-stlal,
             stlty TYPE stko-stlty,
           END OF ty_event_attributes.
    DATA: ls_po_header TYPE bapimepoheader.

    DATA: ls_event_attributes TYPE ty_event_attributes,
          lv_json             TYPE string.

    DATA ls_data TYPE /goog/cl_publisher_base=>ty_message.

    CALL FUNCTION 'BAPI_PO_GETDETAIL1'
      EXPORTING
        purchaseorder = '4500000007'
      IMPORTING
        poheader      = ls_po_header.

    /ui2/cl_json=>serialize(
      EXPORTING
        data   = ls_po_header
      RECEIVING
        r_json = lv_json
    ).

    ls_data-data = lv_json.
    APPEND ls_data TO ct_data.

RAP 이벤트 리스너 구성

Google Cloud에 전송하려는 각 RAP 이벤트에 대해 이벤트 핸들러 클래스를 만들어야 합니다. 이 이벤트 핸들러 클래스는 해당 RAP 이벤트의 이벤트 리스너 역할을 합니다.

이벤트 핸들러 클래스를 프로그래매틱 방식으로 만들려면 GitHub에서 제공되는 커뮤니티 리소스를 사용하면 됩니다. RAP 항목 세부정보를 제공하고 이벤트 핸들러 클래스를 생성해야 합니다. 이벤트 객체에 대한 자세한 내용은 SAP 문서 SAP Business Accelerator Hub를 참고하세요.

이벤트 핸들러 클래스를 수동으로 만들려면 다음 단계를 따르세요.

  1. RAP 이벤트를 위한 ABAP 클래스를 만듭니다.

    1. ABAP 패키지를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > ABAP 클래스를 선택합니다.
    2. ABAP 클래스에 대해 다음 세부정보를 입력합니다.

      • 이름: 클래스의 이름입니다(예: ZCL_PRODUCT_EXT).
      • 설명: 클래스에 대한 설명입니다(예: Event handler for RAP events).
    3. 마침을 클릭합니다.

  2. 다음과 같이 클래스 정의를 업데이트합니다.

      class CLASS_NAME definition
      public
      abstract
      final
      for events of RAP_ENTITY_NAME .
    
        public section.
        protected section.
        private section.
        ENDCLASS.
    
    CLASS CLASS_NAME IMPLEMENTATION.
    ENDCLASS.
    

    다음을 바꿉니다.

    • CLASS_NAME: 클래스의 이름입니다(예: ZCL_PRODUCT_EXT).
    • RAP_ENTITY_NAME: RAP 항목의 이름입니다(예: R_PRODUCT).
  3. 로컬 유형 탭을 열고 로컬 구현을 만듭니다.

    CLASS lcl_event_extension DEFINITION INHERITING FROM cl_abap_behavior_event_handler.
    
    PRIVATE SECTION.
      METHODS on_EVENT_NAME FOR ENTITY EVENT
         created FOR RAP_ENTITY_NAME~EVENT_NAME.
    ENDCLASS.
    
    CLASS lcl_event_extension IMPLEMENTATION.
    
      METHOD on_EVENT_NAME.
        TRY.
            /goog/cl_event_publisher=>publish_event(
              EXPORTING
                iv_event_key = 'EVENT_KEY'
                it_data      = VALUE #( FOR <ls_created> IN created (
                                        data = /goog/cl_json=>serialize( data = <ls_created> ) ) )
              IMPORTING
                et_output    = DATA(lt_output)
            ).
          CATCH /goog/cx_sdk INTO DATA(lo_exp).
    "Error handling logic here
        ENDTRY.
      ENDMETHOD.
    ENDCLASS.
    

다음을 바꿉니다.

  • EVENT_NAME: 이벤트 이름입니다(예: CREATED).
  • RAP_ENTITY_NAME: RAP 항목의 이름입니다(예: ZCL_PRODUCT_EXT).
  • EVENT_KEY: 대상 구성이 있는 이벤트 키입니다.

IDoc 이벤트 리스너 구성

IDoc 변경으로 인해 트리거된 이벤트를 캡처하려면 IDoc 이벤트에 대한 이벤트 리스너를 구성해야 합니다.

IDoc 이벤트 리스너 구성

SAP용 비즈니스 이벤트 도구 키트가 통합을 위해 IDoc 이벤트를 처리하는 방식을 정의하려면 Google Cloud IDoc 이벤트의 이벤트 리스너를 구성합니다. IDoc 이벤트 리스너를 이벤트 게시의 설정을 유지하는 이벤트 키에 매핑합니다.

IDoc 이벤트 리스너를 구성하려면 다음 단계를 따르세요.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 비즈니스 이벤트 처리: IDoc의 이벤트 리스너 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. 다음 필드에 값을 입력합니다.

    필드 데이터 유형 설명
    기본 유형 CHAR 이벤트를 Google Cloud에 전송할 IDoc 기본 유형의 이름입니다(예: MATMAS05).
    IDoc 방향 CHAR IDoc의 방향: 인바운드 또는 아웃바운드
    이벤트 키 CHAR 타겟 서비스 구성 Google Cloud 섹션에 유지되는 게시자 이벤트 구성의 이름입니다.
    프로세서 클래스 CHAR

    선택사항입니다. 이벤트 본문을 채우거나 확장 프로그램 속성을 확장하는 추가 로직을 작성한 프로세서 클래스의 이름입니다. 이 클래스는 /GOOG/IF_IDOC_EVT_DATA_HANDLER 인터페이스를 구현해야 합니다.

    프로세서 클래스를 만드는 방법에 관한 자세한 내용은 프로세서 클래스 확장을 참고하세요.

  5. 구성을 저장합니다.

기본 본문 및 Cloud Event 확장 속성

기본적으로 Pub/Sub에 이벤트를 게시하면 이벤트 리스너가 다음 속성을 전달합니다.

{
  "messages": [
    {
      "attributes": {
        "idocNumber": "0000000000000134",
        "direct": "1",
        "messageType": "MATMAS",
        "basicType": "MATMAS05",
        "createdOn": "20250515",
        "createdAt": "132254",
        "updatedOn": "20250410",
        "updatedAt": "144958"
      },
      "data": [
        {
          "mandt": "100",
          "docnum": "0000000000000132",
          "segnum": "000001",
          "segnam": "E1MARAM",
          "hlevel": "02",
          "dtint2": 1000,
          "sdata": "    TEST-MATNR-IDOC-0111032025KRITIS       11032025KRITIS     KL                  ROH C01                       EA"
        },
        {
          "mandt": "100",
          "docnum": "0000000000000132",
          "segnum": "000002",
          "segnam": "E1MARA1",
          "psgnum": "000001",
          "hlevel": "03",
          "dtint2": 1000
        }
        // ...additional IDOC segments
      ]
    }
  ]
}

클라우드 이벤트 속성이 구성된 경우 페이로드 구조는 다음과 같습니다.

{
  "id": "D5D1CB352A321FD081FFF6EEA9566190",   // Auto Populated
  "source": "sap-s4hana-doc",               // Picked from CE Defaults
  "type": "pochanged",                      // Picked from CE Defaults
  "specversion": "1.0",                     // Picked from CE Defaults
  "time": "2025-04-09T16:16:38Z",           // Auto Populated
  "subject": "test-subject-A",              // Picked from CE Defaults Table
  "messages": [
    {
      "attributes": {
        "idocNumber": "0000000000000134",
        "direct": "1",
        "messageType": "MATMAS",
        "basicType": "MATMAS05",
        "createdOn": "20250515",
        "createdAt": "132254",
        "updatedOn": "20250410",
        "updatedAt": "144958"
      },
      "data": [
        {
          "mandt": "100",
          "docnum": "0000000000000132",
          "segnum": "000001",
          "segnam": "E1MARAM",
          "hlevel": "02",
          "dtint2": 1000,
          "sdata": "    TEST-MATNR-IDOC-0111032025KRITIS       11032025KRITIS     KL                  ROH C01                       EA"
        },
        {
          "mandt": "100",
          "docnum": "0000000000000132",
          "segnum": "000002",
          "segnam": "E1MARA1",
          "psgnum": "000001",
          "hlevel": "03",
          "dtint2": 1000
        }
        // ...additional IDOC segments
      ]
    }
  ]
}

이벤트 리스너에서 프로세서 클래스를 만들고 구성하면 결과 페이로드에 맞춤 페이로드 구조가 반영됩니다.

프로세서 클래스 확장

SAP용 비즈니스 이벤트 도구 키트를 사용하면 이벤트 데이터를 맞춤설정하고 클라우드 이벤트에 확장 속성을 추가할 수 있습니다. 이렇게 하려면 /GOOG/IF_IDOC_EVT_DATA_HANDLER 인터페이스를 상속하고 인터페이스 메서드 FILL_EVENT_DATA를 구현하는 클래스를 구현합니다.

FILL_EVENT_DATA 메서드에는 다음과 같은 매개변수가 있습니다.

이름 유형 연결된 유형 설명
IS_IDOC_CONTRL 가져오는 중 EDIDC IDoc의 제어 레코드입니다.
IT_IDOC_DATA 가져오는 중 TAB_EDIDD IDoc 데이터 레코드 테이블입니다.
CT_DATA 변경 중 /GOOG/CL_PUBLISHER_BASE=>TT_MESSAGES 메시지 표
CT_CE_EXTN_ATTRIBUTES 변경 중 /GOOG/T_CE_ATTR_VALUE Cloud Event: 속성 이름, 값 쌍 테이블

IDoc 이벤트 게시를 표준 SAP IDoc 프로세스와 통합

IDoc 이벤트를 Google Cloud 서비스에 게시하려면 SAP의 IDoc 이벤트 전달 로직을 위한 비즈니스 이벤트 도구 키트를 기존 SAP IDoc 처리에 통합해야 합니다. 이렇게 하면 IDoc가 생성, 변경 또는 특정 상태에 도달하면 데이터가 이벤트로 자동 게시됩니다.

다음 방법 중 하나를 사용하여 IDoc 이벤트 게시를 통합할 수 있습니다.

IDOC_DATA_MAPPER BAdI 사용

IDOC_DATA_MAPPER 비즈니스 부가기능 (BAdI)을 사용하면 수신 및 발신 IDoc 처리 중에 트리거되는 맞춤 로직을 구현할 수 있습니다. 이 BAdI를 사용하여 IDoc 이벤트를 Google Cloud에 게시할 수 있습니다.

IDOC_DATA_MAPPER BAdI를 구현하려면 다음을 실행합니다.

  1. 트랜잭션 SE18를 엽니다.
  2. BAdI 이름 필드에 IDOC_DATA_MAPPER을 입력합니다.
  3. 구현 메뉴로 이동하여 만들기를 선택합니다.
  4. Name of Enhancement Implementation(개선사항 구현 이름) 필드에 개선사항 구현의 이름을 입력합니다(예: ZEI_IDOC_DATA_MAPPER).
  5. 구현 내에서 구현 클래스의 이름을 /GOOG/CL_IM_BADI_IDOC_MAPPER로 업데이트합니다.
  6. BAdI 구현을 활성화합니다.

기존 개선사항 종료 사용

IDoc 처리 흐름에 기존 개선사항 종료가 있는 경우 IDoc 이벤트 게시 로직을 종료에 직접 삽입할 수 있습니다.

개선사항 종료에 다음 ABAP 스니펫을 삽입합니다.

DATA : lt_return TYPE bapiret2_t.

/goog/cl_idoc_event_forward=>publish_event(
      EXPORTING
        is_control = IDOC_CONTROL " Replace with your IDoc control record
        it_data    = IDOC_DATA " Replace with your IDoc data records
      IMPORTING
        et_return  = lt_return
).

" Handle errors if LT_RETURN contains erroneous records.

다음을 바꿉니다.

맞춤 함수 모듈 사용 (OWN_FUNCTION 템플릿 기반)

아웃바운드 IDoc 이벤트를 게시할 때 표준 OWN_FUNCTION 템플릿을 기반으로 하는 맞춤 함수 모듈을 호출하도록 SAP IDoc 처리를 구성할 수 있습니다. 이 맞춤 함수 모듈을 사용하면 데이터가 타겟 서비스로 전송되기 전에 IDoc 데이터를 처리하고 이벤트 게시를 트리거할 수 있습니다. Google Cloud

커스텀 함수 모듈을 사용하여 아웃바운드 IDoc 이벤트를 게시하는 자세한 구성 단계는 SAP 유틸리티용 비즈니스 이벤트 도구 키트를 참고하세요. 맞춤 함수를 구현하는 동안 GitHub에서 제공되는 샘플 Z 구현을 사용할 수 있습니다.

지원 받기

ABAP SDK for Google Cloud 문제를 해결하는 데 도움이 필요한 경우 다음을 수행하세요.