Mengonfigurasi autentikasi ABAP SDK menggunakan token untuk SAP yang dihosting di VM Compute Engine dan menjalankan API validasi Alamat

1. Pengantar

Dalam codelab ini, Anda akan mempelajari langkah-langkah penyiapan autentikasi untuk mengakses Google Cloud API menggunakan token saat sistem SAP Anda dihosting di instance VM Compute Engine.

Daftar layanan yang digunakan adalah:

  • Compute Engine
  • Layanan Jaringan
  • Cloud Shell

Yang akan Anda build

Anda akan melakukan tindakan berikut:

  • Mengonfigurasi ABAP SDK yang diinstal di sistem SAP agar terhubung ke Google API.
  • Buat contoh program laporan untuk memanggil Address Validation API.

2. Persyaratan

  • Browser, seperti Chrome atau Firefox.
  • Project Google Cloud dengan penagihan diaktifkan atau Buat akun Uji Coba Gratis 90 Hari untuk Google Cloud Platform.
  • GUI SAP (Windows atau Java) yang diinstal di sistem Anda. Jika SAP GUI sudah diinstal di sistem Anda, hubungkan ke SAP menggunakan alamat IP eksternal VM sebagai IP Server Aplikasi. Jika menggunakan Mac, Anda juga dapat menginstal SAP GUI untuk Java yang tersedia di link ini.

3. Sebelum memulai

6757b2fb50ddcc2d.png

  • Pastikan semua API yang diperlukan (IAM Service Account Credentials API dan Address Validation API) diaktifkan.
  • Jalankan perintah berikut untuk mengautentikasi akun Anda dan tetapkan project default ke abap-sdk-poc. Zona us-west4-b digunakan sebagai contoh. Jika perlu, ubah project dan zona dalam perintah di bawah ini berdasarkan preferensi Anda.
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. Membuat akun layanan dan menetapkan peran Service Account Token Creator

Untuk membuat akun layanan dengan peran yang diperlukan, lakukan langkah-langkah berikut:

  1. Jalankan perintah berikut untuk membuat akun layanan: (Lewati langkah ini jika akun layanan sudah ada)
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. Jalankan perintah berikut untuk menetapkan peran Service Account Token Creator:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
    --member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator

5. Mengonfigurasi kunci klien

Login ke sistem SAP dengan nama pengguna DEVELOPER dan sandi Htods70334, lalu ikuti langkah-langkah berikut untuk mengonfigurasi kunci klien:

  1. Di SAP GUI, masukkan kode transaksi SPRO.
  2. Klik SAP Reference IMG.
  3. Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
  4. Klik New Entries.
  5. Masukkan nilai untuk kolom berikut:

Kolom

Deskripsi

Nama Kunci Google Cloud

ABAP_SDK_DEMO

Nama Akun Layanan Google Cloud

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

Google Cloud Scope

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

ID Project Google Cloud

abap-sdk-poc

Class Otorisasi

/GOOG/CL_AUTH_GOOGLE.

Membiarkan kolom lainnya kosong

c72e71da6fd75b29.png

6. Membuat Tujuan RFC

Buat tujuan RFC untuk kredensial IAM dan Address Validation API.

Nama tujuan RFC

Host target (endpoint API)

Catatan

ZGOOG_IAMCREDENTIALS

Host: iamcredentials.googleapis.comJalur: Awalan: /v1/Port: 443SSL: Aktif

Tujuan RFC ini menargetkan IAM API.

ZGOOG_ADDRESSVALIDATION_V1

Host: addressvalidation.googleapis.comPort: 443SSL: Aktif

Tujuan RFC ini menargetkan API validasi Alamat

  • Di bawah tab Setelan Teknis, masukkan detail berikut untuk tujuan ZGOOG_IAMCREDENTIALS.

e670c6a91acba40f.png

  • Di tab Setelan Teknis, masukkan detail berikut untuk tujuan ZGOOG_ADDRESSVALIDATION_V1.

fcf92530ece612ea.png

  • Untuk kolom SSL Certificate, pastikan opsi DEFAULT SSL Client (Standard) dipilih untuk kedua tujuan RFC.

b6370d12bd332318.png

7. Mengonfigurasi pemetaan layanan

Guna mengonfigurasi tabel pemetaan layanan untuk IAM API dan Address Validation API, lakukan langkah-langkah berikut:

  1. Di SAP GUI, masukkan kode transaksi SPRO.
  2. Klik SAP Reference IMG.
  3. Klik ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping.
  4. Klik New Entries untuk IAM Credential and Address validation API yang ditautkan ke tujuan RFC.

e227316b0f249823.png

8. Validasi konfigurasi

Untuk memvalidasi konfigurasi autentikasi, lakukan langkah-langkah berikut:

  1. Di SAP GUI, masukkan kode transaksi SPRO.
  2. Klik SAP Reference IMG.
  3. Klik ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.
  4. Masukkan nama kunci klien sebagai ABAP_SDK_DEMO.
  5. Klik Execute untuk memeriksa apakah keseluruhan alur berhasil dikonfigurasi.
  6. Centang hijau pada kolom Hasil menunjukkan bahwa semua langkah konfigurasi berhasil diselesaikan.

d7285e64e22c25b6.png

9. Buat program laporan untuk memanggil layanan Validasi Alamat

  1. Login ke Sistem SAP Anda.
  2. Buka kode transaksi SE38, lalu buat program laporan dengan nama ZDEMO_ADDRESS_VALIDATION.
  3. Di jendela pop-up yang terbuka, berikan detail seperti yang ditunjukkan di bawah, lalu klik Simpan.

d8aac0f9e0bc5f9d.png

  1. Pada pop-up berikutnya, pilih Local Object atau berikan nama paket yang sesuai.
  2. Di ABAP Editor, tambahkan kode berikut:
" 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. Simpan dan aktifkan laporan.
  2. Menjalankan laporan (F8).

Setelah eksekusi berhasil, Anda akan melihat output laporan seperti yang ditunjukkan di bawah ini:

8b0aed97320f4ef.pngS

10. Selamat

Selamat! Anda telah berhasil Mengonfigurasi ABAP SDK untuk memanggil layanan Validasi Alamat.

Sekarang Anda dapat melanjutkan dengan codelab ABAP SDK lainnya untuk melanjutkan perjalanan belajar Anda dalam menggunakan ABAP SDK untuk Google Cloud guna mengakses berbagai Layanan Google Cloud.

11. Pembersihan

Jika Anda tidak ingin melanjutkan codelab tambahan terkait ABAP SDK untuk Google Cloud, lanjutkan dengan pembersihan.

Menghapus project

  • Hapus project Google Cloud:
gcloud projects delete abap-sdk-poc

Menghapus resource satu per satu

  1. Hapus entri konfigurasi kunci klien dengan membuka IMG > Google Cloud > Setelan Dasar > Konfigurasi Kunci Klien.
  2. Hapus entri konfigurasi Pemetaan Layanan dengan membuka IMG > Google Cloud > Setelan Dasar > Konfigurasi Kunci Klien.
  3. Hapus tujuan RFC ZGOOG_IAMCREDENTIALS dan ZGOOG_ADDRESSVALIDATION_V1.
  4. Hapus akun layanan:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com