Google Cloud için ABAP SDK'sı ile Translation API'yi kullanma

1. Giriş

Bu kod laboratuvarında, Google Cloud için ABAP SDK'sını kullanarak Translation API V3 (İleri) yöntemlerini çağırma adımları sağlanmaktadır. Bu codelab'de, Translation API V3'ü kullanarak bir metnin nasıl çevrileceğini, metnin dilinin nasıl tespit edileceğini ve desteklenen dillerin nasıl listeleneceğini göreceğiz.

Bu kod laboratuvarında aşağıdaki Google Cloud hizmetleri kullanılmaktadır:

  • Compute Engine
  • Ağ Hizmetleri
  • Cloud Shell
  • Cloud Translation API v3

Ön koşullar

Ne oluşturacaksınız?

Google Cloud için ABAP SDK'sını kullanarak SAP sisteminizde aşağıdaki programları oluşturursunuz:

  • Google'ın Cloud Translation API V3'ünü kullanarak metinleri birden fazla dile çevirme
  • Google Cloud Translation API v3'ü kullanarak kaynak metnin dilini algılama
  • Google Cloud Translation API V3'ün desteklediği dilleri listeleme

2. Şartlar

  • Chrome veya Firefox gibi bir tarayıcı.
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi veya Google Cloud Platform için 90 Günlük Ücretsiz Deneme hesabı oluşturun.
  • Sisteminizde SAP GUI (Windows veya Java) yüklü olmalıdır. SAP GUI makinenizde zaten yüklüyse uygulama sunucusu IP'si olarak sanal makinenin harici IP adresini kullanarak SAP'e bağlanın. Mac kullanıyorsanız bu bağlantıda bulunan Java için SAP GUI'yi de yükleyebilirsiniz.

3. Başlamadan önce

6757b2fb50ddcc2d.png

  • Hesabınızın kimliğini doğrulamak ve varsayılan projeyi abap-sdk-poc olarak ayarlamak için aşağıdaki komutları çalıştırın. Örnek olarak us-west4-b bölgesi kullanılmıştır. Gerekirse lütfen aşağıdaki komutlardaki projeyi ve 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
  • Google Cloud için ABAP SDK'sının yüklü olduğu bir SAP sistemine erişiminiz olmalıdır.
  • Bu codelab'e devam etmeden önce 1. codelab'i (Google Cloud Platform'a ABAP Platform Trial 1909'u ve Google Cloud için ABAP SDK'sını yükleme) ve 2. codelab'i (Compute Engine sanal makinesinde barındırılan SAP için jetonları kullanarak ABAP SDK kimlik doğrulamasını yapılandırma) tamamlamanız gerekir.
  • 1. ve 2. codelab'i tamamladıysanız kimlik doğrulama ve bağlantı için gerekli kurulumla birlikte Google Cloud'da bir ABAP Platform Trial 1909 sistemi sağlanmış olur.
  • 1. ve 2. codelab'i tamamlamadıysanız bu codelab'de verilen adımları gerçekleştirmek için gerekli tüm altyapıya ve bağlantıya sahip olmazsınız. Bu nedenle, bu codelab'e devam etmeden önce 1. ve 2. codelab'i tamamlamanız gerekir.

4. Google Cloud projenizde Cloud Translation API V3'ü etkinleştirme

  1. Cloud Shell'de aşağıdaki komutu çalıştırın. Bu komut, Google Cloud projenizde Cloud Translation API'yi etkinleştirir:
gcloud services enable translate.googleapis.com

Başarılı bir yürütme işleminde aşağıdaki gibi bir mesaj görürsünüz:

b5f52859df2c2f56.png

Artık Google Cloud projenizde Cloud Translation API'yi etkinleştirmiş olmanız gerekir.

5. Cloud Translation Kullanıcı Rolüne Sahip Bir Hizmet Hesabı Oluşturma

Gerekli role sahip bir hizmet hesabı oluşturmak için aşağıdaki adımları uygulayın:

  1. Cloud Shell terminalinde aşağıdaki komutu çalıştırın:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
  1. Şimdi yukarıdaki adımda oluşturulan hizmet hesabına gerekli rolleri ekleyin.
gcloud projects add-iam-policy-binding abap-sdk-poc\
--member='serviceAccount:abap-sdk-translation-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/cloudtranslate.user'

Yukarıdaki komutta, Google Cloud projesi için şablon adı olarak abap-sdk-poc kullanılmaktadır. Bu değeri proje kimliğinizle değiştirin.

  1. Rolün eklendiğini doğrulamak için IAM sayfasına gidin. Oluşturduğunuz hizmet hesabı, aşağıda gösterildiği gibi kendisine atanan rolle birlikte listelenir:

6af77a519ed3e357.png

6. İstemci Anahtar Yapılandırması Oluşturma

Google Cloud tarafındaki ön koşulları ayarladığınıza göre SAP tarafında yapılandırma işlemine geçebiliriz.

Google Cloud için ABAP SDK'sı, kimlik doğrulama ve bağlantıyla ilgili yapılandırma için /GOOG/CLIENT_KEY tablosunu kullanır.

/GOOG/CLIENT_KEY tablosundaki yapılandırmayı korumak için aşağıdaki adımları uygulayın:

  1. SAP GUI'de SPRO işlem kodunu girin.
  2. SAP Reference IMG'yi (SAP Referans IMG'si) tıklayın.
  3. Google Cloud için ABAP SDK'sı > Temel Ayarlar > İstemci Anahtarını Yapılandır'ı tıklayın.
  4. Alanlarda aşağıdaki değerleri koruyun:

Alan

Değer

Google Cloud Anahtar Adı

TEST_TRANSLATION

Google Cloud Hizmet Hesabı Adı

abap-sdk-translation-tester@abap-sdk-poc.iam.gserviceaccount.com

Google Cloud Kapsamı

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

Proje kimliği

abap-sdk-poc

Yetkilendirme Sınıfı

/GOOG/CL_AUTH_GOOGLE

Diğer tüm alanları boş bırakın

7. Cloud Translation API v3'ü çağırmak ve bir metni çevirmek için Z raporu oluşturma

  1. SAP sisteminize giriş yapın.
  2. SE38 işlem koduna gidin ve ZDEMO_TRANSLATE_TEXT. adlı bir rapor programı oluşturun
  3. Açılan pop-up'ta aşağıda gösterildiği gibi ayrıntıları girin ve Kaydet'i tıklayın.

6ba124f9187d1fc0.png

Sonraki pop-up'ta Yerel Nesne'yi seçin veya tercihinize göre bir paket adı girin.

  1. ABAP Düzenleyici'ye aşağıdaki kodu ekleyin:
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
DATA ls_input TYPE /goog/cl_translation_v3=>ty_050.

TRY.
    lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').

    ls_input = VALUE #(  mime_type = 'text/plain'
                         source_language_code = 'en-US'
                         target_language_code = 'es-ES'
                         contents =  VALUE #( ( |Sun is our nearest star| ) ) ).

    lo_translate->translate_text_projects(
      EXPORTING
        iv_p_projects_id = CONV #( lo_translate->gv_project_id )
        is_input         = ls_input
      IMPORTING
        es_output        =  DATA(ls_output)
        ev_ret_code      =  DATA(lv_ret_code)
        ev_err_text      =  DATA(lv_err_text)
        es_err_resp      =  DATA(lv_err_resp)
    ).
    IF lo_translate->is_success( lv_ret_code ) = abap_true.
      cl_demo_output=>new(
      )->begin_section( 'API Call Successful:'
      )->write_text( 'Translated Text:'
      )->write_data( ls_output-translations[ 1 ]-translated_text
      )->display( ).
    ELSE.
      cl_demo_output=>new(
      )->begin_section( 'API Call Unsuccessful:'
      )->write_text( 'Error Message:'
      )->write_text( lv_err_text
      )->display( ).
    ENDIF.
  CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
    DATA(lv_error) = lo_sdk_excp->get_text( ).
    cl_demo_output=>new(
     )->begin_section( 'Exception Occured:'
     )->write_text( lv_error
     )->display( ).
ENDTRY.
  1. Raporu kaydedip etkinleştirin.
  2. Raporu çalıştırın (F8).

Başarılı bir yürütme işleminde, rapor çıkışını aşağıdaki gibi görürsünüz:

2dd3bf270d2b1477.png

8. Cloud Translation API v3'ü çağırmak ve dili algılamak için Z raporu oluşturma

  1. SAP sisteminize giriş yapın.
  2. SE38 işlem koduna gidin ve ZDEMO_DETECT_LANGUAGE. adlı bir rapor programı oluşturun
  3. Açılan pop-up'ta aşağıda gösterildiği gibi ayrıntıları girin ve Kaydet'i tıklayın:

64c2eb0e0173ae51.png

Sonraki pop-up'ta Yerel Nesne'yi seçin veya tercihinize göre bir paket adı girin.

  1. ABAP Düzenleyici'ye aşağıdaki kodu ekleyin:
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
DATA ls_input TYPE /goog/cl_translation_v3=>ty_009.

TRY.
    lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').

    ls_input = VALUE #(  mime_type = |text/plain|
                         content =  |La luce viaggia più veloce del suono| ).

    lo_translate->detect_language_projects(
      EXPORTING
        iv_p_projects_id = CONV #( lo_translate->gv_project_id )
        is_input         = ls_input
      IMPORTING
        es_output        =  DATA(ls_output)
        ev_ret_code      =  DATA(lv_ret_code)
        ev_err_text      =  DATA(lv_err_text)
        es_err_resp      =  DATA(lv_err_resp)
    ).
    IF lo_translate->is_success( lv_ret_code ) = abap_true.
      cl_demo_output=>new(
      )->begin_section( 'API Call Successful:'
      )->write_text( 'Detected Language:'
      )->write_data( ls_output-languages[ 1 ]-language_code
      )->display( ).
    ELSE.
      cl_demo_output=>new(
      )->begin_section( 'API Call Unsuccessful:'
      )->write_text( 'Error Message:'
      )->write_text( lv_err_text
      )->display( ).
    ENDIF.
  CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
    DATA(lv_error) = lo_sdk_excp->get_text( ).
    cl_demo_output=>new(
     )->begin_section( 'Exception Occured:'
     )->write_text( lv_error
     )->display( ).
ENDTRY.
  1. Raporu kaydedip etkinleştirin.
  2. Raporu çalıştırın (F8).

Başarılı bir yürütme işleminde, rapor çıkışını aşağıdaki gibi görürsünüz:

a36e48bded53e62d.png

9. GET_SUPPORTED_LANGUAGES Yöntemini Çağırmak İçin Z Raporu Oluşturma

  1. SAP sisteminize giriş yapın
  2. SE38 işlem koduna gidin ve ZDEMO_GET_LANGUAGES. adlı bir rapor programı oluşturun
  3. Açılan pop-up'ta aşağıdaki gibi ayrıntıları sağlayın ve Kaydet'i tıklayın.

3819fc355cf2cd4d.png

Sonraki pop-up'ta Yerel Nesne'yi seçin veya tercihinize göre bir paket adı girin.

  1. ABAP Düzenleyici'ye aşağıdaki kodu ekleyin:
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.

TRY.
    lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').

    lo_translate->get_supported_languages_pro(
      EXPORTING
        iv_q_displaylanguagecode = 'en-US'
        iv_p_projects_id         =  CONV #( lo_translate->gv_project_id )
      IMPORTING
        es_output        =  DATA(ls_output)
        ev_ret_code      =  DATA(lv_ret_code)
        ev_err_text      =  DATA(lv_err_text)
        es_err_resp      =  DATA(lv_err_resp)
    ).

    IF lo_translate->is_success( lv_ret_code ) = abap_true.
      cl_demo_output=>new(
      )->begin_section( 'API Call Successful:'
      )->write_text( 'Supported Languages:'
      )->write_data( ls_output-languages
      )->display( ).
    ELSE.
      cl_demo_output=>new(
      )->begin_section( 'API Call Unsuccessful:'
      )->write_text( 'Error Message:'
      )->write_text( lv_err_text
      )->display( ).
    ENDIF.
  CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
    DATA(lv_error) = lo_sdk_excp->get_text( ).
    cl_demo_output=>new(
     )->begin_section( 'Exception Occured:'
     )->write_text( lv_error
     )->display( ).
ENDTRY.
  1. Raporu kaydedip etkinleştirin.
  2. Raporu çalıştırın (F8).

Başarılı bir yürütme işleminde, rapor çıkışını aşağıdaki gibi görürsünüz:

78199926919e7801.png

10. Tebrikler

Tebrikler! "Google Cloud için ABAP SDK'sı ile Translation API'yi kullanma" kod laboratuvarını başarıyla tamamladınız.

Cloud Translation API Advanced olarak da bilinen Cloud Translation API V3'ün birçok özelliği vardır:

  • Özel modellerle çeviri
  • Sözlükleri kullanarak çeviri yapma
  • Harf Çevirisi Desteği
  • Doküman Çevirisi

Artık çeşitli Google Cloud hizmetlerine erişmek için Google Cloud için ABAP SDK'sını kullanmayla ilgili öğrenme yolculuğunuza devam etmek üzere aşağıdaki codelab'lere geçebilirsiniz.

  • Pub/Sub'a etkinlik gönderme
  • Cloud Pub/Sub'dan etkinlik alma
  • Parçalara ayırma özelliğini kullanarak büyük bir nesneyi Cloud Storage paketine yükleme
  • Kimliği tanımlayabilecek bilgileri çıkarmak için DLP API'yi kullanma
  • ABAP'den BigQuery ML'yi çağırma

11. Temizleme

Google Cloud için ABAP SDK'sıyla ilgili ek kod laboratuvarlarına devam etmek 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

  1. Hesaplama örneğini silin:
gcloud compute instances delete abap-trial-docker
  1. Güvenlik duvarı kurallarını silin:
gcloud compute firewall-rules delete sapmachine
  1. Hizmet hesabını silin:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com