การใช้ Translation API กับ ABAP SDK สำหรับ Google Cloud

1. บทนำ

Codelab นี้มีขั้นตอนในการเรียกใช้เมธอด Translation API V3 (ขั้นสูง) โดยใช้ ABAP SDK สำหรับ Google Cloud ใน Codelab นี้ เราจะดูวิธีแปลข้อความ ตรวจหาภาษาของข้อความและแสดงรายการภาษาที่รองรับโดยใช้ Translation API V3

บริการ Google Cloud ต่อไปนี้จะใช้ใน Codelab นี้

  • Compute Engine
  • บริการเครือข่าย
  • Cloud Shell
  • Cloud Translation API V3

ข้อกำหนดเบื้องต้น

สิ่งที่คุณจะสร้าง

คุณจะสร้างโปรแกรมต่อไปนี้ในระบบ SAP โดยใช้ ABAP SDK สำหรับ Google Cloud

  • แปลข้อความเป็นหลายภาษาโดยใช้ Cloud Translation API V3 ของ Google
  • ตรวจจับภาษาของข้อความต้นฉบับโดยใช้ Google Cloud Translation API V3
  • แสดงรายการภาษาที่รองรับของ Google Cloud Translation API V3

2. ข้อกำหนด

  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินหรือสร้างบัญชีทดลองใช้ฟรี 90 วันสำหรับ Google Cloud Platform
  • ติดตั้ง SAP GUI (Windows หรือ Java) ในระบบแล้ว หากติดตั้ง SAP GUI บนเครื่องแล้ว ให้เชื่อมต่อกับ SAP โดยใช้ที่อยู่ IP ภายนอกของ VM เป็น IP ของแอปพลิเคชัน หากคุณใช้ Mac คุณสามารถติดตั้ง SAP GUI สำหรับ Java ที่มีอยู่ในลิงก์นี้

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
  • คุณต้องมีสิทธิ์เข้าถึงระบบ SAP ที่ติดตั้ง ABAP SDK สำหรับ Google Cloud ไว้
  • คุณต้องทำ Codelab 1 (ติดตั้ง ABAP Platform แบบทดลองใช้ 1909 บน Google Cloud Platform และติดตั้ง ABAP SDK สำหรับ Google Cloud) และ Codelab 2 (กำหนดค่าการตรวจสอบสิทธิ์ ABAP SDK โดยใช้โทเค็นสำหรับ SAP ที่โฮสต์บน Compute Engine VM) ก่อนที่จะดำเนินการต่อกับ Codelab นี้
  • หากคุณใช้ Codelab 1 และ Codelab 2 จนเสร็จสิ้น ก็น่าจะมอบระบบ ABAP Platform Trial 1909 ใน Google Cloud ให้คุณพร้อมกับการตั้งค่าที่จําเป็นสําหรับการตรวจสอบสิทธิ์และการเชื่อมต่อ
  • ถ้าคุณยังทำ Codelab 1 และ Codelab 2 ไม่เสร็จสิ้น คุณจะไม่มีโครงสร้างพื้นฐานและการเชื่อมต่อที่จำเป็นทั้งหมดเพื่อทำตามขั้นตอนที่ระบุไว้ใน Codelab นี้ ดังนั้นคุณต้องทำ Codelab 1 และ Codelab 2 ให้เสร็จสิ้นก่อนดำเนินการ Codelab นี้

4. เปิดใช้ Cloud Translation API V3 ในโปรเจ็กต์ Google Cloud

  1. เรียกใช้คำสั่งด้านล่างใน Cloud Shell ซึ่งจะเปิดใช้ Cloud Translation API ในโปรเจ็กต์ Google Cloud
gcloud services enable translate.googleapis.com

เมื่อดําเนินการสําเร็จ คุณจะเห็นข้อความแสดงดังที่แสดงด้านล่าง

b5f52859df2c2f56.png

ตอนนี้คุณควรเปิดใช้ Cloud Translation API ในโปรเจ็กต์ Google Cloud แล้ว

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 แทนที่ด้วยรหัสโปรเจ็กต์

  1. หากต้องการยืนยัน ระบบเพิ่มบทบาทแล้ว ให้ไปที่หน้า IAM บัญชีบริการที่คุณสร้างควรแสดงขึ้นพร้อมกับบทบาทที่ได้รับมอบหมายดังต่อไปนี้

6af77a519ed3e357.png

6. สร้างการกำหนดค่าคีย์ไคลเอ็นต์

เมื่อคุณได้ตั้งค่าข้อกำหนดเบื้องต้นในฝั่ง Google Cloud แล้ว เราดำเนินการต่อด้วยการกำหนดค่าในฝั่ง SAP ได้

สำหรับการตรวจสอบสิทธิ์และการกำหนดค่าที่เกี่ยวข้องกับการเชื่อมต่อ ABAP SDK สำหรับ Google Cloud จะใช้ตาราง /GOOG/CLIENT_KEY

หากต้องการคงการกำหนดค่าในตาราง /GOOG/CLIENT_KEY ไว้ ให้ทำตามขั้นตอนต่อไปนี้

  1. ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
  2. คลิก SAP หมายเลขอ้างอิง IMG
  3. คลิก ABAP SDK สําหรับ Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
  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

รหัสโปรเจ็กต์

abap-sdk-poc

คลาสการให้สิทธิ์

/GOOG/CL_AUTH_GOOGLE

เว้นฟิลด์อื่นๆ ทั้งหมดว่างไว้

7. สร้างรายงาน Z เพื่อเรียกใช้ Cloud Translation API V3 และแปลข้อความ

  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. สร้างรายงาน Z เพื่อเรียกใช้ Cloud Translation API V3 และตรวจหาภาษา

  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. ขอแสดงความยินดี

ยินดีด้วย คุณทำ "การใช้ API การแปลกับ ABAP SDK สำหรับ Google Cloud" เสร็จสมบูรณ์แล้ว Codelab

Cloud Translation API V3 หรือที่รู้จักกันในชื่อ Cloud Translation API Advanced มีฟีเจอร์มากมายดังต่อไปนี้

  • แปลด้วยรูปแบบที่กำหนดเอง
  • แปลโดยใช้อภิธานศัพท์
  • การสนับสนุนการทับศัพท์
  • การแปลเอกสาร

คุณสามารถดำเนินการกับ Codelab ต่อไปนี้เพื่อศึกษาเส้นทางการเรียนรู้ในการใช้ ABAP SDK สำหรับ Google Cloud เพื่อเข้าถึงบริการต่างๆ ของ Google Cloud ต่อได้

  • ส่งเหตุการณ์ไปยัง Pub/Sub
  • รับเหตุการณ์จาก Cloud Pub/Sub
  • อัปโหลดออบเจ็กต์ขนาดใหญ่ไปยังที่เก็บข้อมูล Cloud Storage โดยใช้การแบ่งส่วน
  • ใช้ DLP API เพื่อปกปิด PII
  • เรียกใช้ BigQuery ML จาก ABAP

11. ล้างข้อมูล

หากไม่ต้องการใช้งาน Codelab เพิ่มเติมที่เกี่ยวข้องกับ ABAP SDK สำหรับ Google Cloud ต่อ โปรดทําการล้างข้อมูลต่อ

ลบโปรเจ็กต์

  • ลบโปรเจ็กต์ 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