1. Giriş
Bu codelab'de, SAP sisteminiz bir Compute Engine sanal makine örneğinde barındırıldığında jeton kullanarak Google Cloud API'lerine erişmek için kimlik doğrulamayı ayarlama adımlarını göreceksiniz.
Kullanılan hizmetlerin listesi şunlardır:
- Compute Engine
- Ağ Hizmetleri
- Cloud Shell
Neler oluşturacaksınız?
Aşağıdakileri gerçekleştireceksiniz:
- SAP sisteminde yüklü ABAP SDK'sını, Google API'lerine bağlanacak şekilde yapılandırın.
- Address Validation API'yi çağırmak için örnek bir rapor programı oluşturun.
2. Şartlar
- Chrome veya Firefox gibi bir tarayıcı.
- Faturalandırmanın etkinleştirilmiş olduğu bir Google Cloud projesi veya Google Cloud Platform için 90 günlük ücretsiz deneme hesabı oluşturun.
- Sisteminizde yüklü SAP GUI (Windows veya Java). Sisteminizde zaten SAP GUI yüklüyse Uygulama Sunucusu IP adresi olarak sanal makine harici IP adresini kullanarak SAP'ye bağlanın. Mac kullanıyorsanız bu bağlantıdan Java için SAP GUI'yi de yükleyebilirsiniz.
3. Başlamadan önce
- Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun (örneğin,
abap-sdk-poc).
- Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin. 90 günlük ücretsiz deneme hesabını kullanıyorsanız bu adımı atlayın.
- Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Cloud Console'da, sağ üst köşedeki Cloud Shell'i etkinleştir'i tıklayın:
- Gerekli tüm API'lerin (IAM Service Account Credentials API ve Address Validation API) etkinleştirildiğinden emin olun.
- Hesabınızın kimliğini doğrulamak için aşağıdaki komutları çalıştırın ve varsayılan projeyi
abap-sdk-poc
olarak ayarlayın.us-west4-b
alt bölgesi örnek olarak kullanılmıştır. Gerekirse lütfen aşağıdaki komutlarda projeyi ve alt bölgeyi tercihinize göre değiştirin.
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
- Google Cloud için ABAP SDK'sının yüklü olduğu bir SAP sistemine erişiminiz olduğundan emin olun.
- Codelab'e bakabilirsiniz. " Google Cloud Platform'a ABAP Platform Denemesi 2022'yi ve ABAP SDK'sını Yükleyin" yeni bir sistem kurun.
4. Bir hizmet hesabı oluşturma ve Hizmet Hesabı Jetonu Oluşturucu rolünü ayarlama
Gerekli role sahip bir hizmet hesabı oluşturmak için aşağıdaki adımları uygulayın:
- Bir hizmet hesabı oluşturmak için aşağıdaki komutu çalıştırın: (Hizmet hesabı zaten mevcutsa bu adımı atlayın.)
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Hizmet Hesabı Jetonu Oluşturucu rolünü ayarlamak için aşağıdaki komutu çalıştırın:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/iam.serviceAccountTokenCreator
5. İstemci anahtarını yapılandırın
SAP sistemine DEVELOPER
kullanıcı adı ve Htods70334
şifresiyle giriş yapın ve istemci anahtarını yapılandırmak için aşağıdaki adımları uygulayın:
- SAP GUI'ye SPRO işlem kodunu girin.
- SAP Referansı IMG'yu tıklayın.
- Google Cloud için ABAP SDK'sı > Temel Ayarlar > İstemci Anahtarını Yapılandırın.
- New Entries (Yeni Girişler) seçeneğini tıklayın.
- Aşağıdaki alanlar için değerler girin:
Alan | Açıklama |
Google Cloud Anahtarı Adı | ABAP_SDK_DEMO |
Google Cloud Hizmet Hesabı Adı | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Google Cloud Kapsamı | https://www.googleapis.com/auth/cloud-platform |
Google Cloud Proje Tanımlayıcısı | abap-sdk-poc |
Yetkilendirme Sınıfı | /GOOG/CL_AUTH_GOOGLE |
Diğer alanları boş bırakın
6. RFC Hedefi Oluşturma
IAM kimlik bilgisi ve Address Validation API için RFC hedefi oluşturun.
RFC hedef adı | Hedef ana makine (API uç noktası) | Notlar |
ZGOOG_IAMCREDENTIALS | Host: iamcredentials.googleapis.comYol: Önek: /v1/Port: 443SSL: Etkin | Bu RFC hedefi IAM API'yi hedefler. |
ZGOOG_ADDRESSVALIDATION_V1 | Host: addressvalidation.googleapis.comPort: 443SSL: Etkin | Bu RFC hedefi Adres Doğrulama API'sini hedefliyor |
- Teknik Ayarlar sekmesinde ZGOOG_IAMCREDENTIALS hedefi için aşağıdaki ayrıntıları girin.
- Technical Settings (Teknik Ayarlar) sekmesinde ZGOOG_ADDRESSMETRICATION_V1 hedefi için aşağıdaki ayrıntıları girin.
- SSL Sertifikası alanında her iki RFC hedefi için de VARSAYILAN SSL İstemcisi (Standart) seçeneğinin belirlendiğinden emin olun.
7. Hizmet eşlemesini yapılandırma
IAM API ve Address Validation API için hizmet eşleme tablosunu yapılandırmak üzere aşağıdaki adımları uygulayın:
- SAP GUI'ye SPRO işlem kodunu girin.
- SAP Referansı IMG'yu tıklayın.
- Google Cloud için ABAP SDK'sı > Temel Ayarlar > Hizmet Eşlemeyi Yapılandırma
- RFC hedeflerine bağlı IAM Kimlik Bilgisi ve Adres Doğrulama API'si için Yeni Girişler'i tıklayın.
8. Yapılandırmayı doğrula
Kimlik doğrulama yapılandırmasını doğrulamak için aşağıdaki adımları uygulayın:
- SAP GUI'ye SPRO işlem kodunu girin.
- SAP Referansı IMG'yu tıklayın.
- Google Cloud için ABAP SDK'sı > Yardımcı programlar > Kimlik Doğrulama Yapılandırmasını Doğrula.
- İstemci anahtarı adını
ABAP_SDK_DEMO
olarak girin. - Genel akışın başarıyla yapılandırılıp yapılandırılmadığını kontrol etmek için Yürüt'ü tıklayın.
- Sonuç sütunundaki yeşil onay, tüm yapılandırma adımlarının başarıyla tamamlandığını gösterir.
9. Adres Doğrulama hizmetini çağırmak için bir rapor programı oluşturma
- SAP sisteminize giriş yapın.
- SE38 işlem koduna gidin ve ZDEMO_ADDRESS_METRICATION adıyla bir rapor programı oluşturun.
- Açılan pop-up'ta aşağıda gösterilen bilgileri sağlayın ve Kaydet'i tıklayın.
- Bir sonraki pop-up'ta Yerel Nesne'yi seçin veya uygun şekilde bir paket adı girin.
- ABAP Editor'da aşağıdaki kodu ekleyin:
" 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.
- Raporu kaydedin ve etkinleştirin.
- Raporu çalıştırın (F8).
Yürütme işlemi başarılı olursa rapor çıktısı aşağıdaki gibi gösterilir:
10. Tebrikler
Tebrikler! ABAP SDK'sını Adres Doğrulama hizmetini çağıracak şekilde başarıyla yapılandırdınız.
Şimdi diğer ABAP SDK codelab'lerini inceleyerek çeşitli Google Cloud Hizmetlerine erişmek üzere Google Cloud için ABAP SDK'sını kullanma öğrenme yolculuğunuza devam edebilirsiniz.
11. Temizleme
Google Cloud için ABAP SDK'sı ile ilgili ek codelab'lere geçmek istemiyorsanız lütfen temizleme işlemine devam edin.
Projeyi silme
- Google Cloud projesini silin:
gcloud projects delete abap-sdk-poc
Kaynakları tek tek silme
- IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandırın.
- IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandırın.
- ZGOOG_IAMCREDENTIALS ve ZGOOG_ADDRESSVALIDATION_V1 RFC hedeflerini silin.
- Hizmet hesabını silin:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com