Sử dụng Translation API với ABAP SDK cho Google Cloud

1. Giới thiệu

Lớp học lập trình này cung cấp các bước để gọi các phương thức của API Dịch V3 (Nâng cao) bằng SDK ABAP cho Google Cloud. Trong lớp học lập trình này, chúng ta sẽ tìm hiểu cách dịch văn bản, phát hiện ngôn ngữ của văn bản và liệt kê các ngôn ngữ được hỗ trợ bằng Translation API V3

Các dịch vụ sau đây của Google Cloud được sử dụng trong lớp học lập trình này:

  • Compute Engine
  • Dịch vụ mạng
  • Cloud Shell
  • Cloud Translation API phiên bản 3

Điều kiện tiên quyết

Sản phẩm bạn sẽ tạo ra

Bạn sẽ tạo các chương trình sau trong hệ thống SAP bằng SDK ABAP cho Google Cloud:

  • Dịch văn bản sang nhiều ngôn ngữ bằng Cloud Translation API V3 của Google
  • Phát hiện ngôn ngữ của văn bản nguồn bằng Google Cloud Translation API V3
  • Liệt kê các ngôn ngữ được hỗ trợ của API Google Cloud Translation phiên bản 3

2. Yêu cầu

  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox.
  • Một dự án Google Cloud đã bật tính năng thanh toán hoặc Tạo tài khoản dùng thử miễn phí 90 ngày cho Google Cloud Platform.
  • SAP GUI (Windows hoặc Java) đã được cài đặt trong hệ thống của bạn. Nếu bạn đã cài đặt SAP GUI trên máy, hãy kết nối với SAP bằng địa chỉ IP bên ngoài của máy ảo làm địa chỉ IP của Máy chủ ứng dụng. Nếu đang dùng máy Mac, bạn cũng có thể cài đặt SAP GUI cho Java có trong đường liên kết này.

3. Trước khi bắt đầu

6757b2fb50ddcc2d.png

  • Chạy các lệnh sau để xác thực cho tài khoản của bạn và đặt dự án mặc định thành abap-sdk-poc. Ví dụ: vùng us-west4-b. Nếu cần, vui lòng thay đổi dự án và vùng trong các lệnh sau đây theo lựa chọn ưu tiên của bạn.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
  • Bạn phải có quyền truy cập vào một hệ thống SAP đã cài đặt SDK ABAP cho Google Cloud.
  • Bạn phải hoàn thành lớp học lập trình 1 (Cài đặt phiên bản dùng thử Nền tảng ABAP 1909 trên Google Cloud Platform và Cài đặt SDK ABAP cho Google Cloud) và lớp học lập trình 2 (Định cấu hình tính năng Xác thực SDK ABAP bằng mã thông báo cho SAP được lưu trữ trên máy ảo Compute Engine) trước khi tiếp tục lớp học lập trình này.
  • Nếu bạn đã hoàn tất lớp học lập trình 1 và lớp học lập trình 2, thì bạn đã được cung cấp Hệ thống dùng thử ABAP Platform 1909 trên Google Cloud, cùng với chế độ thiết lập bắt buộc để xác thực và kết nối.
  • Nếu chưa hoàn tất lớp học lập trình 1 và lớp học lập trình 2, bạn sẽ không có đủ cơ sở hạ tầng và kết nối cần thiết để thực hiện các bước trong lớp học lập trình này. Do đó, bạn phải hoàn tất lớp học lập trình 1 và lớp học lập trình 2 trước khi tiếp tục lớp học lập trình này.

4. Bật Cloud Translation API V3 trong Dự án Google Cloud

  1. Thực thi lệnh dưới đây trong Cloud Shell để bật Cloud Translation API trong Dự án Google Cloud:
gcloud services enable translate.googleapis.com

Khi thực thi thành công, bạn sẽ thấy một thông báo như sau:

b5f52859df2c2f56.png

Bây giờ, bạn đã bật API Dịch trên đám mây trong Dự án Google Cloud

5. Tạo Tài khoản dịch vụ có Vai trò người dùng Dịch thuật trên đám mây

Để tạo tài khoản dịch vụ có vai trò bắt buộc, hãy thực hiện các bước sau:

  1. Chạy lệnh sau trong dòng lệnh Cloud Shell:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
  1. Bây giờ, hãy thêm các vai trò bắt buộc vào tài khoản dịch vụ được tạo ở bước trên
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'

Lệnh trên sử dụng abap-sdk-poc làm tên mẫu cho Dự án Google Cloud. Thay thế mã này bằng mã dự án của bạn.

  1. Để xác minh vai trò đã được thêm, hãy chuyển đến trang IAM. Tài khoản dịch vụ mà bạn đã tạo sẽ được liệt kê cùng với vai trò đã được chỉ định cho tài khoản đó như minh hoạ dưới đây:

6af77a519ed3e357.png

6. Tạo cấu hình khoá ứng dụng

Giờ đây, khi bạn đã thiết lập các điều kiện tiên quyết ở phía Google Cloud, chúng ta có thể tiếp tục với cấu hình ở phía SAP.

Đối với cấu hình liên quan đến việc xác thực và kết nối, SDK ABAP cho Google Cloud sử dụng bảng /GOOG/CLIENT_KEY

Để duy trì cấu hình trong bảng /GOOG/CLIENT_KEY, hãy thực hiện các bước sau:

  1. Trong SAP GUI, hãy nhập mã giao dịch SPRO.
  2. Nhấp vào SAP Reference IMG (Hình ảnh tham chiếu SAP).
  3. Nhấp vào ABAP SDK for Google Cloud (SDK ABAP cho Google Cloud) > Basic Settings (Cài đặt cơ bản) > Configure Client Key (Định cấu hình khoá ứng dụng).
  4. Duy trì các giá trị sau đây cho các trường:

Trường

Giá trị

Tên khoá Google Cloud

TEST_TRANSLATION

Tên tài khoản dịch vụ Google Cloud

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

Phạm vi Google Cloud

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

Mã dự án

abap-sdk-poc

Lớp uỷ quyền

/GOOG/CL_AUTH_GOOGLE

Để trống tất cả các trường khác

7. Tạo Báo cáo Z để gọi Cloud Translation API V3 và Dịch văn bản

  1. Đăng nhập vào hệ thống SAP.
  2. Chuyển đến mã giao dịch SE38 và tạo một Chương trình báo cáo có tên ZDEMO_TRANSLATE_TEXT.
  3. Trong cửa sổ bật lên, hãy cung cấp thông tin chi tiết như bên dưới rồi nhấp vào Lưu.

6ba124f9187d1fc0.png

Trong cửa sổ bật lên tiếp theo, hãy chọn Đối tượng cục bộ hoặc Cung cấp tên gói theo lựa chọn của bạn.

  1. Trong Trình chỉnh sửa ABAP, hãy thêm mã sau:
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. Lưu và kích hoạt Báo cáo.
  2. Thực thi báo cáo (F8).

Khi thực thi thành công, bạn sẽ thấy kết quả báo cáo như dưới đây:

2dd3bf270d2b1477.png

8. Tạo Báo cáo Z để gọi Cloud Translation API V3 và Phát hiện ngôn ngữ

  1. Đăng nhập vào hệ thống SAP.
  2. Chuyển đến mã giao dịch SE38 và tạo một Chương trình báo cáo có tên ZDEMO_DETECT_LANGUAGE.
  3. Trong cửa sổ bật lên, hãy cung cấp thông tin chi tiết như minh hoạ bên dưới rồi nhấp vào Lưu:

64c2eb0e0173ae51.png

Trong cửa sổ bật lên tiếp theo, hãy chọn Đối tượng cục bộ hoặc Cung cấp tên gói theo lựa chọn của bạn.

  1. Trong Trình chỉnh sửa ABAP, hãy thêm mã sau:
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. Lưu và kích hoạt Báo cáo.
  2. Thực thi báo cáo (F8).

Khi thực thi thành công, bạn sẽ thấy kết quả báo cáo như dưới đây:

a36e48bded53e62d.png

9. Tạo báo cáo Z để gọi phương thức GET_SUPPORTED_LANGUAGES

  1. Đăng nhập vào Hệ thống SAP
  2. Chuyển đến mã giao dịch SE38 và tạo một Chương trình báo cáo có tên ZDEMO_GET_LANGUAGES.
  3. Trong cửa sổ bật lên, hãy cung cấp thông tin chi tiết như bên dưới rồi nhấp vào Lưu.

3819fc355cf2cd4d.png

Trong cửa sổ bật lên tiếp theo, hãy chọn Đối tượng cục bộ hoặc Cung cấp tên gói theo lựa chọn của bạn.

  1. Trong Trình chỉnh sửa ABAP, hãy thêm mã sau:
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. Lưu và kích hoạt Báo cáo.
  2. Thực thi báo cáo (F8).

Khi thực thi thành công, bạn sẽ thấy kết quả báo cáo như dưới đây:

78199926919e7801.png

10. Xin chúc mừng

Xin chúc mừng! Bạn đã hoàn tất thành công lớp học lập trình "Sử dụng API Dịch bằng SDK ABAP cho Google Cloud".

Cloud Translation API V3 (còn gọi là Cloud Translation API Advanced) có nhiều tính năng, bao gồm:

  • Dịch bằng Mô hình tuỳ chỉnh
  • Dịch bằng Bảng chú giải
  • Hỗ trợ chuyển tự
  • Dịch tài liệu

Giờ đây, bạn có thể tiếp tục các lớp học lập trình sau để tiếp tục hành trình tìm hiểu cách sử dụng SDK ABAP cho Google Cloud nhằm truy cập vào nhiều Dịch vụ của Google Cloud.

  • Gửi một sự kiện đến Pub/Sub
  • Nhận sự kiện từ Cloud Pub/Sub
  • Tải một đối tượng lớn lên bộ chứa Cloud Storage bằng cách phân đoạn
  • Sử dụng API DLP để loại bỏ PII
  • Gọi BigQuery ML từ ABAP

11. Dọn dẹp

Nếu bạn không muốn tiếp tục các lớp học lập trình bổ sung liên quan đến SDK ABAP cho Google Cloud, vui lòng tiến hành dọn dẹp.

Xoá dự án

  • Xoá dự án trên Google Cloud:
gcloud projects delete abap-sdk-poc

Xoá từng tài nguyên

  1. Xoá thực thể máy tính:
gcloud compute instances delete abap-trial-docker
  1. Xoá firewall-rules:
gcloud compute firewall-rules delete sapmachine
  1. Xoá tài khoản dịch vụ:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com