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- قبل البدء
- في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه (على سبيل المثال،
abap-sdk-poc).
- تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع. يمكنك تخطّي هذه الخطوة إذا كنت تستخدم حساب الفترة التجريبية المجانية لمدة 90 يومًا.
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في Google Cloud. من Cloud Console، انقر على تفعيل Cloud Shell في أعلى يسار الصفحة:
- تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة (واجهة برمجة تطبيقات بيانات اعتماد حساب خدمة إدارة الهوية وإمكانية الوصول وواجهة برمجة تطبيقات التحقُّق من صحة العنوان).
- شغِّل الأوامر التالية لمصادقة حسابك وضبط المشروع التلقائي على
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
- تأكَّد من إمكانية وصولك إلى نظام SAP مع تثبيت حزمة ABAP SDK for Google Cloud.
- يمكنك الرجوع إلى درس تطبيقي حول الترميز " تثبيت الإصدار التجريبي من ABAP Platform لعام 2022 على Google Cloud Platform وتثبيت حزمة ABAP SDK" لإعداد نظام جديد.
4. إنشاء حساب خدمة وضبط دور "منشئ الرمز المميّز لحساب الخدمة"
لإنشاء حساب خدمة بالدور المطلوب، عليك اتّباع الخطوات التالية:
- شغِّل الأمر التالي لإنشاء حساب خدمة: (يُرجى تخطّي هذه الخطوة إذا كان حساب الخدمة متوفّرًا حاليًا)
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- نفِّذ الأمر التالي لإعداد دور منشئ الرمز المميّز لحساب الخدمة:
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
واتّبِع الخطوات التالية لإعداد مفتاح العميل:
- في SAP GUI، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
- انقر على إدخالات جديدة.
- أدخِل قيمًا للحقول التالية:
الحقل | الوصف |
اسم 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 |
اترك الحقول الأخرى فارغة
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.
- ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_ADDRESSREASONATION_V1.
- بالنسبة إلى حقل شهادة طبقة المقابس الآمنة (SSL)، تأكَّد من تحديد الخيار عميل طبقة المقابس الآمنة التلقائي (الخيار العادي) لكل من وجهات RFC.
7. ضبط عملية ربط الخدمة
لضبط جدول ربط الخدمة لواجهة برمجة تطبيقات إدارة الهوية وإمكانية الوصول وواجهة برمجة تطبيقات التحقق من صحة العنوان، يُرجى تنفيذ الخطوات التالية:
- في SAP GUI، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > ضبط عملية ربط الخدمة
- انقر على إدخالات جديدة لـ "بيانات اعتماد إدارة الهوية وإمكانية الوصول" وواجهة برمجة التطبيقات للتحقق من العنوان والمرتبطة بوجهات RFC.
8. التحقّق من صحة الإعدادات
للتحقّق من صحة ضبط المصادقة، اتّبِع الخطوات التالية:
- في SAP GUI، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > أدوات مساعدة > التحقق من صحة ضبط المصادقة
- أدخِل اسم مفتاح العميل باسم
ABAP_SDK_DEMO
. - انقر على تنفيذ لمعرفة ما إذا كان قد تم ضبط التدفق العام بنجاح.
- تشير علامة الاختيار الخضراء في عمود "النتيجة" إلى اكتمال جميع خطوات الإعداد بنجاح.
9. إنشاء برنامج تقرير لاستدعاء خدمة "التحقق من العنوان"
- سجِّل الدخول إلى نظام SAP.
- انتقِل إلى رمز المعاملة SE38 وأنشئ برنامج تقارير بالاسم ZDEMO_ADDRESS_EXISTATION.
- في النافذة المنبثقة التي تظهر، أدخِل التفاصيل كما هو موضّح أدناه، ثم انقر على حفظ.
- في النافذة المنبثقة التالية، اختَر الكائن المحلي أو قدِّم اسم الحزمة حسب الحاجة.
- في "محرِّر 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.
- احفظ التقرير وفعِّله.
- نفِّذ التقرير (F8).
عند التنفيذ بنجاح، من المفترض أن تظهر نتائج التقرير كما هو موضّح أدناه:
10. تهانينا
تهانينا! لقد أعددت ABAP SDK بنجاح لاستدعاء خدمة "التحقق من العنوان".
يمكنك الآن متابعة الدروس التطبيقية الأخرى حول ترميز حزمة ABAP لمواصلة مسيرة التعلّم المتعلّقة باستخدام حزمة تطوير البرامج (SDK) ABAP لخدمة Google Cloud من أجل الوصول إلى العديد من خدمات Google Cloud.
11. تَنظيم
إذا كنت لا تريد مواصلة الدروس التطبيقية الإضافية حول الترميز ذات الصلة بحزمة تطوير البرامج (SDK) ABAP في Google Cloud، يُرجى متابعة عملية التنظيف.
حذف المشروع
- حذف مشروع Google Cloud:
gcloud projects delete abap-sdk-poc
حذف موارد فردية
- احذف إدخالات إعداد مفتاح العميل بالانتقال إلى IMG > Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
- احذف إدخالات تهيئة تعيين الخدمة بالانتقال إلى IMG >. Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
- احذف وجهتي RFC ZGOOG_IAMCREDENTIALS وZGOOG_ADDRESSauditATION_V1.
- حذف حساب الخدمة:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com