Compute Engine VM에서 호스팅되는 SAP용 토큰을 사용하여 ABAP SDK 인증을 구성하고 Address Validation API를 실행합니다.

1. 소개

이 Codelab에서는 SAP 시스템이 Compute Engine VM 인스턴스에서 호스팅되는 경우 토큰을 사용하여 Google Cloud API에 액세스할 수 있도록 인증을 설정하는 단계를 진행합니다.

사용되는 서비스 목록은 다음과 같습니다.

  • Compute Engine
  • 네트워크 서비스
  • Cloud Shell

빌드할 항목

다음을 수행합니다.

  • SAP 시스템에 설치된 ABAP SDK를 구성하여 Google API에 연결합니다.
  • Address Validation API를 호출하는 예시 보고서 프로그램을 만듭니다.

2. 요구사항

  • 브라우저(Chrome, Firefox 등)
  • 결제가 사용 설정된 Google Cloud 프로젝트 또는 Google Cloud Platform용 90일 무료 체험판 계정 만들기
  • 시스템에 설치된 SAP GUI (Windows 또는 Java) SAP GUI가 이미 시스템에 설치되어 있는 경우, VM 외부 IP 주소를 애플리케이션 서버 IP로 사용하여 SAP에 연결합니다. Mac을 사용하는 경우 이 링크에서 제공되는 Java용 SAP GUI도 설치할 수 있습니다.

3. 시작하기 전에

6757b2fb50ddcc2d.png

  • 필요한 모든 API (IAM Service Account Credentials API 및 Address Validation API)가 사용 설정되어 있는지 확인합니다.
  • 다음 명령어를 실행하여 계정을 인증하고 기본 프로젝트를 abap-sdk-poc로 설정합니다. 예시로 us-west4-b 영역을 사용했습니다. 필요한 경우 아래 명령어에서 원하는 대로 프로젝트와 영역을 변경하세요.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b

4. 서비스 계정 만들기 및 서비스 계정 토큰 생성자 역할 설정

필요한 역할이 있는 서비스 계정을 만들려면 다음 단계를 수행합니다.

  1. 다음 명령어를 실행하여 서비스 계정을 만듭니다. 서비스 계정이 이미 있는 경우 이 단계를 건너뛰세요.
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. 다음 명령어를 실행하여 서비스 계정 토큰 생성자 역할을 설정합니다.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
    --member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator

5. 클라이언트 키 구성

사용자 이름 DEVELOPER과 비밀번호 Htods70334로 SAP 시스템에 로그인하고 다음 단계에 따라 클라이언트 키를 구성합니다.

  1. SAP GUI에서 트랜잭션 코드 SPRO를 입력합니다.
  2. SAP 참조 IMG를 클릭합니다.
  3. ABAP SDK for Google Cloud > 기본 설정 > 클라이언트 키 구성을 클릭합니다.
  4. 새 항목을 클릭합니다.
  5. 다음 필드에 값을 입력합니다.

필드

설명

Google Cloud 키 이름

ABAP_SDK_DEMO

Google Cloud 서비스 계정 이름

abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com

Google Cloud 범위

https://www.googleapis.com/auth/cloud-platform

Google Cloud 프로젝트 식별자

abap-sdk-poc

승인 클래스

/GOOG/CL_AUTH_GOOGLE입니다.

다른 필드는 비워둡니다.

c72e71da6fd75b29.png

6. RFC 대상 만들기

IAM 사용자 인증 정보 및 Address Validation API의 RFC 대상을 만듭니다.

RFC 대상 이름

대상 호스트(API 엔드포인트)

참고

ZGOOG_IAMCREDENTIALS

호스트: iamcredentials.googleapis.com경로: 접두사: /v1/포트: 443SSL: 활성

이 RFC 대상은 IAM API를 타겟팅합니다.

ZGOOG_ADDRESSVALIDATION_V1

호스트: addressvalidation.googleapis.com포트: 443SSL: 활성

이 RFC 대상은 Address Validation API를 대상으로 합니다.

  • 기술 설정 탭에서 ZGOOG_IAMCREDENTIALS 대상에 대해 다음 세부정보를 입력합니다.

e670c6a91acba40f.png

  • 기술 설정 탭에서 ZGOOG_ADDRESSVALIDATION_V1 대상에 대해 다음 세부정보를 입력합니다.

fcf92530ece612ea.png

  • SSL 인증서 입력란에서 두 RFC 대상에 대해 기본 SSL 클라이언트 (표준) 옵션이 선택되어 있는지 확인합니다.

b6370d12bd332318.png

7. 서비스 매핑 구성

IAM API 및 Address Validation API용 서비스 매핑 테이블을 구성하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 트랜잭션 코드 SPRO를 입력합니다.
  2. SAP 참조 IMG를 클릭합니다.
  3. ABAP SDK for Google Cloud > 기본 설정 > 서비스 매핑 구성을 클릭합니다.
  4. RFC 대상에 연결된 IAM 사용자 인증 정보 및 주소 유효성 검사 API의 새 항목을 클릭합니다.

e227316b0f249823.png

8. 구성 확인

인증 구성을 검증하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 트랜잭션 코드 SPRO를 입력합니다.
  2. SAP 참조 IMG를 클릭합니다.
  3. ABAP SDK for Google Cloud > 유틸리티 > 인증 구성 검증을 클릭합니다.
  4. 클라이언트 키 이름을 ABAP_SDK_DEMO로 입력합니다.
  5. 실행을 클릭하여 전체 흐름이 성공적으로 구성되었는지 확인합니다.
  6. 결과 열의 녹색 체크 표시는 모든 구성 단계가 성공적으로 완료되었음을 나타냅니다.

d7285e64e22c25b6.png

9. 주소 확인 서비스를 호출할 보고서 프로그램 만들기

  1. SAP 시스템에 로그인합니다.
  2. 거래 코드 SE38로 이동하여 ZDEMO_ADDRESS_VALIDATION이라는 이름의 보고서 프로그램을 만듭니다.
  3. 팝업이 열리면 아래와 같이 세부정보를 입력하고 저장을 클릭합니다.

d8aac0f9e0bc5f9d.png

  1. 다음 팝업에서 로컬 객체를 선택하거나 패키지 이름을 적절하게 입력합니다.
  2. ABAP 편집기에서 다음 코드를 추가합니다.
" data declarations
DATA lv_ret_code          TYPE i.
DATA lv_err_text          TYPE string.
DATA ls_input             TYPE /goog/cl_addrvaldn_v1=>ty_012.
DATA ls_output            TYPE /goog/cl_addrvaldn_v1=>ty_013.
DATA ls_err_resp          TYPE /goog/err_resp.
DATA lo_exception         TYPE REF TO /goog/cx_sdk.
DATA lo_address_validator TYPE REF TO /goog/cl_addrvaldn_v1.

" instantiate api client stub
TRY.
    lo_address_validator = NEW #( iv_key_name = 'ABAP_SDK_DEV' ).

    " Pass the address to be validated and corrected.
    " Mountain misspelled as  Moutain
    " Amphitheatre misspelled as Amphithetre
    ls_input-address-region_code = 'US'.
    ls_input-address-locality    = 'Moutain View'.
    APPEND '1600, Amphithetre, Parkway' TO ls_input-address-address_lines.

    " call the api method to validate address
    lo_address_validator->validate_address( EXPORTING is_input    = ls_input
                                            IMPORTING es_output   = ls_output
                                                      ev_ret_code = lv_ret_code
                                                      ev_err_text = lv_err_text
                                                      es_err_resp = ls_err_resp ).
    IF     lo_address_validator->is_success( lv_ret_code ) = abap_true
       AND ls_output-result-verdict-address_complete       = abap_true.
      cl_demo_output=>new(
        )->begin_section( `Original Address`
        )->write_data( ls_input-address-region_code
        )->write_data( ls_input-address-locality
        )->write_data( ls_input-address-address_lines
        )->next_section( `Validated & Corrected Address`
        )->begin_section( `Elementary Object`
        )->write_data( ls_output-result-address-formatted_address
        )->display( ).
    ENDIF.

  CATCH /goog/cx_sdk INTO lo_exception.
    " write code here to handle exceptions
    cl_demo_output=>display( lo_exception->get_text( ) ).
ENDTRY.
  1. 보고서를 저장하고 활성화합니다.
  2. 보고서를 실행합니다 (F8).

성공적으로 실행되면 아래와 같이 보고서 출력이 표시됩니다.

8b0aed97320f4ef.png

10. 축하합니다

축하합니다. 주소 유효성 검사 서비스를 호출하도록 ABAP SDK를 성공적으로 구성했습니다.

이제 다른 ABAP SDK Codelab을 진행하여 Google Cloud용 ABAP SDK를 사용하여 다양한 Google Cloud 서비스에 액세스하는 방법을 계속 학습할 수 있습니다.

11. 삭제

Google Cloud용 ABAP SDK와 관련된 추가 Codelab을 계속 진행하지 않으려면 정리를 진행하세요.

프로젝트 삭제

  • Google Cloud 프로젝트를 삭제합니다.
gcloud projects delete abap-sdk-poc

개별 리소스 삭제하기

  1. IMG > Google Cloud > 기본 설정 > 클라이언트 키 구성
  2. 서비스 매핑 구성 항목을 삭제하려면 IMG > Google Cloud > 기본 설정 > 클라이언트 키 구성
  3. RFC 대상 ZGOOG_IAMCREDENTIALSZGOOG_ADDRESSVALIDATION_V1을 삭제합니다.
  4. 서비스 계정을 삭제합니다.
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com