1. مقدمه
در این لبه کد، مراحل تنظیم احراز هویت برای دسترسی به APIهای Google Cloud با استفاده از توکنها را در زمانی که سیستم SAP شما بر روی یک نمونه ماشین مجازی کامپیوتری میزبانی میشود، طی خواهید کرد.
لیست خدمات مورد استفاده عبارتند از:
- موتور محاسباتی
- خدمات شبکه
- پوسته ابری
چیزی که خواهی ساخت
شما موارد زیر را انجام خواهید داد:
- ABAP SDK نصب شده در سیستم SAP را برای اتصال به Google API پیکربندی کنید.
- یک برنامه گزارش نمونه برای فراخوانی Address Validation API ایجاد کنید.
2. الزامات
- یک مرورگر، مانند کروم یا فایرفاکس .
- یک پروژه Google Cloud با فعال کردن صورتحساب یا ایجاد یک حساب آزمایشی رایگان 90 روزه برای Google Cloud Platform.
- SAP GUI (ویندوز یا جاوا) در سیستم شما نصب شده است. اگر SAP GUI قبلاً روی سیستم شما نصب شده است، با استفاده از آدرس IP خارجی VM به عنوان IP سرور برنامه، به SAP متصل شوید. اگر در مک هستید، می توانید SAP GUI برای جاوا را نیز که در این لینک موجود است نصب کنید.
3. قبل از شروع
- در Google Cloud Console ، در صفحه انتخابگر پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید (به عنوان مثال،
abap-sdk-poc).
- مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورتحساب در پروژه آشنا شوید. اگر از حساب آزمایشی رایگان 90 روزه استفاده می کنید، از این مرحله رد شوید.
- شما از Cloud Shell ، یک محیط خط فرمان در حال اجرا در Google Cloud استفاده خواهید کرد. از Cloud Console، روی Activate Cloud Shell در گوشه سمت راست بالا کلیک کنید:
- مطمئن شوید که همه APIهای لازم (API اعتبار حساب خدمات IAM و API اعتبارسنجی آدرس) فعال هستند.
- دستورات زیر را برای احراز هویت برای حساب خود اجرا کنید و پروژه پیش فرض را روی
abap-sdk-poc
تنظیم کنید. Zoneus-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 برای Google Cloud دسترسی دارید.
- برای راهاندازی یک سیستم جدید میتوانید به Codelab « Install ABAP Platform Trial 2022 on Google Cloud Platform and Install ABAP SDK » مراجعه کنید.
4. یک حساب کاربری ایجاد کنید و نقش ایجاد کننده رمز حساب حساب سرویس را تنظیم کنید
برای ایجاد یک حساب کاربری با نقش مورد نیاز، مراحل زیر را انجام دهید:
- دستور زیر را برای ایجاد یک اکانت سرویس اجرا کنید: (اگر حساب سرویس از قبل وجود دارد، لطفاً از این مرحله رد شوید)
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- دستور زیر را اجرا کنید تا نقش خالق Token Account Service را تنظیم کنید:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/iam.serviceAccountTokenCreator
5. کلید مشتری را پیکربندی کنید
با نام کاربری DEVELOPER
و رمز عبور Htods70334
وارد سیستم SAP شوید و برای پیکربندی کلید کلاینت مراحل زیر را دنبال کنید:
- در SAP GUI، کد تراکنش SPRO را وارد کنید.
- روی SAP Reference IMG کلیک کنید.
- روی ABAP SDK برای Google Cloud > Basic Settings > Configure Client Key کلیک کنید.
- روی New Entries کلیک کنید.
- مقادیر فیلدهای زیر را وارد کنید:
میدان | توضیحات |
نام کلید Google Cloud | ABAP_SDK_DEMO |
نام حساب سرویس Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Google Cloud Scope | https://www.googleapis.com/auth/cloud-platform |
شناسه پروژه Google Cloud | abap-sdk-poc |
کلاس مجوز | /GOOG/CL_AUTH_GOOGLE. |
فیلدهای دیگر را خالی بگذارید
6. مقصد RFC را ایجاد کنید
مقصد RFC را برای اعتبار IAM و Address Validation API ایجاد کنید.
نام مقصد RFC | میزبان هدف (نقطه پایانی API) | یادداشت ها |
ZGOOG_IAMCREDENTIALS | میزبان : iamcredentials.googleapis.com مسیر : پیشوند: /v1/ پورت : 443 SSL : فعال | این مقصد RFC IAM API را هدف قرار می دهد. |
ZGOOG_ADDRESSVALIDATION_V1 | میزبان : addressvalidation.googleapis.com درگاه : 443 SSL : فعال | این مقصد RFC API اعتبار سنجی آدرس را هدف قرار می دهد |
- در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_IAMCREDENTIALS وارد کنید.
- در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_ADDRESSVALIDATION_V1 وارد کنید.
- برای قسمت گواهی SSL ، مطمئن شوید که گزینه DEFAULT SSL Client (Standard) برای هر دو مقصد RFC انتخاب شده است.
7. نقشه سرویس را پیکربندی کنید
برای پیکربندی جدول نگاشت سرویس برای IAM API و Address Validation API، مراحل زیر را انجام دهید:
- در SAP GUI، کد تراکنش SPRO را وارد کنید.
- روی SAP Reference IMG کلیک کنید.
- روی ABAP SDK برای Google Cloud > Basic Settings > Configure Service Mapping کلیک کنید.
- برای IAM Credential and Address validation API مرتبط با مقاصد RFC روی New Entries کلیک کنید.
8. اعتبارسنجی پیکربندی
برای تأیید اعتبار پیکربندی احراز هویت، مراحل زیر را انجام دهید:
- در SAP GUI، کد تراکنش SPRO را وارد کنید.
- روی SAP Reference IMG کلیک کنید.
- روی ABAP SDK برای Google Cloud > Utilities > Validate Authentication Configuration کلیک کنید.
- نام کلید مشتری را به عنوان
ABAP_SDK_DEMO
وارد کنید. - برای بررسی اینکه آیا جریان کلی با موفقیت پیکربندی شده است، روی Execute کلیک کنید.
- علامت سبز رنگ در ستون Result نشان می دهد که تمام مراحل پیکربندی با موفقیت انجام شده است.
9. یک برنامه گزارش برای فراخوانی سرویس Address Validation ایجاد کنید
- وارد سیستم SAP خود شوید.
- به کد تراکنش SE38 بروید و یک برنامه گزارش با نام ZDEMO_ADDRESS_VALIDATION ایجاد کنید.
- در پاپ آپی که باز می شود، جزئیات را مانند شکل زیر ارائه کنید و روی ذخیره کلیک کنید.
- در پاپ آپ بعدی، یا Local Object را انتخاب کنید یا یک نام بسته را در صورت لزوم وارد کنید.
- در ویرایشگر 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 SDK برای Google Cloud برای دسترسی به خدمات مختلف Google Cloud ادامه دهید.
11. پاکسازی کنید
اگر نمیخواهید با کدهای اضافی مرتبط با ABAP SDK برای Google Cloud ادامه دهید، لطفاً به پاکسازی ادامه دهید.
پروژه را حذف کنید
- پروژه Google Cloud را حذف کنید:
gcloud projects delete abap-sdk-poc
منابع فردی را حذف کنید
- با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی کلید مشتری را حذف کنید.
- با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی Service Mapping را حذف کنید.
- مقصدهای RFC ZGOOG_IAMCREDENTIALS و ZGOOG_ADDRESSVALIDATION_V1 را حذف کنید.
- حساب سرویس را حذف کنید:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com