استخدام واجهة برمجة التطبيقات Translation API مع حزمة تطوير البرامج (SDK) ABAP في Google Cloud

1. مقدمة

يوفّر هذا الرمز البرمجي خطوات لاستدعاء طرق الإصدار 3 من Translation API (المتقدّمة) باستخدام حزمة ABAP SDK في Google Cloud. في هذا الدرس التطبيقي حول الترميز، سنتعرّف على كيفية ترجمة نص ورصد لغته وعرض اللغات المتاحة باستخدام الإصدار 3 من Translation API.

يتم استخدام خدمات Google Cloud التالية في هذا الدليل التعليمي:

  • Compute Engine
  • خدمات الشبكة
  • Cloud Shell
  • الإصدار 3 من Cloud Translation API

المتطلبات الأساسية

  • تأكَّد من أنّ لديك إذن الوصول إلى نظام SAP تم تثبيت حزمة تطوير البرامج (SDK) لـ ABAP عليه في Google Cloud.
  • يمكنك الرجوع إلى دورة codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (تثبيت إصدار تجريبي من ABAP Platform على Google Cloud Platform وتثبيت حزمة تطوير البرامج (SDK) لـ ABAP) لإعداد نظام جديد.

ما ستُنشئه

عليك إنشاء البرامج التالية في نظام SAP باستخدام حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud:

  • ترجمة نص إلى لغات متعدّدة باستخدام الإصدار 3 من Cloud Translation API من Google
  • رصد لغة النص المصدر باستخدام الإصدار 3 من Google Cloud Translation API
  • إدراج اللغات المتاحة في الإصدار 3 من Google Cloud Translation API

2. المتطلبات

  • متصفّح، مثل Chrome أو Firefox
  • مشروع على Google Cloud تم تفعيل الفوترة فيه أو إنشاء حساب في فترة تجريبية مجانية لمدة 90 يومًا على Google Cloud Platform
  • يجب تثبيت SAP GUI (Windows أو Java) في نظامك. إذا سبق أن تم تثبيت SAP GUI على جهازك، يمكنك الاتصال بخدمة SAP باستخدام عنوان IP الخارجي لجهاز الكمبيوتر المكتبي الافتراضي كعنوان 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 1909 على Google Cloud Platform وتثبيت حزمة تطوير البرامج (SDK) ABAP لـ Google Cloud) والدرس التطبيقي 2 (ضبط مصادقة حزمة تطوير البرامج (SDK) ABAP باستخدام الرموز المميّزة لنظام SAP المستضاف على جهاز افتراضي في Compute Engine) قبل المتابعة في هذا الدرس التطبيقي.
  • إذا أكملت ورشةَي التطوير codelab 1 وcodelab 2، كان من المفترض أن يتم توفير نظام ABAP Platform Trial 1909 على Google Cloud، بالإضافة إلى الإعداد المطلوب للمصادقة والاتصال.
  • إذا لم تكن قد أكملت "مختبر الرموز البرمجية" 1 و"مختبر الرموز البرمجية" 2، لن تتوفّر لديك كل البنية الأساسية وإمكانية الاتصال المطلوبة لتنفيذ الخطوات الواردة في "مختبر الرموز البرمجية" هذا. لذلك، عليك إكمال ورشةَي التطوير 1 و2 قبل المتابعة في ورشة التطوير هذه.

4. تفعيل الإصدار 3 من Cloud Translation API في مشروعك على Google Cloud

  1. نفِّذ الأمر أدناه في Cloud Shell، سيؤدي ذلك إلى تفعيل واجهة برمجة التطبيقات Cloud Translation API في مشروعك على Google Cloud:
gcloud services enable translate.googleapis.com

عند تنفيذ الأمر بنجاح، من المفترض أن تظهر لك رسالة كما هو موضّح أدناه:

b5f52859df2c2f56.png

من المفترض أن تكون واجهة برمجة التطبيقات Cloud Translation API مفعّلة الآن في مشروعك على Google Cloud.

5- إنشاء حساب خدمة يتضمّن دور "مستخدم ترجمة Google"

لإنشاء حساب خدمة بالدور المطلوب، اتّبِع الخطوات التالية:

  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، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على حزمة تطوير برامج ABAP لـ 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 لطلب البيانات من الإصدار 3 من Cloud Translation API وترجمة نص

  1. سجِّل الدخول إلى نظام SAP.
  2. انتقِل إلى رمز المعاملة SE38 وأنشئ برنامج تقارير باسم ZDEMO_TRANSLATE_TEXT..
  3. في النافذة المنبثقة التي تظهر، أدخِل التفاصيل كما هو موضّح أدناه، ثم انقر على حفظ.

6ba124f9187d1fc0.png

في النافذة المنبثقة التالية، اختَر "عنصر محلي" أو "توفير اسم حزمة" حسب اختيارك.

  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-Report للاتصال بإصدار 3 من Cloud Translation API ورصد اللغة

  1. سجِّل الدخول إلى نظام SAP.
  2. انتقِل إلى رمز المعاملة SE38 وأنشئ برنامج تقارير باسم ZDEMO_DETECT_LANGUAGE..
  3. في النافذة المنبثقة التي تظهر، أدخِل التفاصيل كما هو موضّح أدناه، ثم انقر على حفظ:

64c2eb0e0173ae51.png

في النافذة المنبثقة التالية، اختَر "عنصر محلي" أو أدخِل اسم حزمة حسب اختيارك.

  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-Report لاستدعاء طريقة GET_SUPPORTED_LANGUAGES

  1. تسجيل الدخول إلى نظام SAP
  2. انتقِل إلى رمز المعاملة SE38 وأنشئ برنامج تقارير باسم ZDEMO_GET_LANGUAGES..
  3. في النافذة المنبثقة التي تظهر، أدخِل التفاصيل كما هو موضّح أدناه وانقر على حفظ.

3819fc355cf2cd4d.png

في النافذة المنبثقة التالية، اختَر "عنصر محلي" أو "توفير اسم حزمة" حسب اختيارك.

  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. تهانينا

تهانينا! لقد أكملت بنجاح دورة codelab حول "استخدام Translation API مع حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud".

توفّر الإصدار 3 من Cloud Translation API، والمعروف أيضًا باسم Cloud Translation API Advanced، الكثير من الميزات، بما في ذلك:

  • الترجمة باستخدام نماذج مخصّصة
  • الترجمة باستخدام القواميس
  • دعم التحويل الصوتي
  • ترجمة المستندات

يمكنك الآن المتابعة باستخدام ورشات الترميز التالية لمواصلة رحلتك التعليمية لاستخدام حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud للوصول إلى خدمات Google Cloud المختلفة.

  • إرسال حدث إلى Pub/Sub
  • تلقّي حدث من Cloud Pub/Sub
  • تحميل ملف كبير إلى حزمة Cloud Storage باستخدام تقسيم الملف إلى أجزاء
  • استخدام واجهة برمجة التطبيقات DLP API لإخفاء المعلومات المتعلّقة بالتعريف الشخصي
  • استدعاء BigQuery ML من ABAP

11. تَنظيم

إذا كنت لا تريد مواصلة استخدام مجموعات الاختبار البرمجي الإضافية المرتبطة بحزمة تطوير البرامج (SDK) لـ ABAP في 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