1. บทนำ
โค้ดแล็บนี้จะแสดงขั้นตอนในการเรียกใช้เมธอดของ Translation API V3 (ขั้นสูง) โดยใช้ ABAP SDK สําหรับ Google Cloud ใน Codelab นี้ เราจะดูวิธีแปลข้อความ ตรวจหาภาษาของข้อความ และแสดงรายการภาษาที่รองรับโดยใช้ Translation API เวอร์ชัน 3
บริการ Google Cloud ที่ใช้ในโค้ดแล็บนี้มีดังนี้
- Compute Engine
- บริการเครือข่าย
- Cloud Shell
- Cloud Translation API V3
ข้อกำหนดเบื้องต้น
- ตรวจสอบว่าคุณมีสิทธิ์เข้าถึงระบบ SAP ที่ติดตั้ง ABAP SDK สําหรับ Google Cloud แล้ว
- คุณสามารถดู Codelab "ติดตั้งช่วงทดลองใช้แพลตฟอร์ม ABAP ใน Google Cloud Platform และติดตั้ง ABAP SDK" เพื่อตั้งค่าระบบใหม่
สิ่งที่คุณจะสร้าง
คุณจะต้องสร้างโปรแกรมต่อไปนี้ในระบบ SAP โดยใช้ ABAP SDK สําหรับ Google Cloud
- แปลข้อความเป็นหลายภาษาโดยใช้ Cloud Translation API เวอร์ชัน 3 ของ Google
- ตรวจหาภาษาของข้อความต้นฉบับโดยใช้ Google Cloud Translation API เวอร์ชัน 3
- แสดงรายการภาษาที่รองรับของ Google Cloud Translation API เวอร์ชัน 3
2. ข้อกำหนด
- เบราว์เซอร์ เช่น Chrome หรือ Firefox
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินหรือสร้างบัญชีทดลองใช้ฟรี 90 วันสำหรับ Google Cloud Platform
- SAP GUI (Windows หรือ Java) ที่ติดตั้งในระบบ หากติดตั้ง SAP GUI ไว้ในเครื่องแล้ว ให้เชื่อมต่อกับ SAP โดยใช้ที่อยู่ IP ภายนอกของ VM เป็น IP ของเซิร์ฟเวอร์แอปพลิเคชัน หากใช้ Mac คุณสามารถติดตั้ง SAP GUI for Java ซึ่งมีอยู่ในลิงก์นี้ได้ด้วย
3. ก่อนเริ่มต้น
- ตรวจสอบว่าคุณมีสิทธิ์เข้าถึงระบบ SAP ที่ติดตั้ง ABAP SDK สําหรับ Google Cloud แล้ว
- คุณสามารถดู Codelab "ติดตั้งช่วงทดลองใช้แพลตฟอร์ม ABAP ใน Google Cloud Platform และติดตั้ง ABAP SDK" เพื่อตั้งค่าระบบใหม่
- ใน Google Cloud Console ในหน้าเครื่องมือเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud (เช่น
abap-sdk-poc).
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์หรือไม่ โปรดข้ามขั้นตอนนี้หากคุณใช้บัญชีทดลองใช้ฟรี 90 วัน
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud จากคอนโซลระบบคลาวด์ ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน
- เรียกใช้คําสั่งต่อไปนี้เพื่อตรวจสอบสิทธิ์สําหรับบัญชีและตั้งค่าโปรเจ็กต์เริ่มต้นเป็น
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 รุ่นทดลอง 1909 ใน Google Cloud Platform และติดตั้ง ABAP SDK สําหรับ Google Cloud) และ Codelab 2 (กําหนดค่าการตรวจสอบสิทธิ์ ABAP SDK โดยใช้โทเค็นสําหรับ SAP ที่โฮสต์ใน VM ของ Compute Engine) ให้เสร็จสมบูรณ์ก่อนจึงจะดําเนินการต่อใน Codelab นี้
- หากคุณทำ Codelab 1 และ Codelab 2 เสร็จแล้ว ระบบจะจัดสรรระบบเวอร์ชันทดลอง 1909 ของ ABAP Platform บน Google Cloud ให้คุณ พร้อมกับการตั้งค่าที่จำเป็นสำหรับการตรวจสอบสิทธิ์และการเชื่อมต่อ
- หากคุณยังไม่ได้ทํา Codelab 1 และ Codelab 2 ให้เสร็จสิ้น คุณจะไม่มีโครงสร้างพื้นฐานและการเชื่อมต่อที่จําเป็นทั้งหมดเพื่อทําตามขั้นตอนที่ระบุไว้ใน Codelab นี้ ดังนั้น คุณต้องทํา Codelab 1 และ Codelab 2 ให้เสร็จก่อนจึงจะทํา Codelab นี้ได้
4. เปิดใช้ Cloud Translation API V3 ในโปรเจ็กต์ Google Cloud
- เรียกใช้คําสั่งด้านล่างใน Cloud Shell ซึ่งจะเป็นการเปิดใช้ Cloud Translation API ในโปรเจ็กต์ Google Cloud
gcloud services enable translate.googleapis.com
เมื่อดำเนินการเสร็จเรียบร้อยแล้ว คุณควรเห็นข้อความแสดงดังที่แสดงด้านล่าง
ตอนนี้คุณควรเปิดใช้ Cloud Translation API ในโปรเจ็กต์ Google Cloud แล้ว
5. สร้างบัญชีบริการที่มีบทบาทผู้ใช้ Cloud Translation
หากต้องการสร้างบัญชีบริการที่มีบทบาทที่จําเป็น ให้ทําตามขั้นตอนต่อไปนี้
- เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล Cloud Shell
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
- จากนั้นเพิ่มบทบาทที่จำเป็นลงในบัญชีบริการที่สร้างในขั้นตอนด้านบน
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 แทนที่ด้วยรหัสโปรเจ็กต์ของคุณ
- ไปที่หน้า IAM เพื่อยืนยันว่าได้เพิ่มบทบาทแล้ว บัญชีบริการที่คุณสร้างขึ้นควรแสดงพร้อมกับบทบาทที่กำหนดไว้ดังที่แสดงด้านล่าง
6. สร้างการกำหนดค่าคีย์ไคลเอ็นต์
ตอนนี้คุณได้ตั้งค่าข้อกําหนดเบื้องต้นในฝั่ง Google Cloud แล้ว เราจึงดําเนินการกําหนดค่าในฝั่ง SAP ต่อได้
สําหรับการกําหนดค่าที่เกี่ยวข้องกับการตรวจสอบสิทธิ์และการเชื่อมต่อ ABAP SDK สําหรับ Google Cloud จะใช้ตาราง /GOOG/CLIENT_KEY
หากต้องการดูแลรักษาการกําหนดค่าในตาราง /GOOG/CLIENT_KEY
ให้ทําตามขั้นตอนต่อไปนี้
- ใน SAP GUI ให้ป้อนรหัสธุรกรรม
SPRO
- คลิก SAP Reference IMG
- คลิก ABAP SDK สําหรับ Google Cloud > การตั้งค่าพื้นฐาน > กําหนดค่าคีย์ไคลเอ็นต์
- คงค่าต่อไปนี้ในช่อง
ช่อง | ค่า |
ชื่อคีย์ Google Cloud | TEST_TRANSLATION |
ชื่อบัญชีบริการ Google Cloud |
|
ขอบเขต Google Cloud |
|
รหัสโปรเจ็กต์ | abap-sdk-poc |
คลาสการให้สิทธิ์ |
|
เว้นช่องอื่นๆ ว่างไว้
7. สร้างรายงาน Z เพื่อเรียกใช้ Cloud Translation API V3 และแปลข้อความ
- เข้าสู่ระบบระบบ SAP
- ไปที่รหัสธุรกรรม
SE38
และสร้างโปรแกรมรายงานชื่อZDEMO_TRANSLATE_TEXT.
- ในป๊อปอัปที่เปิดขึ้น ให้ระบุรายละเอียดตามที่แสดงด้านล่าง แล้วคลิกบันทึก
ในป๊อปอัปถัดไป ให้เลือก "ออบเจ็กต์ในเครื่อง" หรือ "ระบุชื่อแพ็กเกจ" ตามต้องการ
- ในตัวแก้ไข 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.
- บันทึกและเปิดใช้งานรายงาน
- เรียกใช้รายงาน (F8)
เมื่อดำเนินการเสร็จเรียบร้อยแล้ว คุณควรเห็นเอาต์พุตรายงานดังที่แสดงด้านล่าง
8. สร้างรายงาน Z เพื่อเรียกใช้ Cloud Translation API V3 และตรวจหาภาษา
- เข้าสู่ระบบระบบ SAP
- ไปที่รหัสธุรกรรม
SE38
และสร้างโปรแกรมรายงานชื่อZDEMO_DETECT_LANGUAGE.
- ในป๊อปอัปที่เปิดขึ้น ให้ระบุรายละเอียดตามที่แสดงด้านล่าง แล้วคลิกบันทึก
ในป๊อปอัปถัดไป ให้เลือก "ออบเจ็กต์ในเครื่อง" หรือ "ระบุชื่อแพ็กเกจ" ตามต้องการ
- ในตัวแก้ไข 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.
- บันทึกและเปิดใช้งานรายงาน
- เรียกใช้รายงาน (F8)
เมื่อดำเนินการเสร็จเรียบร้อยแล้ว คุณควรเห็นเอาต์พุตรายงานดังที่แสดงด้านล่าง
9. สร้างรายงาน Z เพื่อเรียกใช้เมธอด GET_SUPPORTED_LANGUAGES
- เข้าสู่ระบบระบบ SAP
- ไปที่รหัสธุรกรรม
SE38
และสร้างโปรแกรมรายงานชื่อZDEMO_GET_LANGUAGES.
- ในป๊อปอัปที่เปิดขึ้น ให้ระบุรายละเอียดตามที่แสดงด้านล่าง แล้วคลิกบันทึก
ในป๊อปอัปถัดไป ให้เลือก "ออบเจ็กต์ในเครื่อง" หรือ "ระบุชื่อแพ็กเกจ" ตามต้องการ
- ในตัวแก้ไข 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.
- บันทึกและเปิดใช้งานรายงาน
- เรียกใช้รายงาน (F8)
เมื่อดำเนินการเสร็จเรียบร้อยแล้ว คุณควรเห็นเอาต์พุตรายงานดังที่แสดงด้านล่าง
10. ขอแสดงความยินดี
ยินดีด้วย คุณทำ Codelab "การใช้ Translation API กับ ABAP SDK สำหรับ Google Cloud" เสร็จเรียบร้อยแล้ว
Cloud Translation API V3 หรือที่เรียกว่า Cloud Translation API Advanced มีฟีเจอร์มากมาย ซึ่งรวมถึง
- แปลด้วยโมเดลที่กำหนดเอง
- แปลโดยใช้อภิธานศัพท์
- การรองรับการทับศัพท์
- การแปลเอกสาร
ตอนนี้คุณก็ดู Codelab ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ ABAP SDK สําหรับ Google Cloud เพื่อเข้าถึงบริการต่างๆ ของ Google Cloud ต่อได้
- ส่งเหตุการณ์ไปยัง Pub/Sub
- รับเหตุการณ์จาก Cloud Pub/Sub
- อัปโหลดออบเจ็กต์ขนาดใหญ่ไปยังที่เก็บข้อมูล Cloud Storage โดยใช้การแบ่งกลุ่ม
- ใช้ DLP API สำหรับการปกปิดข้อมูลส่วนบุคคล
- เรียกใช้ BigQuery ML จาก ABAP
11. ล้างข้อมูล
หากไม่ต้องการทำ Codelab เพิ่มเติมที่เกี่ยวข้องกับ ABAP SDK สำหรับ Google Cloud โปรดดำเนินการล้างข้อมูล
ลบโปรเจ็กต์
- ลบโปรเจ็กต์ Google Cloud
gcloud projects delete abap-sdk-poc
ลบทรัพยากรแต่ละรายการ
- ลบอินสแตนซ์การประมวลผลโดยทำดังนี้
gcloud compute instances delete abap-trial-docker
- ลบกฎไฟร์วอลล์
gcloud compute firewall-rules delete sapmachine
- ลบบัญชีบริการ
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com