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

1. מבוא

בקודלאב הזה מוסבר איך לקרוא לשיטות של Translation API V3 (מתקדם) באמצעות ABAP SDK ל-Google Cloud. בסדנת הקוד הזו תלמדו איך לתרגם טקסט, לזהות את השפה של הטקסט ולפרט את השפות הנתמכות באמצעות Translation API V3.

בקודלאב הזה נעשה שימוש בשירותי Google Cloud הבאים:

  • Compute Engine
  • שירותי רשת
  • Cloud Shell
  • Cloud Translation API V3

דרישות מוקדמות

מה תפַתחו

יוצרים את התוכניות הבאות במערכת SAP באמצעות ABAP SDK for 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 for 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 עם ערכת ה-SDK של ABAP ל-Google Cloud.
  • לפני שממשיכים בקודלאב הזה, צריך להשלים את הקודלאב 1 (התקנת ABAP Platform Trial 1909 ב-Google Cloud Platform והתקנת ABAP SDK ל-Google Cloud) ואת הקודלאב 2 (הגדרת אימות ABAP SDK באמצעות אסימונים ל-SAP Hosted ב-Compute Engine VM).
  • אם השלמתם את Codelab 1 ואת Codelab 2, המערכת של ABAP Platform Trial 1909 ב-Google Cloud הוקצה לכם, יחד עם ההגדרות הנדרשות לאימות ולקישוריות.
  • אם לא השלמתם את הקודלאב 1 ואת הקודלאב 2, לא תהיה לכם את כל התשתית והקישוריות הנדרשים כדי לבצע את השלבים שמפורטים בקודלאב הזה. לכן, עליכם להשלים את 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.

להגדרות שקשורות לאימות ולקישוריות, ערכת ה-SDK של ABAP ל-Google Cloud משתמשת בטבלה /GOOG/CLIENT_KEY

כדי לשמור את ההגדרות בטבלה /GOOG/CLIENT_KEY:

  1. בממשק המשתמש של SAP, מזינים את קוד העסקה SPRO.
  2. לוחצים על SAP Reference IMG.
  3. לוחצים על ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
  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

Authorization Class

/GOOG/CL_AUTH_GOOGLE

משאירים את כל שאר השדות ריקים.

7. יצירת דוח Z כדי לקרוא ל-Cloud Translation API V3 ולתרגם טקסט

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

6ba124f9187d1fc0.png

בחלון הקופץ הבא, בוחרים באפשרות Local Object (אובייקט מקומי) או Provide a package name (ציון שם חבילה) לפי הצורך.

  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 (אובייקט מקומי) או באפשרות Provide a package name (ציון שם חבילה) לפי הבחירה שלכם.

  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 (אובייקט מקומי) או Provide a package name (ציון שם חבילה) לפי הצורך.

  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'.

ל-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. הסרת המשאבים

אם אתם לא רוצים להמשיך בקודלאבים הנוספים שקשורים ל-ABAP SDK ל-Google Cloud, תוכלו להמשיך לניקוי.

מחיקת הפרויקט

  • מוחקים את הפרויקט ב-Google Cloud:
gcloud projects delete abap-sdk-poc

מחיקת משאבים ספציפיים

  1. מוחקים את מכונה לעיבוד נתונים:
gcloud compute instances delete abap-trial-docker
  1. מוחקים את firewall-rules:
gcloud compute firewall-rules delete sapmachine
  1. מוחקים את חשבון השירות:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com