1. מבוא
ב-Codelab הזה מוסבר איך לקרוא לשיטות של Translation API V3 (Advanced) באמצעות ABAP SDK ל-Google Cloud. ב-Codelab הזה נראה איך לתרגם טקסט, לזהות את השפה של הטקסט ולהציג את השפות הנתמכות באמצעות Translation API V3
ב-Codelab הזה נעשה שימוש בשירותי Google Cloud הבאים:
- Compute Engine
- שירותי רשת
- Cloud Shell
- Cloud Translation API גרסה 3
דרישות מוקדמות
- מוודאים שיש גישה למערכת SAP עם התקנה של ABAP SDK ל-Google Cloud.
- אפשר להיעזר ב-Codelab " התקנת תקופת ניסיון של פלטפורמת ABAP ב-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 ב-Google Cloud Platform והתקנת ABAP SDK" כדי להגדיר מערכת חדשה.
- במסוף Google Cloud, בדף בורר הפרויקטים, בוחרים או יוצרים פרויקט ב-Google Cloud (לדוגמה:
abap-sdk-poc).
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. איך בודקים אם החיוב מופעל בפרויקט אפשר לדלג על השלב הזה אם משתמשים בחשבון לתקופת ניסיון בחינם למשך 90 יום.
- תשתמשו ב-Cloud Shell, סביבת שורת הפקודה שפועלת ב-Google Cloud. לוחצים על Activate 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 הזה, צריך להשלים את Codelab 1 (התקנת גרסת ניסיון 1909 של ABAP Platform ב-Google Cloud Platform והתקנת ABAP SDK ל-Google Cloud) ו-Codelab 2 (הגדרת אימות ABAP SDK באמצעות אסימונים ל-SAP שמתארח ב-VM של Compute Engine).
- אם השלמתם את Codelab 1 ואת Codelab 2, הייתה מוקצית לך מערכת ABAP Platform ממשלתית 1909 לניסיון ב-Google Cloud, יחד עם ההגדרה הדרושה לאימות ולקישוריות.
- אם לא השלמתם את Codelab 1 ואת Codelab 2, לא יהיו לכם כל התשתית והקישוריות הנדרשים לביצוע השלבים המפורטים ב-Codelab הזה. לכן לפני שממשיכים ב-Codelab הזה צריך להשלים את Codelab 1 ואת Codelab 2.
4. הפעלת Cloud Translation API V3 בפרויקט ב-Google Cloud
- כדי להפעיל את Cloud Translation API בפרויקט שלכם ב-Google Cloud, מריצים את הפקודה הבאה ב-Cloud Shell:
gcloud services enable translate.googleapis.com
לאחר ביצוע תקין, אמורה להופיע ההודעה הבאה:
עכשיו Cloud Translation API אמור להיות מופעל בפרויקט שלך ב-Google Cloud
5. יצירת חשבון שירות עם תפקיד משתמש בתרגום ב-Cloud
כדי ליצור חשבון שירות עם התפקיד הנדרש, מבצעים את השלבים הבאים:
- מריצים את הפקודה הבאה בטרמינל של 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
, מבצעים את הפעולות הבאות:
- ב-GUI של SAP, מזינים את קוד העסקה
SPRO
. - לוחצים על SAP Reference JPG.
- לוחצים על ABAP SDK for Google Cloud > הגדרות בסיסיות > הגדרת מפתח לקוח.
- שומרים על הערכים הבאים בשדות:
שדה | ערך |
שם המפתח ב-Google Cloud | TEST_TRANSLATION |
שם חשבון השירות ב-Google Cloud |
|
היקף ההרשאות של Google Cloud |
|
מזהה הפרויקט | abap-sdk-poc |
רמת הרשאה |
|
יש להשאיר את כל שאר השדות ריקים
7. יצירת דוח Z כדי לקרוא ל-Cloud Translation API V3 ו-Translate טקסט
- מתחברים למערכת SAP.
- צריך לעבור לקוד העסקה
SE38
וליצור תוכנית דוחות בשםZDEMO_TRANSLATE_TEXT.
- בחלון הקופץ שנפתח, מזינים את הפרטים כפי שמוצג למטה ולוחצים על שמירה.
בחלון הקופץ הבא, בוחרים באפשרות Local Object או מספקים שם חבילה בהתאם לבחירתכם.
- בעורך 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.
- בחלון הקופץ שנפתח, מזינים את הפרטים כפי שמוצג למטה ולוחצים על שמירה:
בחלון הקופץ הבא, בוחרים באפשרות Local Object או מספקים שם חבילה בהתאם לבחירתכם.
- בעורך 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.
- בחלון הקופץ שנפתח, מזינים את הפרטים כפי שמוצג למטה ולוחצים על שמירה.
בחלון הקופץ הבא, בוחרים באפשרות Local Object או מספקים שם חבילה בהתאם לבחירתכם.
- בעורך 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. מזל טוב
מעולה! השלמת בהצלחה את התהליך 'שימוש ב-Translation API עם ABAP SDK ל-Google Cloud' Codelab.
Cloud Translation API V3, שנקרא גם Cloud Translation API Advanced כולל הרבה תכונות:
- תרגום באמצעות מודלים מותאמים אישית
- תרגום באמצעות מילון מונחים
- תמיכה בתעתוק
- תרגום מסמכים
עכשיו תוכלו להמשיך עם ה-Codelabs הבאים כדי להמשיך בתהליך הלמידה של השימוש ב-ABAP SDK ל-Google Cloud כדי לגשת לשירותים שונים של Google Cloud.
- שליחת אירוע ל-Pub/Sub
- קבלת אירוע מ-Cloud Pub/Sub
- העלאת אובייקט גדול לקטגוריה של Cloud Storage באמצעות קבוצת נתונים
- שימוש ב-DLP API להשמטת פרטים אישיים מזהים
- שליחת קריאה ל-BigQuery ML מ-ABAP
11. הסרת המשאבים
לא רוצה להמשיך עם ה-Codelabs הנוספים שקשורים ל-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