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 hướng dẫn các bước để gọi các phương thức của Translation API V3 (Nâng cao) bằng ABAP SDK cho Google Cloud. Trong lớp học lập trình này, chúng ta sẽ xem 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ẽ dùng ABAP SDK cho Google Cloud để tạo các chương trình sau trong hệ thống SAP của mình:

  • Dịch văn bản sang nhiều ngôn ngữ bằng Cloud Translation API phiên bản 3 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 Google Cloud Translation API 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 trê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.
  • GUI SAP (Windows hoặc Java) được cài đặt trong hệ thống của bạn. Nếu GUI của SAP đã được cài đặt trên máy của bạn, hãy kết nối với SAP bằng cách sử dụng địa chỉ IP bên ngoài của máy ảo làm IP của máy chủ ứng dụng. Nếu dùng máy Mac, bạn cũng có thể cài đặt GUI SAP cho Java qua đườ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 tài khoản của bạn và đặt dự án mặc định thành abap-sdk-poc. Khu vực us-west4-b được dùng làm ví dụ. Nếu cần, vui lòng thay đổi dự án và vùng trong các lệnh sau dựa trên 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 dành cho Google Cloud.
  • Bạn phải hoàn tất lớp học lập trình 1 (Cài đặt Bản dùng thử ABAP Platform 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 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 tham gia lớp học lập trình này.
  • Nếu bạn đã hoàn thành lớp học lập trình 1 và lớp học lập trình 2, thì chúng tôi đã cung cấp cho bạn Hệ thống dùng thử ABAP Platform 1909 trên Google Cloud, cùng với các bước thiết lập cần thiết cho việc xác thực và kết nối.
  • Nếu chưa hoàn thành 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ó tất cả cơ sở hạ tầng và khả năng 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 thành 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 của bạn trên Google Cloud

  1. Thực thi lệnh bên dưới trong Cloud Shell, thao tác này sẽ bật Cloud Translation API trong dự án Google Cloud của bạn:
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 hiển thị như sau:

b5f52859df2c2f56.png

Bây giờ, bạn đã bật Cloud Translation API trong dự án của mình trên Google Cloud

5. Tạo một tài khoản dịch vụ có vai trò người dùng trong Cloud Translation

Để 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 thiết bị đầu cuối 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ụ đã 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. Hãy 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 truy cập vào trang IAM. Dưới đây là danh sách tài khoản dịch vụ mà bạn đã tạo và vai trò đã được chỉ định:

6af77a519ed3e357.pngS

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

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

Đối với cấu hình liên quan đến việc xác thực và khả năng kết nối, SDK ABAP của Google Cloud sẽ 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 GUI SAP, hãy nhập mã giao dịch SPRO.
  2. Nhấp vào Ảnh đối chiếu của SAP.
  3. Nhấp vào ABAP SDK for Google Cloud > Cài đặt cơ bản > Định cấu hình khoá ứng dụng.
  4. Duy trì các giá trị sau trong 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 của 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 một Z-Report để gọi Cloud Translation API V3 và Dịch văn bản

  1. Đăng nhập vào hệ thống SAP của bạn.
  2. Chuyển đến mã giao dịch SE38 rồi tạo Chương trình báo cáo với tên là ZDEMO_TRANSLATE_TEXT.
  3. Trong cửa sổ bật lên mới mở ra, 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ư sau:

2dd3bf270d2b1477.pngS

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

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

64c2eb0e0173ae51.pngS

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ư sau:

a36e48bded53e62d.png

9. Tạo một Báo cáo Z để gọi phương thức GET_Recover_LANGUAGES

  1. Đăng nhập vào hệ thống SAP của bạn
  2. Chuyển đến mã giao dịch SE38 rồi tạo Chương trình báo cáo với tên là ZDEMO_GET_LANGUAGES.
  3. Trong cửa sổ bật lên mới mở ra, 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ư sau:

78199926919e7801.pngS

10. Xin chúc mừng

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

Cloud Translation API V3 còn được gọi là Cloud Translation API Advanced có rất nhiều tính năng, trong đó có:

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

Bây giờ, 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 học tập sử dụng ABAP SDK cho Google Cloud để truy cập vào nhiều Dịch vụ Google Cloud.

  • Gửi 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 tính năng phân đoạn
  • Sử dụng API DLP để loại bỏ thông tin nhận dạng cá nhân
  • 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 khác liên quan đến ABAP SDK dành 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á phiên bản điện toán:
gcloud compute instances delete abap-trial-docker
  1. Xoá quy tắc tường lửa:
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