استفاده از Translation API با ABAP SDK برای Google Cloud

1. معرفی

این لبه کد مراحلی را برای فراخوانی روش‌های ترجمه API V3 (پیشرفته) با استفاده از ABAP SDK برای Google Cloud ارائه می‌کند. در این لبه کد نحوه ترجمه یک متن، تشخیص زبان متن و فهرست کردن زبان های پشتیبانی شده با استفاده از Translation API V3 را خواهیم دید.

خدمات Google Cloud زیر در این کد لبه استفاده می شود:

  • موتور محاسباتی
  • خدمات شبکه
  • پوسته ابری
  • Cloud Translation API V3

پیش نیازها

چیزی که خواهی ساخت

شما برنامه های زیر را در سیستم SAP خود با استفاده از ABAP SDK برای Google Cloud ایجاد خواهید کرد:

  • با استفاده از Google's Cloud Translation API V3، متن را به چندین زبان ترجمه کنید
  • با استفاده از Google Cloud Translation API V3، زبان متن مبدأ را تشخیص دهید
  • زبان های پشتیبانی شده Google Cloud Translation API V3 را فهرست کنید

2. الزامات

  • یک مرورگر، مانند کروم یا فایرفاکس .
  • یک پروژه Google Cloud با فعال کردن صورت‌حساب یا ایجاد یک حساب آزمایشی رایگان 90 روزه برای Google Cloud Platform.
  • SAP GUI (ویندوز یا جاوا) در سیستم شما نصب شده است. اگر SAP GUI قبلاً روی دستگاه شما نصب شده است، با استفاده از آدرس IP خارجی VM به عنوان IP سرور برنامه، به SAP متصل شوید. اگر در مک هستید، می توانید SAP GUI برای جاوا را نیز در این لینک نصب کنید.

3. قبل از شروع

6757b2fb50ddcc2d.png

  • دستورات زیر را برای احراز هویت برای حساب خود اجرا کنید و پروژه پیش فرض را روی abap-sdk-poc تنظیم کنید. Zone 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 دسترسی داشته باشید.
  • قبل از ادامه با این آزمایشگاه کد 1 ( نصب ABAP Platform Trial 1909 در Google Cloud Platform و نصب ABAP SDK for Google Cloud) و codelab 2 ( پیکربندی احراز هویت ABAP SDK با استفاده از نشانه‌ها برای SAP Hosted on Compute Engine VM ) را تکمیل کنید.
  • اگر کد 1 و کد 2 را تکمیل کرده باشید، با این کار یک سیستم آزمایشی 1909 پلتفرم ABAP در Google Cloud به همراه تنظیمات لازم برای احراز هویت و اتصال را برای شما فراهم می کند.
  • اگر Codelab 1 و Codelab 2 را تکمیل نکرده باشید، تمامی زیرساخت ها و اتصالات لازم برای انجام مراحل ارائه شده در این کدلب را نخواهید داشت. بنابراین، قبل از ادامه کار با این کد، باید کد 1 و کد 2 را تکمیل کنید.

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. یک حساب کاربری با نقش کاربر ترجمه ابری ایجاد کنید

برای ایجاد یک حساب کاربری با نقش مورد نیاز، مراحل زیر را انجام دهید:

  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. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای 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 Scope

https://www.googleapis.com/auth/cloud-platform

شناسه پروژه

abap-sdk-poc

کلاس مجوز

/GOOG/CL_AUTH_GOOGLE

تمام فیلدهای دیگر را خالی بگذارید

7. یک Z-Report برای فراخوانی Cloud Translation API V3 و ترجمه یک متن ایجاد کنید.

  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. برای فراخوانی Cloud Translation API V3 و تشخیص زبان، یک Z-Report ایجاد کنید.

  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. تبریک می گویم

تبریک می گویم! شما با موفقیت «استفاده از API ترجمه با ABAP SDK برای Google Cloud» را با موفقیت تکمیل کردید.

Cloud Translation API V3 که با نام Cloud Translation API Advanced نیز شناخته می شود دارای ویژگی های زیادی است از جمله:

  • با مدل های سفارشی ترجمه کنید
  • با استفاده از واژه نامه ها ترجمه کنید
  • پشتیبانی از نویسه‌گردانی
  • ترجمه سند

اکنون می توانید با کدهای زیر ادامه دهید تا به سفر یادگیری خود در استفاده از ABAP SDK برای Google Cloud برای دسترسی به خدمات مختلف Google Cloud ادامه دهید.

  • یک رویداد به Pub/Sub ارسال کنید
  • رویدادی را از Cloud Pub/Sub دریافت کنید
  • یک شی بزرگ را با استفاده از تکه کردن در یک سطل فضای ذخیره سازی ابری آپلود کنید
  • از DLP API برای ویرایش PII استفاده کنید
  • با 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. قوانین فایروال را حذف کنید:
gcloud compute firewall-rules delete sapmachine
  1. حساب سرویس را حذف کنید:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com