احراز هویت ABAP SDK را با استفاده از توکن‌هایی برای SAP میزبانی شده در Compute Engine VM پیکربندی کنید و API اعتبار سنجی آدرس را اجرا کنید

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. قبل از شروع

6757b2fb50ddcc2d.png

  • مطمئن شوید که همه APIهای لازم (API اعتبار حساب خدمات IAM و API اعتبارسنجی آدرس) فعال هستند.
  • دستورات زیر را برای احراز هویت برای حساب خود اجرا کنید و پروژه پیش فرض را روی 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
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. دستور زیر را اجرا کنید تا نقش خالق 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 شوید و برای پیکربندی کلید کلاینت مراحل زیر را دنبال کنید:

  1. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای Google Cloud > Basic Settings > Configure Client Key کلیک کنید.
  4. روی New Entries کلیک کنید.
  5. مقادیر فیلدهای زیر را وارد کنید:

میدان

توضیحات

نام کلید 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.

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

c72e71da6fd75b29.png

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 وارد کنید.

e670c6a91acba40f.png

  • در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_ADDRESSVALIDATION_V1 وارد کنید.

fcf92530ece612ea.png

  • برای قسمت گواهی SSL ، مطمئن شوید که گزینه DEFAULT SSL Client (Standard) برای هر دو مقصد RFC انتخاب شده است.

b6370d12bd332318.png

7. نقشه سرویس را پیکربندی کنید

برای پیکربندی جدول نگاشت سرویس برای IAM API و Address Validation API، مراحل زیر را انجام دهید:

  1. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای Google Cloud > Basic Settings > Configure Service Mapping کلیک کنید.
  4. برای IAM Credential and Address validation API مرتبط با مقاصد RFC روی New Entries کلیک کنید.

e227316b0f249823.png

8. اعتبارسنجی پیکربندی

برای تأیید اعتبار پیکربندی احراز هویت، مراحل زیر را انجام دهید:

  1. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای Google Cloud > Utilities > Validate Authentication Configuration کلیک کنید.
  4. نام کلید مشتری را به عنوان ABAP_SDK_DEMO وارد کنید.
  5. برای بررسی اینکه آیا جریان کلی با موفقیت پیکربندی شده است، روی Execute کلیک کنید.
  6. علامت سبز رنگ در ستون Result نشان می دهد که تمام مراحل پیکربندی با موفقیت انجام شده است.

d7285e64e22c25b6.png

9. یک برنامه گزارش برای فراخوانی سرویس Address Validation ایجاد کنید

  1. وارد سیستم SAP خود شوید.
  2. به کد تراکنش SE38 بروید و یک برنامه گزارش با نام ZDEMO_ADDRESS_VALIDATION ایجاد کنید.
  3. در پاپ آپی که باز می شود، جزئیات را مانند شکل زیر ارائه کنید و روی ذخیره کلیک کنید.

d8aac0f9e0bc5f9d.png

  1. در پاپ آپ بعدی، یا Local Object را انتخاب کنید یا یک نام بسته را در صورت لزوم وارد کنید.
  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 SDK برای Google Cloud برای دسترسی به خدمات مختلف Google Cloud ادامه دهید.

11. پاکسازی کنید

اگر نمی‌خواهید با کدهای اضافی مرتبط با ABAP SDK برای Google Cloud ادامه دهید، لطفاً به پاکسازی ادامه دهید.

پروژه را حذف کنید

  • پروژه Google Cloud را حذف کنید:
gcloud projects delete abap-sdk-poc

منابع فردی را حذف کنید

  1. با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی کلید مشتری را حذف کنید.
  2. با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی Service Mapping را حذف کنید.
  3. مقصدهای RFC ZGOOG_IAMCREDENTIALS و ZGOOG_ADDRESSVALIDATION_V1 را حذف کنید.
  4. حساب سرویس را حذف کنید:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com