1. Введение
В этой лаборатории кода представлены инструкции по вызову методов API перевода версии 3 (расширенный) с использованием ABAP SDK для Google Cloud. В этой лаборатории мы увидим, как переводить текст, определять язык текста и перечислять поддерживаемые языки с помощью API перевода V3.
В этой лаборатории кода используются следующие сервисы Google Cloud:
- Вычислительный двигатель
- Сетевые службы
- Облачная оболочка
- API облачного перевода 3.
Предварительные условия
- Убедитесь, что у вас есть доступ к системе SAP с установленным ABAP SDK для Google Cloud.
- Вы можете обратиться к кодовой лаборатории « Установить пробную версию платформы ABAP на Google Cloud Platform и установить ABAP SDK », чтобы настроить новую систему.
Что ты построишь
Вы создадите следующие программы в своей системе SAP, используя ABAP SDK для Google Cloud:
- Переведите текст на несколько языков с помощью Google Cloud Translation API V3.
- Определите язык исходного текста с помощью Google Cloud Translation API V3.
- Список поддерживаемых языков Google Cloud Translation API V3
2. Требования
- Браузер, например Chrome или Firefox .
- Проект Google Cloud с включенной оплатой или создайте 90-дневную бесплатную пробную учетную запись для Google Cloud Platform.
- SAP GUI (Windows или Java), установленный в вашей системе. Если графический интерфейс SAP уже установлен на вашем компьютере, подключитесь к SAP, используя внешний IP-адрес виртуальной машины в качестве IP-адреса сервера приложений. Если вы используете Mac, вы также можете установить графический интерфейс SAP для Java, доступный по этой ссылке.
3. Прежде чем начать
- Убедитесь, что у вас есть доступ к системе SAP с установленным ABAP SDK для Google Cloud.
- Вы можете обратиться к кодовой лаборатории « Установить пробную версию платформы ABAP на Google Cloud Platform и установить ABAP SDK », чтобы настроить новую систему.
- В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud (например:
abap-sdk-poc).
- Убедитесь, что для вашего облачного проекта включена оплата. Узнайте, как проверить, включена ли оплата в проекте . Пропустите этот шаг, если вы используете 90-дневную бесплатную пробную учетную запись .
- Вы будете использовать Cloud Shell , среду командной строки, работающую в Google Cloud. В Cloud Console нажмите «Активировать Cloud Shell» в правом верхнем углу:
- Выполните следующие команды для аутентификации своей учетной записи и установите проект по умолчанию
abap-sdk-poc
. В качестве примера используется зонаus-west4-b
. При необходимости измените проект и зону с помощью следующих команд в соответствии с вашими предпочтениями.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
- У вас должен быть доступ к системе SAP с установленным ABAP SDK для Google Cloud.
- Прежде чем приступить к этой лаборатории кода, необходимо выполнить лабораторную работу 1 ( Установить пробную версию платформы ABAP 1909 на Google Cloud Platform и установить ABAP SDK для Google Cloud) и лабораторную работу 2 ( Настроить аутентификацию ABAP SDK с использованием токенов для SAP, размещенного на виртуальной машине Compute Engine ).
- Если вы завершили Codelab 1 и Codelab 2, это предоставит вам пробную систему ABAP Platform 1909 в Google Cloud, а также необходимые настройки для аутентификации и подключения.
- Если вы не завершили Лабораторию кода 1 и Лабораторию кода 2, у вас не будет всей необходимой инфраструктуры и возможностей подключения для выполнения шагов, описанных в этой лаборатории кода. Таким образом, вы должны завершить кодовую таблицу 1 и кодовую таблицу 2, прежде чем приступать к этой кодовой таблице.
4. Включите Cloud Translation API V3 в своем проекте Google Cloud.
- Выполните приведенную ниже команду в Cloud Shell, это включит Cloud Translation API в вашем проекте Google Cloud:
gcloud services enable translate.googleapis.com
При успешном выполнении вы должны увидеть сообщение, как показано ниже:
Теперь в вашем проекте Google Cloud должен быть включен Cloud Translation API.
5. Создайте учетную запись службы с ролью пользователя Cloud Translation.
Чтобы создать сервисную учетную запись с необходимой ролью, выполните следующие действия:
- Выполните следующую команду в терминале Cloud Shell:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
- Теперь добавьте необходимые роли в сервисную учетную запись, созданную на предыдущем шаге.
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'
Приведенная выше команда использует abap-sdk-poc в качестве имени шаблона для проекта Google Cloud. Замените его идентификатором вашего проекта.
- Чтобы убедиться, что роль добавлена, перейдите на страницу IAM . Созданная вами учетная запись службы должна быть указана вместе с назначенной ей ролью, как показано ниже:
6. Создайте конфигурацию ключа клиента.
Теперь, когда вы настроили предварительные условия на стороне Google Cloud, мы можем продолжить настройку на стороне SAP.
Для конфигурации, связанной с аутентификацией и подключением, ABAP SDK для Google Cloud использует таблицу /GOOG/CLIENT_KEY
Чтобы сохранить конфигурацию в таблице /GOOG/CLIENT_KEY
, выполните следующие действия:
- В графическом интерфейсе SAP введите код транзакции
SPRO
. - Щелкните Справочное IMG SAP .
- Нажмите ABAP SDK для Google Cloud > Основные настройки > Настроить ключ клиента.
- Поддерживайте следующие значения для полей:
Поле | Ценить |
Имя облачного ключа Google | TEST_TRANSLATION |
Имя учетной записи облачной службы Google | |
Облачная область Google | |
Идентификатор проекта | abap-sdk-poc |
Класс авторизации | |
Все остальные поля оставьте пустыми
7. Создайте Z-отчет для вызова Cloud Translation API V3 и перевода текста.
- Войдите в свою систему SAP.
- Перейдите к коду транзакции
SE38
и создайте программу отчетов с именемZDEMO_TRANSLATE_TEXT.
- В открывшемся всплывающем окне укажите сведения, как показано ниже, и нажмите «Сохранить» .
В следующем всплывающем окне выберите «Локальный объект» или укажите имя пакета по вашему выбору.
- В редакторе ABAP добавьте следующий код:
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.
- Сохраните и активируйте отчет.
- Выполнить отчет (F8).
В случае успешного выполнения вы должны увидеть выходные данные отчета, как показано ниже:
8. Создайте Z-отчет для вызова Cloud Translation API V3 и определения языка.
- Войдите в свою систему SAP.
- Перейдите к коду транзакции
SE38
и создайте программу отчетов с именемZDEMO_DETECT_LANGUAGE.
- В открывшемся всплывающем окне укажите детали, как показано ниже, и нажмите «Сохранить» :
В следующем всплывающем окне выберите «Локальный объект» или укажите имя пакета по вашему выбору.
- В редакторе ABAP добавьте следующий код:
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.
- Сохраните и активируйте отчет.
- Выполнить отчет (F8).
В случае успешного выполнения вы должны увидеть выходные данные отчета, как показано ниже:
9. Создайте Z-отчет для вызова метода GET_SUPPORTED_LANGUAGES.
- Войдите в свою систему SAP
- Перейдите к коду транзакции
SE38
и создайте программу отчетов с именемZDEMO_GET_LANGUAGES.
- В открывшемся всплывающем окне укажите детали, как показано ниже, и нажмите «Сохранить» .
В следующем всплывающем окне выберите «Локальный объект» или укажите имя пакета по вашему выбору.
- В редакторе ABAP добавьте следующий код:
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.
- Сохраните и активируйте отчет.
- Выполнить отчет (F8).
В случае успешного выполнения вы должны увидеть выходные данные отчета, как показано ниже:
10. Поздравления
Поздравляем! Вы успешно завершили лабораторную работу «Использование API перевода с ABAP SDK для Google Cloud».
Cloud Translation API V3, также известный как Cloud Translation API Advanced, имеет множество функций, в том числе:
- Перевести с помощью пользовательских моделей
- Перевести с помощью глоссариев
- Поддержка транслитерации
- Перевод документов
Теперь вы можете перейти к следующим лабораторным работам по коду, чтобы продолжить обучение использованию ABAP SDK для Google Cloud для доступа к различным облачным службам Google.
- Отправить событие в Pub/Sub
- Получить событие из Cloud Pub/Sub
- Загрузите большой объект в корзину Cloud Storage, используя фрагментирование.
- Используйте DLP API для редактирования личных данных
- Вызов BigQuery ML из ABAP
11. Очистка
Если вы не хотите продолжать работу с дополнительными лабораториями кода, связанными с ABAP SDK для Google Cloud, продолжите очистку.
Удалить проект
- Удалите проект Google Cloud:
gcloud projects delete abap-sdk-poc
Удаление отдельных ресурсов
- Удалите вычислительный экземпляр:
gcloud compute instances delete abap-trial-docker
- Удалите правила брандмауэра:
gcloud compute firewall-rules delete sapmachine
- Удалить сервисный аккаунт:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com