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

1. Giriş

Bu codelab'de, Google Cloud için ABAP SDK'sını kullanarak Translation API V3 (Gelişmiş) yöntemlerini çağırmaya yönelik adımlar açıklanmaktadır. Bu codelab'de, Translation API V3'ü kullanarak bir metni nasıl çevireceğinizi, metin dilini nasıl tespit edeceğinizi ve desteklenen dilleri nasıl listeleyeceğinizi ele alacağız

Bu codelab'de aşağıdaki Google Cloud hizmetleri kullanılır:

  • Compute Engine
  • Ağ Hizmetleri
  • Cloud Shell
  • Cloud Translation API Sürüm 3

Ön koşullar

Neler oluşturacaksınız?

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

  • Google Cloud Translation API V3'ü kullanarak metinleri birden çok dile çevirin
  • Google Cloud Translation API V3'ü kullanarak kaynak metnin dilini algılama
  • Google Cloud Translation API V3'ün desteklenen dillerini listeleme

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). Makinenizde 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

6757b2fb50ddcc2d.png

  • 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 tercihinize göre projeyi ve alt bölgeyi 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 codelab 1'i (Google Cloud Platform'a ABAP Platform Denemesi 1909'u yükleme ve Google Cloud için ABAP SDK'sını yükleme) ve codelab 2'yi (Compute Engine sanal makinesinde SAP Barındırılan SAP'ye yönelik jetonları kullanarak ABAP SDK kimlik doğrulamasını yapılandırma) tamamlamanız gerekir.
  • Codelab 1 ve codelab 2'yi tamamladıysanız size Google Cloud'da ABAP Platform Deneme 1909 Sistemi, kimlik doğrulama ve bağlantı için gerekli kurulum sağlanmış olur.
  • codelab 1 ve codelab 2'yi tamamlamadıysanız bu codelab'de belirtilen adımları gerçekleştirmek için gereken tüm altyapı ve bağlantıya sahip olmayabilirsiniz. Bu nedenle, bu codelab'e geçmeden önce codelab 1 ve codelab 2'yi tamamlamanız gerekir.

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

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

Yürütme işlemi başarılı olursa aşağıdaki gibi bir mesaj gösterilir:

b5f52859df2c2f56.png

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

5. Cloud Translation Kullanıcı Rolü ile 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 komut, Google Cloud projesi için şablon adı olarak abap-sdk-poc'u kullanır. Bu kimliği proje kimliğinizle değiştirin.

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

6af77a519ed3e357.png

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

Google Cloud tarafındaki ön koşulları ayarladığınıza göre şimdi SAP tarafındaki yapılandırmaya 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'ye işlem kodunu SPRO girin.
  2. SAP Referansı IMG'yu tıklayın.
  3. Google Cloud için ABAP SDK'sı > Temel Ayarlar > İstemci Anahtarını Yapılandırı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. adıyla bir Rapor Programı oluşturun
  3. Açılan pop-up'ta aşağıda gösterilen bilgileri sağlayın ve Kaydet'i tıklayın.

6ba124f9187d1fc0.png

Bir sonraki pop-up'ta Yerel Nesne'yi veya Tercihinize göre bir paket adı sağlayın'ı seçin.

  1. ABAP Editor'da 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 kaydedin ve etkinleştirin.
  2. Raporu çalıştırın (F8).

Yürütme işlemi başarılı olursa rapor çıktısı aşağıdaki gibi gösterilir:

2dd3bf270d2b1477.png

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

  1. SAP sisteminize giriş yapın.
  2. SE38 işlem koduna gidin ve ZDEMO_DETECT_LANGUAGE. adıyla bir Rapor Programı oluşturun
  3. Açılan pop-up'ta aşağıda gösterilen bilgileri sağlayın ve Kaydet'i tıklayın:

64c2eb0e0173ae51.png

Bir sonraki pop-up'ta Yerel Nesne'yi veya Tercihinize göre bir paket adı sağlayın'ı seçin.

  1. ABAP Editor'da 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 kaydedin ve etkinleştirin.
  2. Raporu çalıştırın (F8).

Yürütme işlemi başarılı olursa rapor çıktısı aşağıdaki gibi gösterilir:

a36e48bded53e62d.png

9. GET_SUPPORTED_LANGUAGES yöntemini çağırmak için bir Z raporu oluşturun

  1. SAP sisteminize giriş yapın
  2. SE38 işlem koduna gidin ve ZDEMO_GET_LANGUAGES. adıyla bir Rapor Programı oluşturun
  3. Açılan pop-up'ta aşağıda gösterilen bilgileri sağlayın ve Kaydet'i tıklayın.

3819fc355cf2cd4d.png

Bir sonraki pop-up'ta Yerel Nesne'yi veya Tercihinize göre bir paket adı sağlayın'ı seçin.

  1. ABAP Editor'da 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 kaydedin ve etkinleştirin.
  2. Raporu çalıştırın (F8).

Yürütme işlemi başarılı olursa rapor çıktısı aşağıdaki gibi gösterilir:

78199926919e7801.png

10. Tebrikler

Tebrikler! "Using Translation API with ABAP SDK for Google Cloud" (Google Cloud için ABAP SDK'sı ile Translation API'yi kullanma) kursunu başarıyla tamamladınız. codelab'e göz atın.

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

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

Artık aşağıdaki codelab'leri inceleyerek çeşitli Google Cloud Hizmetlerine erişmek için Google Cloud için ABAP SDK'sını kullanma öğrenme yolculuğunuza devam edebilirsiniz.

  • Pub/Sub'a etkinlik gönderme
  • Cloud Pub/Sub'dan etkinlik alma
  • Parçalama kullanarak Cloud Storage paketine büyük bir nesne yükleme
  • Kimliği tanımlayabilecek bilgileri (PII) çıkartma için DLP API kullanma
  • ABAP'den BigQuery ML'yi çağırma

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

  1. Compute ö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