Google Cloud용 ABAP SDK와 함께 Translation API 사용

1. 소개

이 Codelab에서는 Google Cloud용 ABAP SDK를 사용하여 Translation API V3 (Advanced)의 메서드를 호출하는 단계를 제공합니다. 이 Codelab에서는 Translation API V3를 사용하여 텍스트를 번역하고 텍스트의 언어를 감지하고 지원되는 언어를 나열하는 방법을 알아봅니다.

이 Codelab에서는 다음과 같은 Google Cloud 서비스를 사용합니다.

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

기본 요건

빌드할 항목

Google Cloud용 ABAP SDK를 사용하여 SAP 시스템에서 다음 프로그램을 만듭니다.

  • Google의 Cloud Translation API V3를 사용하여 텍스트를 여러 언어로 번역
  • Google Cloud Translation API V3를 사용하여 원본 텍스트의 언어 감지
  • Google Cloud Translation API V3에서 지원되는 언어 나열

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

  • 다음 명령어를 실행하여 계정을 인증하고 기본 프로젝트를 abap-sdk-poc로 설정합니다. 예시로 us-west4-b 영역을 사용했습니다. 필요한 경우 다음 명령어에서 원하는 대로 프로젝트와 영역을 변경하세요.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
  • Google Cloud용 ABAP SDK가 설치된 SAP 시스템에 액세스할 수 있어야 합니다.
  • 이 Codelab을 진행하기 전에 Codelab 1 (Google Cloud Platform에 ABAP Platform 무료 체험판 1909 설치 및 Google Cloud용 ABAP SDK 설치) 및 Codelab 2 (Compute Engine VM에서 호스팅되는 SAP용 토큰을 사용하여 ABAP SDK 인증 구성)를 완료해야 합니다.
  • Codelab 1과 Codelab 2를 완료했다면 Google Cloud 기반 ABAP Platform Trial 1909 System과 인증 및 연결에 필요한 설정이 프로비저닝되었을 것입니다.
  • Codelab 1과 Codelab 2를 완료하지 않았다면 이 Codelab에서 제공하는 단계를 수행하는 데 필요한 인프라와 연결이 모두 필요한 것이 아닙니다. 따라서 이 Codelab을 진행하기 전에 Codelab 1과 Codelab 2를 완료해야 합니다.

4. Google Cloud 프로젝트에서 Cloud Translation API V3 사용 설정

  1. Cloud Shell에서 아래 명령어를 실행하면 Google Cloud 프로젝트에서 Cloud Translation API가 사용 설정됩니다.
gcloud services enable translate.googleapis.com

성공적으로 실행되면 아래와 같은 메시지가 표시됩니다.

b5f52859df2c2f56.png

이제 Google Cloud 프로젝트에서 Cloud Translation API가 사용 설정되어 있어야 합니다.

5. Cloud Translation 사용자 역할로 서비스 계정 만들기

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

  1. Cloud Shell 터미널에서 다음 명령어를 실행합니다.
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
  1. 이제 위의 단계에서 만든 서비스 계정에 필요한 역할을 추가합니다.
gcloud projects add-iam-policy-binding abap-sdk-poc\
--member='serviceAccount:abap-sdk-translation-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/cloudtranslate.user'

위 명령어는 abap-sdk-poc을 Google Cloud 프로젝트의 템플릿 이름으로 사용합니다. 프로젝트 ID로 바꿉니다.

  1. 역할이 추가되었는지 확인하려면 IAM 페이지로 이동합니다. 아래와 같이 생성된 서비스 계정이 할당된 역할과 함께 나열됩니다.

6af77a519ed3e357.png

6. 클라이언트 키 구성 만들기

Google Cloud 측에서 기본 요건을 설정했으므로 이제 SAP 측 구성을 진행할 수 있습니다.

인증 및 연결 관련 구성을 위해 Google Cloud용 ABAP SDK는 /GOOG/CLIENT_KEY 테이블을 사용합니다.

/GOOG/CLIENT_KEY 테이블의 구성을 유지하려면 다음 단계를 따르세요.

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

필드

Google Cloud 키 이름

TEST_TRANSLATION

Google Cloud 서비스 계정 이름

abap-sdk-translation-tester@abap-sdk-poc.iam.gserviceaccount.com

Google Cloud 범위

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

프로젝트 ID

abap-sdk-poc

승인 클래스

/GOOG/CL_AUTH_GOOGLE

다른 필드는 모두 비워 두세요.

7. Cloud Translation API V3를 호출하고 텍스트를 번역하는 Z-보고서 만들기

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

6ba124f9187d1fc0.png

다음 팝업에서 로컬 개체 또는 패키지 이름을 원하는 대로 입력합니다.

  1. ABAP 편집기에서 다음 코드를 추가합니다.
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
DATA ls_input TYPE /goog/cl_translation_v3=>ty_050.

TRY.
    lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').

    ls_input = VALUE #(  mime_type = 'text/plain'
                         source_language_code = 'en-US'
                         target_language_code = 'es-ES'
                         contents =  VALUE #( ( |Sun is our nearest star| ) ) ).

    lo_translate->translate_text_projects(
      EXPORTING
        iv_p_projects_id = CONV #( lo_translate->gv_project_id )
        is_input         = ls_input
      IMPORTING
        es_output        =  DATA(ls_output)
        ev_ret_code      =  DATA(lv_ret_code)
        ev_err_text      =  DATA(lv_err_text)
        es_err_resp      =  DATA(lv_err_resp)
    ).
    IF lo_translate->is_success( lv_ret_code ) = abap_true.
      cl_demo_output=>new(
      )->begin_section( 'API Call Successful:'
      )->write_text( 'Translated Text:'
      )->write_data( ls_output-translations[ 1 ]-translated_text
      )->display( ).
    ELSE.
      cl_demo_output=>new(
      )->begin_section( 'API Call Unsuccessful:'
      )->write_text( 'Error Message:'
      )->write_text( lv_err_text
      )->display( ).
    ENDIF.
  CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
    DATA(lv_error) = lo_sdk_excp->get_text( ).
    cl_demo_output=>new(
     )->begin_section( 'Exception Occured:'
     )->write_text( lv_error
     )->display( ).
ENDTRY.
  1. 보고서를 저장하고 활성화합니다.
  2. 보고서를 실행합니다 (F8).

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

2dd3bf270d2b1477.png

8. Cloud Translation API V3를 호출하고 언어를 감지하는 Z-보고서 만들기

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

64c2eb0e0173ae51.png

다음 팝업에서 로컬 개체 또는 패키지 이름을 원하는 대로 입력합니다.

  1. ABAP 편집기에서 다음 코드를 추가합니다.
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
DATA ls_input TYPE /goog/cl_translation_v3=>ty_009.

TRY.
    lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').

    ls_input = VALUE #(  mime_type = |text/plain|
                         content =  |La luce viaggia più veloce del suono| ).

    lo_translate->detect_language_projects(
      EXPORTING
        iv_p_projects_id = CONV #( lo_translate->gv_project_id )
        is_input         = ls_input
      IMPORTING
        es_output        =  DATA(ls_output)
        ev_ret_code      =  DATA(lv_ret_code)
        ev_err_text      =  DATA(lv_err_text)
        es_err_resp      =  DATA(lv_err_resp)
    ).
    IF lo_translate->is_success( lv_ret_code ) = abap_true.
      cl_demo_output=>new(
      )->begin_section( 'API Call Successful:'
      )->write_text( 'Detected Language:'
      )->write_data( ls_output-languages[ 1 ]-language_code
      )->display( ).
    ELSE.
      cl_demo_output=>new(
      )->begin_section( 'API Call Unsuccessful:'
      )->write_text( 'Error Message:'
      )->write_text( lv_err_text
      )->display( ).
    ENDIF.
  CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
    DATA(lv_error) = lo_sdk_excp->get_text( ).
    cl_demo_output=>new(
     )->begin_section( 'Exception Occured:'
     )->write_text( lv_error
     )->display( ).
ENDTRY.
  1. 보고서를 저장하고 활성화합니다.
  2. 보고서를 실행합니다 (F8).

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

a36e48bded53e62d.png

9. Z-보고서를 만들어 GET_SUPPORTED_LANGUAGES 메서드 호출

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

3819fc355cf2cd4d.png

다음 팝업에서 로컬 개체 또는 패키지 이름을 원하는 대로 입력합니다.

  1. ABAP 편집기에서 다음 코드를 추가합니다.
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.

TRY.
    lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').

    lo_translate->get_supported_languages_pro(
      EXPORTING
        iv_q_displaylanguagecode = 'en-US'
        iv_p_projects_id         =  CONV #( lo_translate->gv_project_id )
      IMPORTING
        es_output        =  DATA(ls_output)
        ev_ret_code      =  DATA(lv_ret_code)
        ev_err_text      =  DATA(lv_err_text)
        es_err_resp      =  DATA(lv_err_resp)
    ).

    IF lo_translate->is_success( lv_ret_code ) = abap_true.
      cl_demo_output=>new(
      )->begin_section( 'API Call Successful:'
      )->write_text( 'Supported Languages:'
      )->write_data( ls_output-languages
      )->display( ).
    ELSE.
      cl_demo_output=>new(
      )->begin_section( 'API Call Unsuccessful:'
      )->write_text( 'Error Message:'
      )->write_text( lv_err_text
      )->display( ).
    ENDIF.
  CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
    DATA(lv_error) = lo_sdk_excp->get_text( ).
    cl_demo_output=>new(
     )->begin_section( 'Exception Occured:'
     )->write_text( lv_error
     )->display( ).
ENDTRY.
  1. 보고서를 저장하고 활성화합니다.
  2. 보고서를 실행합니다 (F8).

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

78199926919e7801.png

10. 축하합니다

축하합니다. 'Google Cloud용 ABAP SDK로 Translation API 사용' 과정을 완료했습니다. Codelab을 참고하세요

Cloud Translation API V3(Cloud Translation API Advanced라고도 함)에는 다음과 같은 많은 기능이 있습니다.

  • 커스텀 모델을 사용한 번역
  • 용어집을 사용하여 번역
  • 음역 지원
  • Document Translation

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

  • Pub/Sub에 이벤트 전송
  • Cloud Pub/Sub에서 이벤트 수신
  • 청킹을 사용하여 대형 객체를 Cloud Storage 버킷에 업로드하기
  • 개인 식별 정보 수정에 DLP API 사용
  • ABAP에서 BigQuery ML 호출

11. 삭제

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

프로젝트 삭제

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

개별 리소스 삭제하기

  1. 컴퓨팅 인스턴스를 삭제합니다.
gcloud compute instances delete abap-trial-docker
  1. 방화벽 규칙을 삭제합니다.
gcloud compute firewall-rules delete sapmachine
  1. 서비스 계정을 삭제합니다.
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com