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 แล้ว
- คุณสามารถดูที่ Codelab " ติดตั้งช่วงทดลองใช้ ABAP Platform บน Google Cloud Platform และติดตั้ง ABAP SDK" เพื่อตั้งค่าระบบใหม่
สิ่งที่คุณจะสร้าง
คุณจะสร้างโปรแกรมต่อไปนี้ในระบบ 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. ก่อนเริ่มต้น
- โปรดตรวจสอบว่าคุณมีสิทธิ์เข้าถึงระบบ SAP ที่ติดตั้ง ABAP SDK สำหรับ Google Cloud แล้ว
- คุณสามารถดูที่ Codelab " ติดตั้งช่วงทดลองใช้ ABAP Platform บน Google Cloud Platform และติดตั้ง ABAP SDK" เพื่อตั้งค่าระบบใหม่
- ในคอนโซล Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud (เช่น
abap-sdk-poc).
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว โปรดข้ามขั้นตอนนี้หากคุณใช้บัญชีทดลองใช้ฟรี 90 วัน
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบนจาก Cloud Console:
- เรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสิทธิ์สำหรับบัญชีของคุณและตั้งค่าโปรเจ็กต์เริ่มต้นเป็น
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
- เรียกใช้คำสั่งด้านล่างใน 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 หมายเลขอ้างอิง 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. ขอแสดงความยินดี
ยินดีด้วย คุณทำ "การใช้ 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
ลบทรัพยากรแต่ละรายการ
- ลบอินสแตนซ์การประมวลผล
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