שימוש ב-Translation API עם ABAP SDK ל-Google Cloud

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:

  • תרגום טקסט לכמה שפות באמצעות 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 הזה, צריך להשלים את 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

  1. כדי להפעיל את Cloud Translation API בפרויקט שלכם ב-Google Cloud, מריצים את הפקודה הבאה ב-Cloud Shell:
gcloud services enable translate.googleapis.com

לאחר ביצוע תקין, אמורה להופיע ההודעה הבאה:

b5f52859df2c2f56.png

עכשיו Cloud Translation API אמור להיות מופעל בפרויקט שלך ב-Google Cloud

5. יצירת חשבון שירות עם תפקיד משתמש בתרגום ב-Cloud

כדי ליצור חשבון שירות עם התפקיד הנדרש, מבצעים את השלבים הבאים:

  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. ב-GUI של SAP, מזינים את קוד העסקה SPRO.
  2. לוחצים על SAP Reference JPG.
  3. לוחצים על ABAP SDK for 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 ו-Translate טקסט

  1. מתחברים למערכת SAP.
  2. צריך לעבור לקוד העסקה SE38 וליצור תוכנית דוחות בשם ZDEMO_TRANSLATE_TEXT.
  3. בחלון הקופץ שנפתח, מזינים את הפרטים כפי שמוצג למטה ולוחצים על שמירה.

6ba124f9187d1fc0.png

בחלון הקופץ הבא, בוחרים באפשרות Local Object או מספקים שם חבילה בהתאם לבחירתכם.

  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

בחלון הקופץ הבא, בוחרים באפשרות Local Object או מספקים שם חבילה בהתאם לבחירתכם.

  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

בחלון הקופץ הבא, בוחרים באפשרות Local Object או מספקים שם חבילה בהתאם לבחירתכם.

  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. מזל טוב

מעולה! השלמת בהצלחה את התהליך 'שימוש ב-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

איך מוחקים משאבים ספציפיים

  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