يمكنك إعداد مصادقة ABAP باستخدام الرموز المميّزة لـ SAP المستضافة على جهاز Compute Engine الافتراضي وتنفيذ واجهة برمجة التطبيقات للتحقّق من العنوان.

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، ستطّلع على خطوات إعداد المصادقة للوصول إلى واجهات Google Cloud APIs باستخدام الرموز المميزة عند استضافة نظام SAP على مثيل جهاز افتراضي في Compute Engine.

في ما يلي قائمة بالخدمات المستخدمة:

  • Compute Engine
  • خدمات الشبكة
  • Cloud Shell

ما الذي ستقوم ببنائه

ستقوم بما يلي:

  • ضبط حزمة تطوير البرامج (SDK) ABAP المثبّتة على نظام SAP للاتصال بواجهات Google APIs
  • أنشئ برنامج تقرير كمثال لاستدعاء واجهة برمجة تطبيقات التحقق من صحة العنوان.

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
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b

4. إنشاء حساب خدمة وضبط دور "منشئ الرمز المميّز لحساب الخدمة"

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

  1. شغِّل الأمر التالي لإنشاء حساب خدمة: (يُرجى تخطّي هذه الخطوة إذا كان حساب الخدمة متوفّرًا حاليًا)
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. نفِّذ الأمر التالي لإعداد دور منشئ الرمز المميّز لحساب الخدمة:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
    --member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator

5- إعداد مفتاح العميل

سجِّل الدخول إلى نظام SAP باستخدام اسم المستخدم DEVELOPER وكلمة المرور Htods70334 واتّبِع الخطوات التالية لإعداد مفتاح العميل:

  1. في SAP GUI، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
  4. انقر على إدخالات جديدة.
  5. أدخِل قيمًا للحقول التالية:

الحقل

الوصف

اسم Google Cloud Key

ABAP_SDK_DEMO

اسم حساب خدمة Google Cloud

abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com

نطاق Google Cloud

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

معرّف مشروع Google Cloud

abap-sdk-poc

فئة التفويض

/GOOG/CL_AUTH_GOOGLE

اترك الحقول الأخرى فارغة

c72e71da6fd75b29.png

6- إنشاء وجهة RFC

أنشِئ وجهة RFC لبيانات اعتماد "إدارة الهوية وإمكانية الوصول" وواجهة برمجة تطبيقات التحقّق من صحة العنوان.

اسم وجهة RFC

المضيف المستهدف (نقطة نهاية واجهة برمجة التطبيقات)

ملاحظات

ZGOOG_IAMCREDENTIALS

المضيف: iamcredits.googleapis.comالمسار: البادئة: /v1/المنفذ: 443طبقة المقابس الآمنة: نشط

تستهدف وجهة RFC هذه واجهة برمجة التطبيقات IAM API.

ZGOOG_ADDRESSVALIDATION_V1

المضيف: addressصالation.googleapis.comالمنفذ: 443طبقة المقابس الآمنة: نشط

تستهدف وجهة RFC هذه واجهة برمجة التطبيقات للتحقق من صحة العنوان (العنوان)

  • ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_IAMCREDENTIALS.

e670c6a91acba40f.png

  • ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_ADDRESSREASONATION_V1.

fcf92530ece612ea.png

  • بالنسبة إلى حقل شهادة طبقة المقابس الآمنة (SSL)، تأكَّد من تحديد الخيار عميل طبقة المقابس الآمنة التلقائي (الخيار العادي) لكل من وجهات RFC.

b6370d12bd332318.png

7. ضبط عملية ربط الخدمة

لضبط جدول ربط الخدمة لواجهة برمجة تطبيقات إدارة الهوية وإمكانية الوصول وواجهة برمجة تطبيقات التحقق من صحة العنوان، يُرجى تنفيذ الخطوات التالية:

  1. في SAP GUI، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > ضبط عملية ربط الخدمة
  4. انقر على إدخالات جديدة لـ "بيانات اعتماد إدارة الهوية وإمكانية الوصول" وواجهة برمجة التطبيقات للتحقق من العنوان والمرتبطة بوجهات RFC.

e227316b0f249823.png

8. التحقّق من صحة الإعدادات

للتحقّق من صحة ضبط المصادقة، اتّبِع الخطوات التالية:

  1. في SAP GUI، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على ABAP SDK for Google Cloud > أدوات مساعدة > التحقق من صحة ضبط المصادقة
  4. أدخِل اسم مفتاح العميل باسم ABAP_SDK_DEMO.
  5. انقر على تنفيذ لمعرفة ما إذا كان قد تم ضبط التدفق العام بنجاح.
  6. تشير علامة الاختيار الخضراء في عمود "النتيجة" إلى اكتمال جميع خطوات الإعداد بنجاح.

d7285e64e22c25b6.png

9. إنشاء برنامج تقرير لاستدعاء خدمة "التحقق من العنوان"

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

d8aac0f9e0bc5f9d.png

  1. في النافذة المنبثقة التالية، اختَر الكائن المحلي أو قدِّم اسم الحزمة حسب الحاجة.
  2. في "محرِّر ABAP"، أضِف الرمز التالي:
" data declarations
DATA lv_ret_code          TYPE i.
DATA lv_err_text          TYPE string.
DATA ls_input             TYPE /goog/cl_addrvaldn_v1=>ty_012.
DATA ls_output            TYPE /goog/cl_addrvaldn_v1=>ty_013.
DATA ls_err_resp          TYPE /goog/err_resp.
DATA lo_exception         TYPE REF TO /goog/cx_sdk.
DATA lo_address_validator TYPE REF TO /goog/cl_addrvaldn_v1.

" instantiate api client stub
TRY.
    lo_address_validator = NEW #( iv_key_name = 'ABAP_SDK_DEV' ).

    " Pass the address to be validated and corrected.
    " Mountain misspelled as  Moutain
    " Amphitheatre misspelled as Amphithetre
    ls_input-address-region_code = 'US'.
    ls_input-address-locality    = 'Moutain View'.
    APPEND '1600, Amphithetre, Parkway' TO ls_input-address-address_lines.

    " call the api method to validate address
    lo_address_validator->validate_address( EXPORTING is_input    = ls_input
                                            IMPORTING es_output   = ls_output
                                                      ev_ret_code = lv_ret_code
                                                      ev_err_text = lv_err_text
                                                      es_err_resp = ls_err_resp ).
    IF     lo_address_validator->is_success( lv_ret_code ) = abap_true
       AND ls_output-result-verdict-address_complete       = abap_true.
      cl_demo_output=>new(
        )->begin_section( `Original Address`
        )->write_data( ls_input-address-region_code
        )->write_data( ls_input-address-locality
        )->write_data( ls_input-address-address_lines
        )->next_section( `Validated & Corrected Address`
        )->begin_section( `Elementary Object`
        )->write_data( ls_output-result-address-formatted_address
        )->display( ).
    ENDIF.

  CATCH /goog/cx_sdk INTO lo_exception.
    " write code here to handle exceptions
    cl_demo_output=>display( lo_exception->get_text( ) ).
ENDTRY.
  1. احفظ التقرير وفعِّله.
  2. نفِّذ التقرير (F8).

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

8b0aed97320f4ef.png

10. تهانينا

تهانينا! لقد أعددت ABAP SDK بنجاح لاستدعاء خدمة "التحقق من العنوان".

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

11. تَنظيم

إذا كنت لا تريد مواصلة الدروس التطبيقية الإضافية حول الترميز ذات الصلة بحزمة تطوير البرامج (SDK) ABAP في Google Cloud، يُرجى متابعة عملية التنظيف.

حذف المشروع

  • حذف مشروع Google Cloud:
gcloud projects delete abap-sdk-poc

حذف موارد فردية

  1. احذف إدخالات إعداد مفتاح العميل بالانتقال إلى IMG > Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
  2. احذف إدخالات تهيئة تعيين الخدمة بالانتقال إلى IMG >. Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
  3. احذف وجهتي RFC ZGOOG_IAMCREDENTIALS وZGOOG_ADDRESSauditATION_V1.
  4. حذف حساب الخدمة:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com