1. Introdução
Este codelab fornece etapas para chamar os métodos da API Translation V3 (avançada) usando o SDK ABAP for Google Cloud. Neste codelab, vamos mostrar como traduzir um texto, detectar o idioma do texto e listar os idiomas com suporte usando a API Translation V3.
Os seguintes serviços do Google Cloud são usados neste codelab:
- Compute Engine
- Serviços de rede
- Cloud Shell
- API Cloud Translation v3
Pré-requisitos
- Verifique se você tem acesso a um sistema SAP com o ABAP SDK for Google Cloud instalado.
- Consulte o codelab Instalar o teste da plataforma ABAP no Google Cloud Platform e instalar o SDK ABAP para configurar um novo sistema.
O que você vai criar
Você vai criar os seguintes programas no seu sistema SAP usando o SDK ABAP for Google Cloud:
- Traduzir texto para vários idiomas usando a API Cloud Translation v3 do Google
- Detectar o idioma do texto de origem usando a API Google Cloud Translation v3
- Listar os idiomas compatíveis com a API Google Cloud Translation v3
2. Requisitos
- Um navegador, como o Chrome ou o Firefox
- Um projeto do Google Cloud com o faturamento ativado ou Crie uma conta de teste sem custo financeiro de 90 dias para o Google Cloud Platform.
- GUI do SAP (Windows ou Java) instalado no sistema. Se o SAP GUI já estiver instalado na sua máquina, conecte-se ao SAP usando o endereço IP externo da VM como o IP do servidor do aplicativo. Se você estiver usando um Mac, também poderá instalar o SAP GUI para Java disponível neste link.
3. Antes de começar
- Verifique se você tem acesso a um sistema SAP com o ABAP SDK for Google Cloud instalado.
- Consulte o codelab Instalar o teste da plataforma ABAP no Google Cloud Platform e instalar o SDK ABAP para configurar um novo sistema.
- No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud. Por exemplo:
abap-sdk-poc).
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto. Pule esta etapa se você estiver usando a conta de teste sem custo financeiro de 90 dias.
- Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud. No console do Cloud, clique em Ativar o Cloud Shell no canto superior direito:
- Execute os comandos a seguir para fazer a autenticação da sua conta e definir o projeto padrão como
abap-sdk-poc
. A zonaus-west4-b
é usada como exemplo. Se necessário, mude o projeto e a zona nos comandos a seguir de acordo com sua preferência.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
- É necessário ter acesso a um sistema SAP com o SDK do ABAP para Google Cloud instalado.
- É necessário concluir o codelab 1 (Instalar o teste da plataforma ABAP 1909 no Google Cloud Platform e instalar o SDK ABAP para o Google Cloud) e o codelab 2 (Configurar a autenticação do SDK ABAP usando tokens para SAP hospedado na VM do Compute Engine) antes de prosseguir com este codelab.
- Se você concluiu o codelab 1 e o codelab 2, você teria um sistema de teste da plataforma ABAP 1909 no Google Cloud, além da configuração necessária para autenticação e conectividade.
- Se você não tiver concluído os codelabs 1 e 2, não terá toda a infraestrutura e conectividade necessárias para realizar as etapas fornecidas neste codelab. Portanto, você precisa concluir o codelab 1 e o codelab 2 antes de prosseguir com este codelab.
4. Ativar a API Cloud Translation V3 no seu projeto do Google Cloud
- Execute o comando abaixo no Cloud Shell para ativar a API Cloud Translation no seu projeto do Google Cloud:
gcloud services enable translate.googleapis.com
Se a execução for bem-sucedida, uma mensagem será exibida, conforme mostrado abaixo:
A API Cloud Translation deve estar ativada no seu projeto do Google Cloud.
5. Criar uma conta de serviço com a função de usuário da Cloud Translation
Para criar uma conta de serviço com a função necessária, siga estas etapas:
- Execute o seguinte comando no terminal do Cloud Shell:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
- Agora, adicione os papéis necessários à conta de serviço criada na etapa acima.
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'
O comando acima usa abap-sdk-poc como nome do modelo para o projeto do Google Cloud. Substitua-o pelo ID do seu projeto.
- Para verificar se o papel foi adicionado, acesse a página IAM. A conta de serviço que você criou deve ser listada com a função atribuída a ela, conforme mostrado abaixo:
6. Criar configuração de chave de cliente
Agora que você configurou os pré-requisitos no Google Cloud, podemos prosseguir com a configuração no SAP.
Para a configuração relacionada à autenticação e conectividade, o SDK ABAP para Google Cloud usa a tabela /GOOG/CLIENT_KEY
.
Para manter a configuração na tabela /GOOG/CLIENT_KEY
, siga estas etapas:
- Na GUI do SAP, insira o código da transação
SPRO
. - Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar chave do cliente.
- Mantenha os seguintes valores nos campos:
Campo | Valor |
Nome da chave do Google Cloud | TEST_TRANSLATION |
Nome da conta de serviço do Google Cloud |
|
Escopo do Google Cloud |
|
ID do projeto | abap-sdk-poc |
Classe de autorização |
|
Deixe todos os outros campos em branco
7. Criar um Z-Report para chamar a API Cloud Translation V3 e traduzir um texto
- Faça login no sistema SAP.
- Acesse o código da transação
SE38
e crie um programa de relatório com o nomeZDEMO_TRANSLATE_TEXT.
. - No pop-up que abrir, forneça os detalhes conforme mostrado abaixo e clique em Salvar.
No próximo pop-up, selecione "Objeto local" ou "Forneça um nome de pacote", conforme sua escolha.
- No Editor ABAP, adicione o seguinte código:
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.
- Salve e ative o relatório.
- Execute o relatório (F8).
Se a execução for bem-sucedida, você vai ver a saída do relatório, conforme mostrado abaixo:
8. Criar um Z-Report para chamar a API Cloud Translation V3 e detectar o idioma
- Faça login no sistema SAP.
- Acesse o código da transação
SE38
e crie um programa de relatório com o nomeZDEMO_DETECT_LANGUAGE.
. - No pop-up que abrir, forneça os detalhes conforme mostrado abaixo e clique em Salvar:
No próximo pop-up, selecione "Objeto local" ou "Forneça um nome de pacote", conforme sua escolha.
- No Editor ABAP, adicione o seguinte código:
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.
- Salve e ative o relatório.
- Execute o relatório (F8).
Se a execução for bem-sucedida, você vai ver a saída do relatório, conforme mostrado abaixo:
9. Criar um relatório Z para chamar o método GET_SUPPORTED_LANGUAGES
- Faça login no seu sistema SAP
- Acesse o código da transação
SE38
e crie um programa de relatório com o nomeZDEMO_GET_LANGUAGES.
. - No pop-up que abrir, forneça os detalhes conforme mostrado abaixo e clique em Salvar.
No próximo pop-up, selecione "Objeto local" ou "Forneça um nome de pacote", conforme sua escolha.
- No Editor ABAP, adicione o seguinte código:
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.
- Salve e ative o relatório.
- Execute o relatório (F8).
Se a execução for bem-sucedida, você vai ver a saída do relatório, conforme mostrado abaixo:
10. Parabéns
Parabéns! Você concluiu o codelab "Como usar a API Translation com o SDK ABAP para Google Cloud".
A API Cloud Translation v3, também conhecida como API Cloud Translation Advanced, tem muitos recursos, incluindo:
- Traduzir com modelos personalizados
- Traduzir usando glossários
- Suporte para transliteração
- Document Translation
Agora você pode continuar com os seguintes codelabs para continuar sua jornada de aprendizado sobre como usar o SDK ABAP para Google Cloud e acessar vários serviços do Google Cloud.
- Enviar um evento para o Pub/Sub
- Receber um evento do Cloud Pub/Sub
- Fazer upload de um objeto grande para um bucket do Cloud Storage usando a divisão em partes
- Usar a API DLP para remover PIIs
- Chamar o BigQuery ML do ABAP
11. Limpar
Se você não quiser continuar com os outros codelabs relacionados ao SDK ABAP para Google Cloud, prossiga com a limpeza.
Excluir o projeto
- Exclua o projeto do Google Cloud:
gcloud projects delete abap-sdk-poc
Excluir recursos individuais
- Exclua a instância de computação:
gcloud compute instances delete abap-trial-docker
- Exclua as regras de firewall:
gcloud compute firewall-rules delete sapmachine
- Exclua a conta de serviço:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com