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
- Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud (Misalnya,
abap-sdk-poc).
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project. Lewati langkah ini jika Anda menggunakan Akun Uji Coba Gratis 90 Hari.
- Anda akan menggunakan Cloud Shell, yakni lingkungan command line yang berjalan di Google Cloud. Dari Cloud Console, klik Activate Cloud Shell di pojok kanan atas:
- 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
. Zonaus-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
- Pastikan Anda memiliki akses ke sistem SAP dengan ABAP SDK for Google Cloud terinstal.
- Anda dapat melihat codelab " Instal Uji Coba ABAP Platform 2022 di Google Cloud Platform dan Instal ABAP SDK" untuk menyiapkan sebuah sistem baru.
4. Membuat akun layanan dan menetapkan peran Service Account Token Creator
Untuk membuat akun layanan dengan peran yang diperlukan, lakukan langkah-langkah berikut:
- 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"
- 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:
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik SAP Reference IMG.
- Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
- Klik New Entries.
- 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
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.
- Di tab Setelan Teknis, masukkan detail berikut untuk tujuan ZGOOG_ADDRESSVALIDATION_V1.
- Untuk kolom SSL Certificate, pastikan opsi DEFAULT SSL Client (Standard) dipilih untuk kedua tujuan RFC.
7. Mengonfigurasi pemetaan layanan
Guna mengonfigurasi tabel pemetaan layanan untuk IAM API dan Address Validation API, lakukan langkah-langkah berikut:
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik SAP Reference IMG.
- Klik ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping.
- Klik New Entries untuk IAM Credential and Address validation API yang ditautkan ke tujuan RFC.
8. Validasi konfigurasi
Untuk memvalidasi konfigurasi autentikasi, lakukan langkah-langkah berikut:
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik SAP Reference IMG.
- Klik ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.
- Masukkan nama kunci klien sebagai
ABAP_SDK_DEMO
. - Klik Execute untuk memeriksa apakah keseluruhan alur berhasil dikonfigurasi.
- Centang hijau pada kolom Hasil menunjukkan bahwa semua langkah konfigurasi berhasil diselesaikan.
9. Buat program laporan untuk memanggil layanan Validasi Alamat
- Login ke Sistem SAP Anda.
- Buka kode transaksi SE38, lalu buat program laporan dengan nama ZDEMO_ADDRESS_VALIDATION.
- Di jendela pop-up yang terbuka, berikan detail seperti yang ditunjukkan di bawah, lalu klik Simpan.
- Pada pop-up berikutnya, pilih Local Object atau berikan nama paket yang sesuai.
- 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.
- Simpan dan aktifkan laporan.
- Menjalankan laporan (F8).
Setelah eksekusi berhasil, Anda akan melihat output laporan seperti yang ditunjukkan di bawah ini:
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
- Hapus entri konfigurasi kunci klien dengan membuka IMG > Google Cloud > Setelan Dasar > Konfigurasi Kunci Klien.
- Hapus entri konfigurasi Pemetaan Layanan dengan membuka IMG > Google Cloud > Setelan Dasar > Konfigurasi Kunci Klien.
- Hapus tujuan RFC ZGOOG_IAMCREDENTIALS dan ZGOOG_ADDRESSVALIDATION_V1.
- Hapus akun layanan:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com