이 문서에서는 ABAP SDK for Google Cloud 온프레미스 또는 클라우드 버전을 사용하여 SAP 애플리케이션을 개발하는 데 유용한 정보와 리소스를 제공합니다.
이 문서는 SAP ABAP 개발자를 대상으로 합니다.
ABAP SDK for Google Cloud 온프레미스 또는 클라우드 버전이 제공하는 클라이언트 라이브러리의 전체 목록은 ABAP SDK for Google Cloud 온프레미스 또는 클라우드 버전 클라이언트 라이브러리를 참조하세요.
단일 창 상호작용
ABAP SDK for Google Cloud에서 사용 설정된 각 Google Cloud API는 /GOOG/CLIENT
패키지에 포함된 ABAP 클래스로 표시됩니다. ABAP 클래스는 여러 공개 메서드로 구성되며, 이러한 각 공개 메서드는 Google Cloud API 메서드에 해당합니다. 각 공개 메서드는 다시 IMPORTING
매개변수와 EXPORTING
매개변수로 구성됩니다. ABAP 클래스에는 또한 IMPORTING
및 EXPORTING
매개변수를 생성 및 매핑하는 데 사용할 수 있는 커스텀 데이터 유형이 포함되어 있습니다. 이러한 커스텀 데이터 유형은 API 스키마 정의에 매핑됩니다.
대상 Google Cloud API와의 모든 상호작용에 대해 해당 ABAP 클래스는 유일한 상호작용 지점으로 작동합니다. 이 개념을 단일 창 상호작용이라고 하며, Google Cloud API와의 상호작용의 모든 복잡한 요소를 보호하며 간소화된 인터페이스를 제공합니다. 이러한 간소화된 인터페이스를 통해 기본 SDK 기능을 걱정할 필요 없이 SDK를 사용하여 개발 중인 비즈니스 솔루션에 집중할 수 있습니다.
상호작용 흐름
API 메서드를 호출하기 위한 상호작용 흐름은 다음과 같습니다.
- API에 연결합니다.
- ABAP 유형을 사용하여 입력 요청을 생성합니다.
- API 메서드를 호출합니다.
- 오류 및 예외를 파싱합니다.
- ABAP 유형을 사용하여 응답을 읽습니다.
API 클라이언트 스텁
일반적인 API 클라이언트 스텁 클래스는 다음 섹션으로 구성됩니다.
- API 스키마에 매핑되는 ABAP 유형. ABAP 유형을 사용하여 입력 요청을 생성하고 응답을 파싱합니다.
- 내부 또는 외부 사용을 위한 상수 및 속성
- API 리소스와 상호작용하기 위한 API 메서드
기능
ABAP SDK for Google Cloud의 기능은 다음과 같습니다.
- HTTP 통신: SDK가 API 엔드포인트와 HTTP 연결을 설정합니다.
- 요청 마샬링: SDK가 ABAP 유형의 데이터를 요청 본문으로 전송되는 JSON 페이로드로 변환합니다.
- 오류 및 예외 처리: SDK가 API로 반환되는 반환 코드 및 오류 메시지를 처리하고 예외를 일으킵니다(있는 경우).
- 언마샬링 응답: SDK는 응답 본문의 JSON 페이로드를 다시 해당 ABAP 유형으로 변환합니다.
- 로컬 오류 로깅: SDK는 로깅 프레임워크를 사용하여 오류 메시지를 로깅합니다.
API 디자인 및 API 탐색기
Google에서 게시된 API는 리소스 중심 디자인을 따릅니다. Google API 디자인에 대해 자세히 알아보려면 API 디자인 가이드를 참조하세요.
ABAP SDK for Google Cloud를 사용하면 Google에서 게시한 REST 기반 API와 통합할 수 있습니다.
API 탐색기는 코드 작성 없이 Google Cloud API 메서드를 시도할 수 있게 해주는 도구입니다. 이 도구를 사용하여 API와 해당 ABAP 메서드에 전달해야 하는 필수 입력 매개변수를 연구합니다.
코드 생성
ABAP SDK for Google Cloud를 사용하여 ABAP 프로그램을 만드는 데 사용하는 코드 구문을 설명합니다.
생성자
먼저 사용할 API 클래스를 인스턴스화합니다. 모든 API 클래스의 생성자는 다음 예시와 비슷한 패턴을 갖습니다.
METHODS constructor IMPORTING !iv_key_name TYPE /goog/keyname OPTIONAL "Google Cloud Key Name !iv_log_obj TYPE balobj_d OPTIONAL "Application log: Object name !iv_log_subobj TYPE balsubobj OPTIONAL. "Application log: Subobject RAISING /goog/cx_sdk . "Exception Classes
가져오기 매개변수
다음 표에서는 메서드 생성자의 가져오기 매개변수에 대해 설명합니다.
매개변수 이름 | 유형 | 필수/선택사항 | 설명 |
---|---|---|---|
iv_key_name |
/GOOG/KEYNAME |
필수 | Google Cloud 연결을 만들기 위해 사용하는 구성에서 클라이언트 키를 지정합니다. 클라이언트 키 구성에 대한 자세한 내용은 인증을 참조하세요. |
iv_log_object |
balobj_d |
선택사항 | SDK 생성 오류를 저장하는 데 사용할 애플리케이션 로그 객체를 지정합니다. 로깅 구성에 대한 자세한 내용은 애플리케이션 로깅을 참조하세요. |
iv_log_subobject |
balsubobj |
선택사항 | SDK 생성 오류를 저장하는 데 사용할 애플리케이션 로그 하위 객체를 지정합니다. 로깅 구성에 대한 자세한 내용은 애플리케이션 로깅을 참조하세요. |
API 메서드
Google Cloud API의 리소스 중심 디자인에서 API 메서드는 API로 게시된 리소스에서 수행할 수 있는 작업입니다.
예를 들어 Topics
가 Pub/Sub API에서 게시한 리소스이면 topics.get
은 Topics
리소스에서 주제의 구성을 가져오기 위한 작업을 나타내는 API 메서드입니다.
ABAP 클래스 메서드를 API 메서드에 매핑하려면 <resource>.<method_verb>
패턴을 따르는 메서드 설명을 참조할 수 있습니다.
예를 들어 Pub/Sub 메서드의 메서드 설명은 pubsub.projects.topics.get
입니다.
projects.topics
: 리소스 이름입니다.get
: 메서드 작업입니다.
API 작업에 매핑되는 ABAP 메서드의 이름은 <method_verb>_<resource>
패턴을 따릅니다.
예를 들어 Pub/Sub의 ABAP 메서드 이름은 GET_TOPICS
입니다.
GET
: 메서드 작업입니다.TOPICS
: 리소스 이름입니다.
ABAP 메서드는 REST API 메서드에 매핑되는 다음 섹션으로 구성됩니다.
가져오기 매개변수
API 메서드는 다음 가져오기 매개변수를 포함할 수 있습니다. 이러한 매개변수는 선택사항이며 사용해야 하는 API 메서드의 요구사항에 따라 매개변수를 전달할 수 있습니다.
매개변수 이름 | 유형 | 카테고리 | 설명 |
---|---|---|---|
iv_q_<name> ( |
문자열 | 쿼리 매개변수 | 쿼리 매개변수는 ( 정렬, 페이지로 나누기, 필터를 정의기 위해 사용됩니다.
|
iv_p_<name> ( |
문자열 | 경로 매개변수 | 경로 매개변수는 엔드포인트의 일부입니다. 특정 REST API 리소스를 가리키기 위해 사용됩니다. 경로 매개변수는 |
is_input ( |
TY_CODE(클래스유형) | 입력 구조 매개변수 | 요청 본문으로 전달되는 데이터는 입력 구조를 사용하여 매핑될 수 있습니다. REST API는 JSON 페이로드를 요청 본문으로 수락합니다. 매개변수는 API 클래스에 대해 JSON 페이로드로 변환되는 완전히 형식이 지정된 매개변수이며, 개발자가 JSON 작업을 수행할 필요가 없습니다. 사용 가능한 클래스 유형을 참조하여 데이터 매핑을 위한 ABAP 유형을 이해할 수 있습니다. 예를 들어 메서드는 최대 1개의 요청 본문 매개변수를 포함할 수 있습니다. 일부 메서드는 요청 본문을 포함하지 않습니다. |
내보내기 매개변수
API 메서드는 다음과 같은 내보내기 매개변수를 지원합니다.
매개변수 이름 | 유형 | 카테고리 | 설명 |
---|---|---|---|
es_raw | 데이터 | 원시 출력 |
이 매개변수는 API 메서드에서 반환된 JSON 응답(오류 또는 성공)을 포함합니다. 이 매개변수를 문자열 유형의 변수에 매핑하여 JSON 응답 문자열을 수신합니다. 응답 유형이 다른 경우, 예를 들어 고급 문제 해결 시나리오 또는 고급 API 시나리오에서 이 매개변수를 사용합니다. |
es_output | TY_CODE(클래스 유형) | 출력 구조 |
JSON 응답은 ABAP 구조로 역직렬화되며 이 형식이 지정된 내보내기 매개변수를 사용하여 반환됩니다. 이를 기본 방법으로 사용하여 ABAP 구조로 API 응답을 읽을 수 있습니다. |
ev_ret_code | I(정수) | 반환 코드 |
API 메서드 실행으로 해당 기능을 성공적으로 수행할 수 있는지 확인하는 데 사용할 수 있는 반환 코드입니다. 자세한 내용은 API 반환 코드, 오류, 예외를 참조하세요. |
ev_err_text | 문자열 | 오류 텍스트 |
메서드 호출이 실패하면 이 매개변수에 실패 이유를 확인하는 데 사용할 수 있는 오류 메시지가 포함됩니다. 자세한 내용은 API 반환 코드, 오류, 예외를 참조하세요. |
ev_err_resp |
|
오류 응답 |
이 매개변수는 오류에 대한 추가 정보를 제공합니다. 자세한 내용은 API 반환 코드, 오류, 예외를 참조하세요. |
클래스 유형
Google Cloud API는 JSON을 데이터 교환을 위한 기본 형식으로 사용합니다. ABAP SDK for Google Cloud는 Google Cloud API에서 요구하는 JSON 스키마에 매핑되는 ABAP 유형을 제공합니다.
이러한 ABAP 유형 및 관련 테이블 유형은 SDK가 제공하는 모든 API 클래스에서 클래스 유형으로 사용할 수 있습니다.
다음 예시는 Pub/Sub API 클래스 /GOOG/CL_PUBSUB_V1
의 클래스 유형을 보여줍니다.
/GOOG/CL_PUBSUB_V1
의 클래스 유형 TY_041
에 대한 설명은 JSON 페이로드로 CREATE_TOPICS
메서드에 전달되는 REST 리소스 Topic
에 매핑됩니다.
ABAP Doc
주석은 모든 클라이언트 API 클래스에 추가됩니다.
개발을 위해 SAP NetWeaver용 ABAP 개발 도구(ADT)를 사용하는 동안 이 설명에서는 클래스 유형을 설명합니다.
API 반환 코드, 오류, 예외
ABAP 클래스의 API 메서드가 호출될 때 오류가 발생하면 ABAP SDK for Google Cloud가 SDK 내보내기 매개변수를 사용하거나 예외를 발생시켜 호출 프로그램에 오류 정보를 전달합니다.
API 반환 코드 및 오류
Google Cloud API는 서로 다른 API에서 일관적인 경험을 제공하는 오류 모델을 사용합니다. SDK에서 Google Cloud API 메서드가 호출될 때 다음 매개변수에는 API 반환 코드와 메시지가 포함됩니다.
ev_ret_code
: 응답에 포함된 반환 코드 또는 오류 코드입니다.ev_error_text
: 응답에 포함된 오류 메시지입니다(있는 경우).es_raw
: API 메서드 호출이 실패한 경우 원시 오류 응답입니다.
API 호출 상태를 확인하려면 IS_SUCCESS
메서드를 사용합니다. ev_ret_code
값을 사용하여 API 호출의 성공 여부를 확인할 수 있습니다. 일반적으로 ev_ret_code = 2XX
이면 메서드 호출이 성공한 것으로 간주됩니다. 다른 모든 값의 경우 메서드 호출이 실패한 것으로 간주됩니다.
IF lo_client->is_success( ev_ret_code ).
"Success: Implement custom code
ELSE
"Handle the HTTP error status code
ENDIF.
일부 Google Maps Platform API의 경우 잘못된 입력으로 API를 호출하면 API에서 HTTP 오류 상태 코드(4XX
또는 5XX
) 대신 오류 메시지 및 오류 상태와 함께 HTTP 성공 상태 코드 2XX
를 반환합니다. API 응답의 이 오류 메시지와 오류 상태는 문제를 해결하고 잘못된 입력을 수정하는 데 도움이 됩니다.
이러한 Google Maps Platform API의 경우 반환 코드 ev_ret_code
외에도 API 호출 후에 IS_STATUS_OK
메서드를 호출하여 API 응답에서 반환되는 오류 메시지와 오류 상태를 확인합니다. 다음 스니펫에서는 IS_STATUS_OK
메서드를 사용하는 방법의 예시를 보여줍니다.
IF lo_client->is_status_ok( ).
"Success: Implement custom code
ELSE
"Handle the HTTP error status code
ENDIF.
es_err_resp
매개변수는 오류에 대한 추가 정보를 제공합니다.
다음 표에서는 es_err_resp
매개변수의 필드를 설명합니다.
필드 | 값 |
---|---|
es_err_resp-error_description |
API에서 수신된 오류 메시지입니다. 이 값은 ev_error_text 매개변수와 동일합니다. |
es_err_resp-error |
SAP HTTP 클라이언트에서 반환된 HTTP 상태 설명입니다. |
Google Cloud API에서 반환된 오류 처리
다음 안내에 따라 Google Cloud API에서 반환된 오류를 처리합니다.
일반적인 오류 코드: Google Cloud API에서 반환되는 일반적인 오류 및 그 원인에 대한 자세한 내용은 오류 코드를 참조하세요.
상세 오류 캡처: ABAP SDK for Google Cloud로 자세한 오류 정보를 캡처하려면 SDK 클래스 메서드에서 내보내기 매개변수
es_raw
를 사용하여 이 매개변수를String
유형의 변수로 매핑합니다. 이 변수는 API에서 발생한 자세한 오류 메시지와 특정 위반을 포함하는 JSON 응답을 포함합니다.상세 오류 보기: 자세한 오류 정보를 보려면 다음 방법 중 하나를 사용합니다.
- Debugger: 추가 분석을 위해 ABAP 디버거 도구 내에서 JSON 응답을 저장하는 변수의 콘텐츠를 봅니다.
SAP GUI: 보고서 프로그램 내에서 오류를 시각적으로 표현하려면 ABAP 클래스
cl_demo_output=>display( lv_response )
를 사용합니다. 보고서 프로그램에서 API 메서드를 사용 중이고 프로그램 실행이 포그라운드 모드인 경우 ABAP 클래스cl_demo_output=>display_json( lv_response )
을 사용합니다.다음 코드 스니펫에서는 오류가 발생할 경우 API 응답을 표시하는 방법을 보여줍니다.
DATA lv_response TYPE string, TRY. lo_translate = NEW #( iv_key_name = 'DEMO_TRANSLATE' ). lo_translate->translate_translations EXPORTING is_input = ls_input IMPORTING es_raw = lv_response es_output = ls_output ev_ret_code = lv_ret_code ev_err_text = lv_err_text es_err_resp = ls_err_resp. IF lo_translate->is_error( lv_ret_code ) = abap_true. " Display API response in case of an error cl_demo_output=>display_json( lv_response ). ENDIF. CATCH /goog/cx_sdk INTO lo_exception. lv_err_text = lo_exception->get_text( ). ENDTRY.
API별 문서: 일부 Google Cloud API는 개별 문서 내에서 자세한 오류 정보 및 문제 해결 안내를 제공합니다. API와 관련된 오류를 해결하려면 해당 API와 관련된 문서를 참조하세요(예: Pub/Sub, Document AI, Cloud Storage).
예외
잘못된 SDK 구성 또는 HTTP 통신 오류와 같이 API 메서드 호출 중 예기치 않은 오류가 발생하면 SDK가 /GOOG/CX_SDK
유형의 클래스 예외를 발생시킵니다. 코드에서 이 예외를 발견하고 적절한 오류 처리 로직을 작성해야 합니다.
예외 클래스의 get_text
메서드를 호출하여 오류 메시지를 가져올 수 있습니다. 예외 클래스에서 반환되는 오류 메시지에는 다음 형식이 포함됩니다.
/GOOG/MSG : Return_Code - Error_Message
오류 원인과 해결 단계는 Return_Code
값에 따라 달라집니다.
Return_Code 의 값 |
오류 원인 | 해결 방법 |
---|---|---|
461 | ABAP SDK for Google Cloud는 특정 반환 코드 461 을 사용하여 특정 설치 및 구성 단계가 잘못 완료되지 않았거나 잘못 완료되었음을 알립니다. 해당 Error_Message 는 오류에 대한 세부정보를 제공합니다. |
SDK의 설치 및 구성 안내를 신중하게 검토하고 올바르게 수행되었는지 확인해야 합니다. |
기타 모든 값 | 이 반환 코드는 표준 SAP HTTP 클라이언트 클래스에서 마지막 HTTP 오류입니다. 이 오류는 Google REST API 메서드를 호출할 때 SAP ICM에 통신 문제가 발생했음을 나타냅니다. | 네트워크, 방화벽, SAP ICM 설정을 신중하게 검토하고 Google Cloud API에 대한 HTTP 호출이 허용되도록 구성되었는지 확인해야 합니다. |
ABAP SDK for Google Cloud에서 트리거된 일반적인 오류 메시지와 해결 방법은 문제 해결 가이드를 참조하세요.
로깅
ABAP SDK for Google Cloud를 사용하면 삽입된 로깅 프레임워크를 사용하여 오류 메시지를 로깅할 수 있습니다. 로그 객체 ZGOOG
및 하위 객체 ZABAP_SDK
는 로그 구성의 기본 객체로 사용할 수 있는 SDK 전송 파일과 함께 제공됩니다.
개발자는 API 클라이언트 스텁을 인스턴스화하면서 자체 커스텀 로그 객체 및 하위 객체를 전달할 수 있습니다. 이를 위해서는 기본 로그 객체 및 하위 객체 대신 SDK가 커스텀 로그 객체를 사용하도록 지정하는 추가 구성이 필요합니다.
다음 예시에서는 커스텀 로그 객체와 하위 객체가 전달된 호출 코드를 보여줍니다.
TRY.
CREATE OBJECT lo_api_class
EXPORTING
iv_key_name = 'CLIENT_KEY
'
iv_log_obj = 'ZSD' "Application Log Object
iv_log_subobj = 'ZSD_SALES_ORDERS'. "Subobject
CATCH /goog/cx_sdk INTO DATA(lo_exception).
DATA(lv_msg) = lo_exception->get_text( ).
MESSAGE lv_msg TYPE 'E'.
ENDTRY.
로깅 구성 및 커스텀 로그 객체 만들기에 대한 자세한 내용은 애플리케이션 로깅을 참조하세요.
데이터 유형 매핑
다음 표에는 Google API 검색 서비스 및 해당 ABAP 데이터 유형에서 지원하는 type
및 format
값의 전체 목록이 나와 있습니다.
Google API 검색 서비스에서 지원되는 type
및 format
값에 대한 자세한 내용은 유형 및 형식 요약을 참조하세요.
유형 값 | 형식 값 | ABAP 데이터 유형 | 의미 |
---|---|---|---|
모두 | TYPE REF TO DATA | 이 속성에는 모든 유형이 있을 수 있습니다. JSON 스키마 사양에 따라 정의됩니다. | |
배열 | TABLE TYPE WITH NON UNIQUE KEYS | 값의 JavaScript 배열입니다. 항목 속성은 배열 값의 스키마를 나타냅니다. JSON 스키마 사양에 따라 정의됩니다. | |
부울 | ABAP_BOOL | 불리언 값('true' 또는 'false') JSON 스키마 사양에 따라 정의됩니다. | |
정수 | int32 | INT4 | 부호 있는 32비트 정수입니다. 최솟값은 -2,147,483,648이고 최댓값은 2,147,483,647(포함)입니다. |
정수 | uint32 | INT4 | 부호 없는 32비트 정수입니다. 최솟값은 0이고 최댓값은 4,294,967,295(포함)입니다. |
숫자 | double | /GOOG/NUM_DOUBLE (문자열) |
배정밀도 64비트 IEEE 754 부동 소수점입니다. |
숫자 | float | /GOOG/NUM_FLOAT (문자열) |
단일 정밀도 32비트 IEEE 754 부동 소수점입니다. |
객체 | 유형 | JavaScript 객체입니다. JSON 스키마 사양에 따라 정의됩니다. | |
문자열 | STRING | 임의의 문자열입니다. JSON 스키마 사양에 따라 정의됩니다. | |
문자열 | byte | STRING | URL 및 파일 이름 안전 알파벳("web-safe" 또는 "base64url"이라고도 함)으로 인코딩된, base64로 인코딩된 바이트의 패딩된 문자열입니다. RFC 4648에 의해 정의됩니다. |
문자열 | 날짜 | STRING | YYYY-MM-DD 형식의 RFC 3339 날짜입니다. JSON 스키마 사양에 정의됩니다. |
문자열 | date-time | STRING | RFC 3339 타임스탬프입니다(UTC 시간). yyyy-MM-ddTHH:mm:ss.SSSZ 형식입니다. 밀리초 부분('.SSS')은 선택사항입니다. JSON 스키마 사양에 정의됩니다. |
문자열 | google-datetime | STRING | RFC 3339 타임스탬프입니다(UTC 시간). yyyy-MM-ddTHH:mm:ss.SSSZ 형식입니다. 밀리초 부분('.SSS')은 선택사항입니다. |
문자열 | google-duration | STRING | 문자열은 접미사 's'(초를 나타냄)로 끝나고 뒤에 초 수가 나오며 나노초는 분수 초로 표시됩니다. 마침표는 항상 쉼표가 아닌 소수점으로 사용됩니다. |
문자열 | google-fieldmask | STRING | 필드 이름을 쉼표로 구분하는 문자열입니다. 필드 이름은 하위 카멜 이름 지정 규칙으로 표시됩니다. |
문자열 | int64 | STRING | 부호 있는 64비트 정수입니다. 최솟값은 -9,223,372,036,854,775,808이고 최댓값은 9,223,372,036,854,775,807(포함)입니다. |
문자열 | uint64 | STRING | 부호 없는 64비트 정수입니다. 최소값은 0이고 최댓값은(2^64)-1(포함)입니다. |
데모 프로그램
ABAP SDK for Google Cloud에는 SDK를 사용하여 Google 서비스를 사용하는 방법을 보여주는 여러 데모 프로그램이 포함되어 있습니다. 데모 프로그램은 /GOOG/DEMO
패키지에 있습니다.
데모 프로그램에서는 다음과 같은 다양한 Google 서비스를 다룹니다.
- Document AI
- Pub/Sub
- Cloud Translation
- Cloud Storage
- Secret Manager
데모 프로그램은 ABAP SDK for Google Cloud를 사용하는 방법을 배울 수 있는 좋은 방법입니다. 또한 구성을 테스트할 수 있는 좋은 방법입니다. 데모가 포함된 프로그램 문서에서는 각 데모에 대한 추가 세부정보를 제공합니다.
데모 프로그램에 액세스하려면 다음 단계를 수행합니다.
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다.ABAP SDK for Google Cloud > 데모로 이동합니다.
API 요청 및 응답의 직렬화 및 역직렬화
기본적으로 ABAP SDK for Google Cloud는 API 요청 및 응답의 마샬링 및 언마샬링을 처리합니다. 각 Google Cloud API의 ABAP 클래스에는 메서드의 입력 및 출력을 생성하기 위한 임베딩된 ABAP 유형이 있습니다. 요청 및 응답의 커스텀 변환을 구현하려면 SDK에 제공된 SAP 비즈니스 부가기능(BAdI) 정의가 포함된 개선 지점을 사용하면 됩니다.
커스텀 변환 구현
SDK와 함께 제공되는 개선 지점 /GOOG/ES_TRANSFORM_JSON
에는 다음과 같은 BAdI 정의가 포함되어 있습니다.
/GOOG/BADI_SERIALIZE_JSON
: 커스텀 직렬화 로직을 구현합니다./GOOG/BADI_DESERIALIZE_JSON
: 커스텀 역직렬화 로직을 구현합니다.
이러한 BAdI 구현에서 특정 변환 로직을 작성할 수 있습니다.
이러한 BAdI의 인터페이스에는 가져오기 매개변수로 IV_METHOD_NAME
이 포함됩니다.
이 매개변수를 사용해서 IF…ENDIF
블록을 사용하여 각 API 및 API 메서드의 변환 로직을 분리합니다. 구현 블록에서 내보내기 매개변수 EV_HANDLED
을 X
로 설정합니다.
커스텀 변환을 구현하려면 다음 단계를 수행합니다.
/GOOG/BADI_SERIALIZE_JSON
에 대해 개선 구현을 만듭니다.- API 요청 변환을 위해 구현 클래스가 포함된 BAdI
/GOOG/BADI_SERIALIZE_JSON
구현을 만듭니다. - API 응답 변환을 위해 구현 클래스가 포함된 BAdI
/GOOG/BADI_DESERIALIZE_JSON
구현을 만듭니다.
- API 요청 변환을 위해 구현 클래스가 포함된 BAdI
변환을 작성해야 하는 API 메서드의 메서드 ID를 확인합니다. 메서드 ID는 다음 항목의 연결로 구성됩니다.
- 클래스 속성 상수
C_SERVICE_NAME
의 값 #
문자- 변환을 구현해야 하는 API 클래스 메서드에 대한 설명
예를 들어 Pub/Sub 주제에 메시지를 게시하기 위한 변환을 작성하려는 경우 메서드 ID가
pubsub:v1#pubsub.projects.topics.publish
입니다.- 클래스 속성 상수
BAdI의 메서드 구현에서 다음을 수행합니다.
- 메서드 ID에 대해
IF….ENDIF block
아래에 커스텀 변환을 작성합니다. 내보내기 매개변수
EV_HANDLED
를X
로 설정합니다.EV_HANDLED
가X
로 설정되지 않았으면 SDK의 기본 마샬링 및 언마샬링 로직이 적용됩니다.
- 메서드 ID에 대해
커스텀 변환 로직은 런타임 중에 호출됩니다. 커스텀 변환을 사용할 때는 SDK에 제공된 기본 직렬화 및 역직렬화 로직을 건너뜁니다.
네임스페이스
모든 Google 제공 코드는 예약된 네임스페이스 /GOOG/
아래에 배치됩니다.
코드 마법사
코드 마법사는 ABAP SDK for Google Cloud에서 제공하는 API 클라이언트 스텁의 모든 공개 메서드에 대한 개발을 가속화하는 데 도움이 됩니다. 코드 마법사는 ABAP 개발에 사용된 pattern
옵션과 비슷합니다. 하지만 ABAP pattern
외에도 코드 마법사가 다음 작업을 지원합니다.
- 모든 필수 데이터 선언을 생성합니다.
- 메서드 가져오기 매개변수를 작성하기 위해 코드에 자리 표시자를 제공합니다.
- 기본 응답 및 예외 처리를 생성합니다.
- ABAP 7.5 구문 선택, HTTP 연결 열기 및 닫기를 위한 블록 추가 및 제거와 같은 형식으로 추가적인 맞춤설정 및 기능을 제공합니다.
- 생성된 코드의 복사 옵션을 제공합니다.
코드 마법사는 요구사항에 따라 수정할 수 있는 코드 프레임만 제공합니다. 코드 마법사는 SAP S/4HANA 및 SAP ECC 구문을 모두 지원합니다.
코드 마법사에 액세스하려면 다음 단계를 수행합니다.
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다.ABAP SDK for Google Cloud > 유틸리티 > 코드 마법사로 이동합니다.
다음 예시는 Pub/Sub 클라이언트 스텁 /GOOG/CL_PUBSUB_V1
의 API 메서드 CREATE_TOPICS
에 대해 생성된 상용구 코드를 보여줍니다.
DATA: lv_p_projects_id TYPE string, lv_p_topics_id TYPE string, ls_input TYPE /goog/cl_pubsub_v1=>ty_041. TRY. * Open HTTP Connection DATA(lo_client) = NEW /goog/cl_pubsub_v1( iv_key_name = 'client_key' ). * Populate relevant parameters * lv_p_projects_id = 'string_value'. * lv_p_topics_id = 'string_value'. * ls_input =. * Call API method CALL METHOD lo_client->create_topics EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_topics_id = lv_p_topics_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 /goog/cl_http_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.
참조 아키텍처
참조 아키텍처를 사용하여 ABAP SDK for Google Cloud를 살펴보고 SDK가 SAP 애플리케이션 환경에 혁신을 가져올 수 있는 방법을 알아보세요. 이 SDK를 사용하여 고급 AI 및 머신러닝 기능을 위한 Vertex AI와 통합할 수 있으며 BigQuery, Pub/Sub, Cloud Storage 등의 다른 Google Cloud 서비스도 통합할 수 있습니다. 자세한 내용은 ABAP SDK for Google Cloud의 참조 아키텍처를 참고하세요.
지원 받기
ABAP SDK for Google Cloud 문제를 해결하는 데 도움이 필요한 경우 다음을 수행하세요.
Cloud 포럼의 커뮤니티에서 ABAP SDK for Google Cloud에 대해 질문하고 논의합니다.
사용 가능한 모든 진단 정보를 수집하여 Cloud Customer Care에 문의합니다. Customer Care 문의 정보는 Google Cloud 기반 SAP 지원 받기를 참조하세요.