After completing this lesson, you will be able to desenvolva uma extensão para o SAP S/4HANA com o SAP BTP, ambiente ABAP
Cenário de ampliação
Para entender melhor o procedimento de uma ampliação lado a lado, esta lição implementa um exemplo correspondente. O ponto não é entender os conceitos e modelos de programação utilizados em detalhes. Em vez disso, o quadro geral de uma extensão lado a lado será fornecido.
Primeiro, uma aplicação de base é criada no ambiente ABAP do SAP Business Technology Platform (BTP), que deve ser usado para gerenciar reclamações de fatura de cliente. Como base para isso, uma tabela correspondente é criada no banco de dados SAP HANA do ambiente ABAP do SAP BTP com campos adequados. Os campos ID da fatura, ID do cliente e Nome do cliente são utilizados para armazenar os dados da fatura para os quais é criada uma reclamação.
No entanto, as faturas de cliente existentes são administradas no sistema SAP S/4HANA on-premise. Para isso, um business object personalizado correspondente foi criado em um exercício anterior. Para poder selecionar os dados da fatura para uma reclamação, devem ser oferecidas entradas possíveis na IU SAP Fiori da aplicação na nuvem, por meio da qual os dados da fatura existentes do sistema SAP S/4HANA on-premise são exibidos.
Os dados da fatura no sistema On-Premise são acessados por meio do serviço OData que foi gerado para o business object personalizado. Isso significa que o serviço OData no sistema On-Premise é chamado a partir da aplicação em nuvem baseada em ABAP com a ajuda do serviço Conectividade SAP BTP e do Cloud Connector.
Como conectar ferramentas de desenvolvimento ABAP ao ambiente ABAP SAP BTP e criar um pacote ABAP
Para as etapas e os dados desta demonstração, consulte o exercício Conectar ferramentas de desenvolvimento ABAP ao ambiente ABAP SAP BTP e Criar um pacote ABAP.
Conectar as ferramentas de desenvolvimento ABAP ao ambiente ABAP do SAP BTP e criar um pacote ABAP
Neste exercício, você criará um projeto na nuvem ABAP nas ferramentas de desenvolvimento ABAP (ADT) para conectar o ambiente de desenvolvimento à instância de serviço ABAP no ambiente ABAP do SAP BTP. Para conectar à instância de serviço ABAP utilizada neste curso, você utilizará uma chave de serviço que já foi configurada para a instância de serviço ABAP. Em seguida, você cria um pacote ABAP na instância de serviço ABAP. Todos os objetos do repositório a serem criados nos exercícios a seguir serão atribuídos a este pacote.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Etapas
Conecte o ADT à instância de serviço ABAP utilizando a chave de serviço fornecida pelo instrutor.
Se o Eclipse ainda não tiver sido iniciado, abra-o via Eclipse→Eclipse IDE no menu Iniciar do Windows.
Certifique-se de que a perspectiva ABAP é exibida. Para abrir a perspectiva ABAP, selecione o ícone Abrir perspectiva na barra de ferramentas do Eclipse. Na caixa de diálogo exibida, selecione a perspectiva ABAP e clique em Abrir.
No menu, selecione Arquivo→Novo→ABAP Cloud Project.
Resultado
A primeira página do assistente de criação Novo projeto na nuvem ABAP é aberta.
Selecione o botão de rádio Utilizar uma chave de serviço e selecione Seguinte.
Resultado
A página do assistente Conexão do sistema utilizando uma chave de serviço é aberta.
Copie a chave de serviço fornecida pelo instrutor e cole-a na caixa de texto Chave de serviço em formato JSON.
Selecione Avançar.
Resultado
A página do assistente Efetuar login no sistema SAP Cloud é aberta.
Selecione o botão Abrir página de logon no browser para efetuar o logon no sistema ABAP. Como resultado, o browser padrão é aberto e exibe uma mensagem informando que você efetuou o logon com êxito.
Nota
A autenticação é executada no browser.
Nota
Se você não tiver efetuado logon automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com exibido na página do navegador exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione o botão Efetuar logon para efetuar o logon no sistema ABAP.
Encerre o navegador. A página do assistente Conexão da instância de serviço é aberta. Para adaptar o idioma de logon, insira a abreviatura relevante.
Selecione Avançar.
Resultado
A página do assistente Nome do projeto e pacotes favoritos é aberta.
Para criar o projeto ABAP Cloud, selecione Concluir.
Resultado
O projeto ABAP Cloud é criado e adicionado ao Explorador de projetos.
Crie um novo pacote ABAP do tipo Desenvolvimento chamado ZS4D425_##_CLD no pacote gerado ZLOCAL.
No ADT, expanda a pasta Pacotes favoritos em sua pasta ABAP Cloud Project no Explorador de projetos.
Clique com o botão direito do mouse em ZLOCAL e selecione Novo→pacote ABAP.
No diálogo Novo pacote ABAP exibido, insira ZS4D425_##_CLD como Nome e Extensão lado a lado como Descrição. Certifique-se de que ZLOCAL esteja inserido como Superpacote e que Desenvolvimento esteja selecionado como Tipo de pacote. Clique em Adicionar aos pacotes favoritos e selecione Seguinte.
Na tela Selection of Transport Request, selecione a opção Create a new request e insira Student ## como Request Description.
Pressione Concluir.
Resultado
Seu novo pacote ABAP ZS4D425_##_CLD é exibido no Explorador de projetos em Pacotes favoritos.
Importar pacote ZS4D425_SOL_CLD do Github para o ambiente ABAP do SAP BTP
Em preparação para os próximos exercícios, importe o pacote ZS4D425_SOL_CLD do Github para o ambiente ABAP do SAP BTP.
O pacote ZS4D425_SOL_CLD contém soluções de exemplo e modelos de cópia.
Nota
Uma vez que o Git ABAP não suporta todos os tipos de objeto, o pacote ZS4D425_SOL_CLD não contém uma implementação executável do cenário do exercício. Os seguintes objetos do repositório, que são criados de modo correspondente pelos estudantes em seus pacotes, não estão incluídos no pacote ZS4D425_SOL_CLD:
ZSC_D425_INVOICES_98 (modelo de consumo de serviços)
Z_COMPLAINT_98 (aplicação BSP)
Z_COMPLAINT_98_UI5R (item do descritor do app Fiori Launchpad)
ZD425_COMPLAINT_IAM_98_EXT (app IAM)
ZD425_COMPLAINT_BC_98 (catálogo empresarial IAM)
Etapas
Crie um novo pacote ABAP do tipo Desenvolvimento no componente de software ZLOCAL com o nome ZS4D425_SOL_CLD.
No ADT, clique com o botão direito do mouse em seu ABAP Cloud Project e selecione Novo→pacote ABAP no menu de contexto.
Na caixa de diálogo Pacote ABAP, insira ZS4D425_SOL_CLD como nome e Extensão lado a lado como descrição. Marque a caixa de seleção Adicionar aos pacotes favoritos e certifique-se de que Desenvolvimento esteja selecionado como o Tipo de pacote. Em seguida, pressione Seguinte.
Insira ZLOCAL como Componente de software e pressione Seguinte.
Na caixa de diálogo Seleção de ordem de transporte, selecione a ordem de transporte que você criou na demonstração anterior e pressione Concluir.
Se os objetos importados não forem exibidos no pacote ZS4D425_SOL_CLD no Explorador de projetos, abra o menu de contexto para o pacote no Explorador de projetos e selecione o item Atualizar.
Abra a visão Repositórios abapGit. Selecione Janela→Mostrar visão geral→Outros…→Repositórios abapGit. A visão será aberta na parte inferior da tela
Na visão abapGit Repositories, selecione o ícone + na barra de ferramentas (Vincular novo repositório abapGit...).
Na etapa Ramificação e seleção de pacote, insira ZS4D425_SOL_CLD como pacote. Certifique-se de que a ramificação refs/heads/main esteja selecionada e marque o campo de seleção Pull after link. Em seguida, pressione Seguinte.
Na etapa Seleção da ordem de transporte, selecione Concluir.
Aguarde até que o valor Pulled com êxito seja exibido na coluna Status na visão abapGit Repositories para a ação pull acionada. Para isso, atualize a exibição por meio do ícone Atualizar na barra de ferramentas da visão Repositórios abapGit.
Ative todos os objetos puxados.
Selecione o ícone Ativar objetos de desenvolvimento ABAP inativos na barra de ferramentas Eclipse ou pressione Ctrl+Shift+F3.
Na caixa de diálogo exibida, certifique-se de que todos os objetos puxados estão selecionados e pressione Ativar.
Como criar uma tabela de banco de dados no ambiente ABAP do SAP BTP
Para as etapas e os dados desta demonstração, consulte o exercício Criar uma tabela de banco de dados no ambiente ABAP do SAP BTP.
Criar uma tabela de banco de dados no ambiente ABAP do SAP BTP
No cenário do exercício de extensibilidade lado a lado, criamos uma aplicação no ambiente ABAP do SAP BTP. Esta aplicação é utilizada para administrar reclamações de fatura de cliente. As reclamações são armazenadas em uma tabela de banco de dados no ambiente ABAP do SAP BTP.
Após a criação da aplicação de base, vamos ampliá-la para integrar um serviço OData do sistema SAP S/4HANA on-premise usado no curso de treinamento. Para isso, chamaremos o serviço OData de fatura de cliente no sistema on-premise a partir da aplicação de base em execução no ambiente ABAP do SAP BTP. Este serviço OData foi criado por meio de um business object personalizado em um exercício anterior. Vamos integrar os dados que este serviço OData fornece do back-end para nossa aplicação base como entradas possíveis.
Na primeira etapa, criaremos agora a tabela de banco de dados no ambiente ABAP do SAP BTP que será usado para armazenar as reclamações na nuvem.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Solução modelo:Z425_COMPLAINT98 (tabela de banco de dados)
Etapas
Crie uma tabela de banco de dados com o nome Z425_COMPLAINT## em seu pacote ZS4D425_##_CLD com a descrição Reclamações do cliente sobre faturas.
No ADT, clique com o botão direito do mouse em seu pacote ZS4D425_##_CLD e selecione Novo→outro objeto do repositório ABAP.
Na caixa de diálogo que é aberta, procure Tabela de banco de dados, selecione-a e clique em Avançar.
Na tela Nova tabela de banco de dados, insira Z425_COMPLAINT## como Nome e Reclamações do cliente sobre faturas como Descrição. Em seguida, selecione Seguinte.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou no último exercício e selecione Concluir.
Resultado
É aberto um editor com a definição da nova tabela de banco de dados. Ele contém o seguinte código:
Para salvar sua entrada, você pode usar o atalho do teclado Ctrl+S.
A ativação pode ser feita por meio do atalho do teclado Ctrl+F3.
Aplicação base
A aplicação de base utiliza um serviço OData para acessar a tabela de banco de dados criada no último exercício. Na etapa seguinte, este serviço OData é implementado utilizando o ABAP RESTful Application Programming Model.
Uma vez que o modelo de programação de aplicação ABAP RESTful não é o tópico deste curso de treinamento, um gerador é utilizado para criar o serviço OData baseado no modelo de programação de aplicação ABAP RESTful necessário.
Os gráficos seguintes fornecem uma breve síntese de RAP. Detalhes sobre o modelo de programação de aplicação ABAP RESTful podem ser encontrados na documentação, bem como em cursos de treinamento separados.
O ABAP RESTful Application Programming Model define a arquitetura para o desenvolvimento ponta a ponta de serviços OData otimizados para SAP HANA. Ele suporta o desenvolvimento de todos os tipos de aplicativos Fiori, bem como a publicação de APIs da Web. Ele é baseado em tecnologias e frameworks, como Core Data Services (CDS) para definir modelos de dados semanticamente ricos e uma infraestrutura de modelo de serviço para criar serviços OData com ligações a um protocolo OData e serviços de aplicação baseados em ABAP para lógica personalizada e interfaces de usuário baseadas em SAPUI5.
O ABAP RESTful Application Programming Model está disponível nos seguintes produtos:
Ambiente ABAP SAP BTP
SAP S/4HANA Cloud
Servidor de aplicação ABAP 7.55 SP03
O diagrama acima estrutura o desenvolvimento de um serviço OData de uma perspectiva de tempo de design. Por outras palavras, ele exibe os principais artefatos de desenvolvimento com os quais você deve lidar durante a criação de um serviço OData com o modelo de programação RESTful ABAP. O diagrama tem uma abordagem bottom-up que se assemelha ao fluxo de desenvolvimento. As principais tarefas de desenvolvimento podem ser categorizadas em três camadas, modelagem e comportamento de dados, provisionamento de serviços empresariais e consumo de serviços.
O diagrama acima fornece uma perspectiva de tempo de execução do modelo de programação RESTful ABAP. Os objetos de tempo de execução são componentes necessários para executar uma aplicação. Esta pilha de tempo de execução é ilustrada em uma abordagem top-down. Um client OData envia uma solicitação que é depois transferida para os frameworks de tempo de execução genéricos. Esses frameworks preparam uma solicitação consumível para código ABAP e a enviam para o componente de lógica empresarial relevante. A solicitação é executada pelo business object (BO) quando os dados são modificados ou pela consulta se os dados só forem lidos da fonte de dados.
Como gerar o serviço OData para a aplicação base
Para as etapas e dados desta demonstração, consulte o exercício Gerar o serviço OData para a aplicação base.
Gerar o serviço OData para a aplicação base
No cenário do exercício para a ampliação lado a lado, implementamos uma aplicação no ambiente ABAP do SAP BTP. Para isso, uma tabela de banco de dados foi criada no ambiente ABAP do SAP BTP no exercício anterior, que pode ser usada para salvar de forma persistente reclamações sobre faturas de cliente.
Neste exercício, é gerado um serviço OData que permite o acesso de leitura e escrita à tabela de banco de dados. Para criar o serviço OData, usamos um business object administrado com base no ABAP RESTful Application Programming Model (RAP).
Utilizamos o chamado Gerador de objetos do repositório ABAP para gerar os objetos do repositório ABAP RAP necessários para nós.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Etapas
Para criar o serviço da IU OData e todos os objetos subjacentes, chame o Gerador de repositório do ABAP Objects com referência à sua tabela de banco de dados Z425_COMPLAINT##. Use o gerador Serviço de IU OData. Para configurar o gerador, use os seguintes valores:
Valores para serviço IU OData gerador
Categoria
Característica
Valor
Geral
Objeto referenciado
Z425_COMPLAINT##
Descrição
Reclamação ##
Business object; modelo de dados
Nome da entidade CDS
ZR_425_COMPLAINT##
Nome do alias
Reclamação
Business object; comportamento
Classe de implementação de comportamento
ZBP_R_425_COMPLAINT##
Nome da tabela de esboço
Z425_COMPL##D
Projeção de serviço; entidade de projeção de serviço
Nome da entidade CDS
ZC_425_COMPLAINT##
Projeção de serviço; comportamento de projeção de serviço
Classe de implementação de comportamento
ZBP_C_425_COMPLAINT##
Serviço empresarial; definição de serviço
Nome da definição de serviço
ZUI_425_COMPLAINT##_O4
Serviço empresarial; ligação de serviço
Nome da ligação de serviço
ZUI_425_COMPLAINT##_O4
Tipo de ligação
OData V4 - IU
Posicione o cursor em sua tabela de banco de dados Z425_COMPLAINT##.
Pressione a tecla do mouse secundária e chame a função Gerar objetos do repositório ABAP.
Na tela Selecionar gerador, selecione →Serviço IU OData Modelo de programação de replicação ABAP RESTful. Pressione Seguinte.
Na tela seguinte, no campo Pacote, insira seu pacote ZS4D425_##_CLD e pressione Seguinte.
Na tela Configurar gerador, insira os valores para cada categoria e propriedade, como indicado na tabela acima. Modifique os valores propostos, se necessário. Pressione Seguinte.
Na tela seguinte, verifique a visualização. Pressione Seguinte.
Na tela seguinte, selecione sua ordem de transporte e pressione Concluir. Em seguida, os artefatos serão gerados.
Atualize a exibição de seu pacote ZS4D425_##_CLD no Explorador de projetos para mostrar os objetos gerados em seu pacote.
Clique com o botão direito do mouse em seu pacote ZS4D425_##_CLD no Explorador de projetos e selecione Atualizar no menu de contexto. Como alternativa, você pode pressionar F5.
Examine a visão de interface gerada ZR_425_COMPLAINT_##.
A visão define nomes de alias em CamelCase para os nomes de campo de tabela. Quais são os nomes de alias dos seguintes campos de tabela?
Nome do campo da tabela
Nome do alias
COMPLAINT_ID
INVOICE_ID
CUSTOMER_ID
CUSTOMER_NAME
Para abrir a visão de interface ZR_425_COMPLAINT## no editor, expanda os seguintes nós em seu pacote no Explorador de projetos: ZS4D425_##_CLD→→Core Data Services Definições de dados. Em seguida, clique duas vezes em ZR_425_COMPLAINT##.
A visão lê seus dados da tabela de banco de dados Z425_COMPLAINT##.
Ele define os seguintes nomes de alias:
Nome do campo da tabela
Nome do alias
COMPLAINT_ID
ID reclam.
INVOICE_ID
InvoiceID
CUSTOMER_ID
CustomerID
CUSTOMER_NAME
CustomerName
Examine a visão de projeção gerada ZC_425_COMPLAINT##.
Para abrir a visão de projeção ZC_425_COMPLAINT## no editor, expanda os seguintes nós em seu pacote no Explorador de projetos: ZS4D425_##_CLD→→Core Data Services Definições de dados. Em seguida, clique duas vezes em ZC_425_COMPLAINT##.
A visão lê seus dados a partir da visão de interface ZR_425_COMPLAINT_##.
Examine a definição de comportamento gerada ZR_425_COMPLAINT## para a visão de interface ZR_425_COMPLAINT##, que define o comportamento do business object RAP.
Qual é o nome da classe global utilizada para implementar o comportamento?
Para abrir a definição de comportamento ZR_425_COMPLAINT## no editor, expanda os seguintes nós em seu pacote no Project Explorer: ZS4D425_##_CLD→Core Data Services→Behavior Definitions. Em seguida, clique duas vezes em ZR_425_COMPLAINT##.
O nome da classe global utilizada para implementar o comportamento é ZBP_R_D425_Complaint##.
As operações transacionais criar, atualizar e excluir são definidas para o business object RAP.
Examine a definição de comportamento de projeção gerada ZC_425_COMPLAINT_## para a visão de projeção ZC_425_COMPLAINT_##, que expõe um subconjunto dos elementos da definição de comportamento de base subjacente ZR_425_COMPLAINT_##.
Quais operações transacionais para o business object RAP definido na definição do comportamento básico subjacente ZR_425_COMPLAINT_## são reutilizadas na definição do comportamento de projeção?
Para abrir a definição de comportamento de projeção ZC_425_COMPLAINT## no editor, expanda os seguintes nós sob seu pacote no Project Explorer: ZS4D425_##_CLD→Core Data Services→Behavior Definitions. Em seguida, clique duas vezes em ZC_425_COMPLAINT##.
A definição do comportamento de projeção reutiliza as operações criar, atualizar e eliminar da definição de comportamento de base.
Examine a definição de serviço gerada ZUI_425_COMPLAINT##_O4.
Que entidade CDS é exposta por meio desta definição de serviço para o serviço empresarial?
Para abrir a definição de serviço ZUI_425_COMPLAINT##_O4 no editor, expanda os seguintes nós em seu pacote no Explorador de projetos: ZS4D425_##_CLD→Definições de serviço→de serviços empresariais. Em seguida, clique duas vezes em ZUI_425_COMPLAINT##_O4.
A definição de serviço expõe a entidade CDS ZC_425_COMPLAINT##.
O nome do alias Reclamação está definido para esta entidade CDS.
Examine a ligação de serviço gerada ZUI_425_COMPLAINT##_O4.
Em qual definição de serviço essa ligação de serviço é baseada?
Para abrir a ligação de serviço ZUI_425_COMPLAINT##_O4 no editor, expanda os seguintes nós em seu pacote no Project Explorer: ZS4D425_##_CLD→Business Services→Service Bindings . Em seguida, clique duas vezes em ZUI_425_COMPLAINT##_O4.
A ligação de serviço é baseada na definição de serviço ZUI_425_COMPLAINT##_O4.
O tipo de ligação OData V4 - IU é implementado com a ligação de serviço.
Publique a ligação de serviço ZUI_425_COMPLAINT##_O4.
Abra a ligação de serviço ZUI_425_COMPLAINT##_O4 no editor se ainda não estiver aberta.
Clique no botão Publicar no editor de ligação de serviço para publicar a ligação de serviço.
Nota
Seja paciente, publicar a vinculação do serviço leva um pouco de tempo.
Abra a visualização do app de elementos SAP Fiori para o conjunto de entidades Reclamação.
Abra a ligação de serviço ZUI_425_COMPLAINT##_O4 no editor se ainda não estiver aberta.
Selecione o conjunto de entidades Reclamação na seção Conjunto de entidades e associação do editor de ligação de serviço.
Clique no botão Visualizar....
Nota
Se você não estiver conectado automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com exibido na página do navegador exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione o botão Efetuar logon para efetuar o logon no sistema ABAP.
Crie uma nova reclamação por meio da visualização do app de elementos do SAP Fiori. Em seguida, atualize a reclamação gravada e elimine a mesma novamente.
Nota
Por meio da visualização gerada do app de elementos do SAP Fiori, as reclamações não só podem ser exibidas, mas também criadas, atualizadas e excluídas. Isso se deve ao fato de terem sido definidas operações de criação, atualização e eliminação para o business object RAP (ver acima).
Utilize os elementos de IU correspondentes da visualização do app de elementos SAP Fiori para executar as operações de criação, atualização e eliminação.
Resultado
A visualização do app de elementos do SAP Fiori fornece uma IU quase completa com recursos de pesquisa e filtragem, além de criar, atualizar e excluir reclamações.
Contudo, não são fornecidas entradas possíveis na aplicação. Posteriormente, forneceremos entradas possíveis para o ID da fatura, que também preencherão os campos de ID do cliente e de nome do cliente com valores. Para isso, utilizaremos o serviço OData de fatura de cliente do sistema SAP S/4HANA on-premise, que criamos em um exercício anterior por meio de um business object personalizado. Vamos integrar este serviço OData como entradas possíveis por meio de uma ampliação lado a lado na aplicação no ambiente ABAP.
Para o campo de tabela Fechado, a etiqueta Valor verdadeiro é usada na visualização do app de elementos do SAP Fiori. Este e alguns outros rótulos serão ajustados no próximo exercício.
Como ajustar as etiquetas do aplicativo SAP Fiori Elements
Para as etapas e os dados desta demonstração, consulte o exercício Ajustar as etiquetas do aplicativo de elementos do SAP Fiori.
Ajustar as etiquetas da aplicação de elementos SAP Fiori (opcional)
No último exercício, você testou o serviço OData para a aplicação base por meio da visualização do app de elementos do SAP Fiori. As etiquetas exibidas na aplicação de elementos SAP Fiori são indicadas por meio de uma chamada ampliação de metadados gerada pelo gerador RAP.
Neste exercício, você ajustará uma das etiquetas no aplicativo de elementos do SAP Fiori por meio desta ampliação de metadados gerada.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Solução modelo:ZC_425_Complaint98 (ampliação de metadados)
Etapas
Abra a ampliação de metadados gerada ZC_425_Complaint##.
Para abrir a ampliação de metadados ZC_425_Complaint## no editor, expanda os seguintes nós em seu pacote no Project Explorer: ZS4D425_##_CLD→Core Data Services→Metadata Extensions. Em seguida, clique duas vezes em ZC_425_Reclamação##.
Na ampliação de metadados ZC_425_Complaint##, ajuste as etiquetas para a tabela no relatório de lista e na página do objeto da seguinte forma:
Elemento
Etiqueta gerada para list report e página do objeto
Etiqueta ajustada para relatório de lista e página do objeto
Encerrado
Valor verdadeiro
Encerrado
ID reclam.
ID reclam.
ID da reclamação
InvoiceID
InvoiceID
ID da fatura
CustomerID
CustomerID
ID do cliente
CustomerName
CustomerName
Nome do cliente
Em seguida, ative sua ampliação de metadados ZC_425_Complaint##.
Na ampliação de metadados, procure as seguintes anotações para o elemento Closed:
Para ativar a ampliação de metadados, você pode utilizar o atalho do teclado Ctrl+F3.
Teste seus ajustes por meio da visualização do app de elementos SAP Fiori para o conjunto de entidades Reclamação.
Abra a ligação de serviço ZUI_425_COMPLAINT##_O4 no editor se ainda não estiver aberta.
Selecione o conjunto de entidades Reclamação na seção Conjunto de entidades e associação do editor de ligação de serviço.
Selecione Visualizar....
Nota
Se você não estiver conectado automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com exibido na página do navegador exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione o botão Efetuar logon para efetuar o logon no sistema ABAP.
Verifique se as etiquetas ajustadas são exibidas na tabela Report de lista e na página de objeto do app.
Como calcular a chave semântica
Para as etapas e os dados desta demonstração, consulte o exercício Calcular a chave semântica.
Calcular a chave semântica (opcional)
Para fornecer automaticamente um valor ao campo-chave semântico ComplaintID, implementaremos uma chamada determinação neste exercício.
Nota
Fisicamente, o campo UUID é o campo-chave da definição de comportamento ZR_425_COMPLAINT##. Mas o campo ComplaintID semanticamente (isto é, legível por humanos) é como um campo-chave.
Uma determinação é uma parte opcional do comportamento do business object que modifica instâncias de business objects com base em condições de acionamento. Aqui, é implementada uma determinação para calcular o ID de uma reclamação que é legível pelo usuário da aplicação. Assim que o usuário criar uma nova reclamação, a determinação é executada e calcula o valor correspondente para o campo-chave semântico.
A implementação da determinação é efetuada em uma classe local chamada LHC_COMPLAINT, que faz parte da classe de implementação de comportamento global ZBP_R_425_COMPLAINT##. Esta classe global e a classe local já foram criadas pelo gerador. Por isso, só é necessário implementar o método CALCULATECOMPLAINTID na classe local LHC_COMPLAINT. Para simplificar, neste exercício, copie a classe local LHC_COMPLAINT da solução de amostra e adapte-a ao seu business object.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Soluções de amostra:
Classe global ZBP_R_425_COMPLAINT98
Definição de comportamento ZR_425_COMPLAINT98
Ampliação de metadados ZC_425_COMPLAINT98
Etapas
Defina o campo ComplaintID como readonly na definição de comportamento ZR_425_COMPLAINT##.
Abra a definição de comportamento ZR_425_COMPLAINT##.
Procure o campo (somente leitura).
Adicione ComplaintID à lista de campos somente leitura.
A cláusula field (readonly ) deve ser lida:
Code Snippet
123456
field ( readonly )
UUID,
LastChanged,
LocalLastChanged;
Adicione uma determinação à definição de comportamento ZR_425_COMPLAINT##.
Abra a definição de comportamento ZR_425_COMPLAINT##.
Você pode ignorar as mensagens exibidas. Eles desaparecerão após a próxima etapa.
Ative a definição de comportamento.
Selecionar a função Ativar.
Copie da implementação do método CalculateComplaintID da classe local LHC_ZR_425_COMPLAINT98 da classe global ZBP_R_425_COMPLAINT98.
Selecione o ícone Abrir objeto de desenvolvimento ABAP na barra de ferramentas do Eclipse ou pressione Ctrl+Shift+A.
No diálogo Abrir objeto de desenvolvimento ABAP, insira ZBP_R_425_COMPLAINT98 como cadeia de pesquisa. Selecione ZBP_R_425_COMPLAINT98 na área Itens correspondentes e clique em OK.
Na parte inferior do editor que é aberto, selecione a aba Tipos locais.
Marque a codificação completa da implementação do método CalculateComplaintID da classe LHC_ZR_425_COMPLAINT98, que agora é exibida (por exemplo, via CTRL+A) e, em seguida, copie-a (por exemplo, via CTRL+C).
Substitua a implementação do método CalculateComplaintID da classe local LHC_ZR_425_COMPLAINT## em sua classe global ZBP_R_425_COMPLAINT## pela codificação copiada.
Para abrir a classe global ZBP_R_425_COMPLAINT## no editor, expanda os seguintes nós em seu pacote no Project Explorer: ZS4D425_##_CLD→Source→Code Library Classes→ZBP_R_425_COMPLAINT##. Em seguida, clique duas vezes em LHC_ZR_425_COMPLAINT##.
No editor que é aberto, substitua a codificação da implementação do método CalculateComplaintID da classe LHC_ZR_425_COMPLAINT##, que é exibida, pelo código copiado.
Ajuste o código copiado nos três locais seguintes para corresponder ao seu número de grupo:
Código copiado
Código ajustado
READ ENTITIES OF zr_425_complaint_98IN LOCAL MODE
READ ENTITIES OF zr_425_complaint_##IN LOCAL MODE
SELECT SINGLE FROM z425_complaint98FIELDS MAX( complaint_id ) INTO @DATA(max_complaint).
SELECT SINGLE FROM z425_complaint##FIELDS MAX( complaint_id ) INTO @DATA(max_complaint).
MODIFY ENTITIES OF zr_425_complaint_98IN LOCAL MODE
MODIFY ENTITIES OF zr_425_complaint_##IN LOCAL MODE
Em seguida, ative sua classe ZBP_R_425_COMPLAINT##.
Nota
Para simplificar, a implementação de determinação seleciona do banco de dados o ID de reclamação mais alto atribuído até o momento. O valor selecionado é então incrementado para gerar mais chaves semânticas que podem ser lidas pelo usuário. Em uma aplicação produtiva, é preferível utilizar um intervalo de numeração.
Ajuste a codificação copiada para corresponder ao seguinte:
CLASS lhc_zr_425_complaint## DEFINITION INHERITING FROM cl_abap_behavior_handler.
PRIVATE SECTION.
METHODS:
calculatecomplaintid FOR DETERMINE ON SAVE
IMPORTING
keys FOR Complaint~CalculateComplaintID .
ENDCLASS.
CLASS lhc_zr_425_complaint## IMPLEMENTATION.
METHOD calculatecomplaintid.
"Ensure idempotence
READ ENTITIES OF zr_425_complaint_ IN LOCAL MODE
ENTITY Complaint
FIELDS ( ComplaintID )
WITH CORRESPONDING #( keys )
RESULT DATA(complaints).
DELETE complaints WHERE ComplaintID IS NOT INITIAL.
CHECK complaints IS NOT INITIAL.
"Get max complaintID
SELECT SINGLE FROM z425_complaint FIELDS MAX( complaint_id ) INTO @DATA(max_complaint).
"update involved instances
MODIFY ENTITIES OF zr_425_complaint_ IN LOCAL MODE
ENTITY Complaint
UPDATE FIELDS ( ComplaintID )
WITH VALUE #( FOR complaint IN complaints INDEX INTO i (
%tky = complaint-%tky
ComplaintID = max_complaint + i ) )
REPORTED DATA(lt_reported).
"fill reported
reported = CORRESPONDING #( DEEP lt_reported ).
ENDMETHOD.
ENDCLASS.
Para ativar a classe, você pode usar o atalho do teclado Ctrl+F3.
Modifique as informações do título para a ampliação de metadados ZC_425_COMPLAINT##. Modifique as anotações para título e descrição. Você também pode copiar a peça alterada da extensão de metadados da solução ZC_425_COMPLAINT98.
Anotação
Valor antigo
Novo valor
@UI.headerInfo.title.value:
'Uuid'
'ID de reclamação'
@UI.headerInfo.description.value:
'Uuid'
'CustomerName'
Ative a ampliação de metadados.
Abra a ampliação de metadados ZC_425_COMPLAINT##.
Na ampliação de metadados, procure as seguintes anotações para o elemento Closed:
Teste a implementação da determinação por meio da visualização do app de elementos do SAP Fiori para o conjunto de entidades Reclamação. Teste a nova aparência do título e da descrição.
Abra a ligação de serviço ZUI_425_COMPLAINT##_O4 no editor se ainda não estiver aberta.
Selecione o conjunto de entidades Reclamação na seção Conjunto de entidades e associação do editor de ligação de serviço.
Selecione Visualizar....
Nota
Se você não estiver conectado automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com exibido na página do navegador exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione Efetuar logon para efetuar o logon no sistema ABAP.
No app de elementos SAP Fiori exibido, pressione o botão Criar.
Preencha o formulário e pressione Criar.
Resultado
Verifique a numeração para a chave semântica: o campo ID da reclamação deve agora mostrar um 1.
Verifique o título e a descrição. Por título, o ID da reclamação deve ser exibido. Para descrição, consulte o Nome do cliente.
Integração back-end
Para consumir o serviço OData do sistema SAP S/4HANA on-premise no ambiente ABAP do SAP BTP, você precisa de uma representação local do serviço remoto. Com a ajuda de um modelo de consumo de serviço, você pode importar os metadados OData do serviço remoto para o ambiente ABAP SAP BTP e criar artefatos proxy para o serviço remoto. O assistente que cria os artefatos proxy necessita de um documento XML CSDL do serviço externo como base para o modelo de consumo de serviço. As entidades abstratas geradas espelham o modelo de dados do serviço remoto.
O modelo de dados para as entradas possíveis é definido em uma entidade personalizada CDS. Ou seja, a entidade personalizada define os elementos a serem usados nas entradas possíveis e os digita.
Ao contrário das visões CDS, as entidades personalizadas não têm uma instrução SELECT para recuperar os dados de uma fonte de dados. O tempo de execução de uma entidade personalizada deve ser implementado em uma classe ABAP relacionada, que deve ser referenciada usando a anotação @ObjectModel.query.implementedBy.
Esta chamada classe de implementação de consulta deve implementar o método select da interface IF_RAP_QUERY_PROVIDER para processar solicitações de consulta pelo cliente. Na implementação deste método, os dados da fatura são selecionados mediante o serviço remoto utilizando o proxy do mandante gerado.
Como criar um modelo de consumo de serviços para o serviço OData on-premise
Para as etapas e dados desta demonstração, consulte o exercício Criar um modelo de consumo de serviços para o serviço OData on-premise.
Criar um modelo de consumo de serviços para o serviço OData on-premise
Nos exercícios anteriores, o serviço OData da aplicação de base foi implementado. Na visualização do app de elementos SAP Fiori associado, pode-se ver que esta aplicação não fornece entradas possíveis na IU para administrar reclamações.
Usando uma ampliação lado a lado, agora queremos adicionar essas entradas possíveis para o ID da fatura. Para isso, utilizamos o serviço OData de fatura de cliente do sistema on-premise, que foi criado por meio de um business object personalizado em um exercício anterior. Este serviço OData fornecerá os dados para as entradas possíveis para o ID da fatura, que também preencherão os campos para o nome do cliente e o ID do cliente com valores.
Neste exercício, primeiro criaremos um modelo de consumo de serviços para o serviço OData de fatura de cliente, que depois usamos para chamar esse serviço no sistema on-premise a partir do aplicativo no ambiente ABAP do SAP BTP.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Etapas
Salve o documento de metadados de serviço do serviço OData de fatura de cliente a partir do sistema on-premise em um arquivo local chamado $metadata.xml no diretório N:\Documents.
O modelo de consumo de serviço usa a descrição de uma interface externa (atualmente OData, SOAP e RFC são suportados) como entrada. No caso de OData, o chamado documento de metadados de serviço OData fornece a descrição de interface correspondente. Com base nas informações no documento de metadados de serviço, os objetos proxy de consumo OData são gerados para o modelo de consumo de serviço. Com esses objetos, você pode escrever código ABAP que permite chamar serviços OData remotos.
Se o navegador Chrome ainda não tiver sido iniciado, abra-o pelo menu Iniciar do Windows.
Se solicitado, efetue logon no sistema S4D com seu usuário TRAIN-## e a senha associada.
Resultado
O documento de metadados de serviço é exibido no browser.
Clique com o botão direito do mouse na janela do browser e selecione Gravar como... no menu de contexto exibido.
Na caixa de diálogo exibida, selecione a pasta N:\Documents e digite $metadata.xml como Nome do arquivo. Em seguida, selecione Gravar.
Com base no documento de metadados de serviço gravado, crie um modelo de consumo de serviço para o conjunto de entidades ZZ1_CUSTOMERINVOICE## do serviço OData de fatura de cliente em seu pacote ZS4D425_##_CLD. Utilize ZSC_D425_INVOICES_## como nome e Faturas de S4D como descrição para o modelo de consumo de serviço.
No ADT, clique com o botão direito do mouse em seu pacote ZS4D425_##_CLD e selecione Novo→outro objeto do repositório ABAP.
Na caixa de diálogo que é aberta, procure Modelo de consumo de serviços, selecione-o e clique em Avançar.
Na tela Modelo de consumo de serviços, insira ZSC_D425_INVOICES_## como Nome e Faturas de S4D como Descrição. Certifique-se de que OData esteja selecionado como Modo de consumo remoto. Em seguida, selecione Seguinte.
Na caixa de diálogo exibida, clique em Procurar... para selecionar o arquivo N:\Documents\$metadata.xml que você criou na etapa anterior. Selecione Avançar.
Na etapa Componentes do serviço OData, você vê todos os componentes do arquivo de metadados de serviço. Selecione Seguinte.
Na etapa Suporte ETag, você não precisa modificar nada. Selecione Avançar.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou em um exercício anterior e selecione Concluir.
Resultado
O modelo de consumo de serviços é gerado e exibido no editor.
Examine o modelo de consumo de serviço gerado.
Quais conjuntos de entidades de serviço podem ser acessados por meio do modelo de consumo de serviços?
Se o modelo de consumo de serviços ainda não estiver aberto, abra-o da seguinte forma: Expanda os seguintes nós em seu pacote no Explorador de projetos: ZS4D425_##_CLD→Serviços empresariais→Modelos de consumo de serviços. Em seguida, clique duas vezes em ZSC_D425_INVOICES_##. Os conjuntos de entidades de serviço que podem ser acessados por meio do modelo de consumo de serviço são exibidos na seção Conjuntos de entidades de serviço do editor: entre eles, você encontrará ZZ1_CUSTOMERINVOICE##. Selecione esta entrada com o mouse.
Na seção Detalhes do conjunto de entidades de serviço do editor, os exemplos de código para o acesso ao conjunto de entidades podem ser encontrados. Para as seguintes operações, é fornecido o código-exemplo: Criar, Ler, Ler lista, Atualizar, Excluir.
Como criar um aplicativo de console para testar o modelo de consumo de serviços
Para as etapas e os dados desta demonstração, consulte o exercício Criar uma aplicação de console para testar o modelo de consumo de serviços.
Criar um aplicativo de console para testar o modelo de consumo de serviços
Neste exercício, você criará um pequeno aplicativo de console para testar o modelo de consumo de serviços. Dessa forma, você verificará se a chamada do serviço OData no sistema On-Premise a partir do ambiente ABAP do SAP BTP funciona. Encontrar quaisquer erros que possam ocorrer é muito mais fácil por meio de um aplicativo de console do que mais tarde, quando o modelo de consumo de serviços já foi integrado ao aplicativo base.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Crie uma classe global com o nomeZCL_CE_D425_INVOICES_## em seu pacote ZS4D425_##_CLD. Use a entidade personalizada de implementação de consulta como a descrição para a classe. Certifique-se de que a classe implementa a interface IF_OO_ADT_CLASSRUN.
Nota
A chamada do serviço OData no sistema On-Premise será posteriormente integrada à aplicação base por meio de uma chamada entidade personalizada. Para isso, a classe criada agora será reutilizada como uma implementação de consulta da entidade personalizada. Por isso, já selecionamos o nome da classe e a descrição adequadamente aqui. O CE no nome da classe indica que essa classe serve como uma implementação de consulta para uma entidade personalizada.
No ADT, clique com o botão direito do mouse em seu pacote ZS4D425_##_CLD e selecione Novo→outro objeto do repositório ABAP.
No diálogo que é aberto, procure Classe ABAP, selecione a mesma e clique em Seguinte.
Na tela Classe ABAP, insira ZCL_CE_D425_INVOICES_## como Nome e a entidade personalizada de implementação da consulta como Descrição.
Ainda na tela Classe ABAP, pressione o botão Adicionar.... No diálogo Adicionar interface ABAP exibido, procure IF_OO_ADT_CLASSRUN, selecione-o e clique em OK. Em seguida, selecione Seguinte na tela Classe ABAP.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou em um exercício anterior e selecione Concluir.
Resultado
A classe é gerada e exibida no editor de classes ABAP. Certifique-se de que a codificação seja semelhante à seguinte:
Code Snippet
1234567891011121314151617
CLASS zcl_ce_d425_invoices_## DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_ce_d425_invoices_## IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
ENDMETHOD.
ENDCLASS.
Adicione a seguinte declaração de tipo à Seção pública de sua classe ZCL_CE_D425_INVOICES_##:
Snippet de código
Nota
Os dados retornados pelo serviço OData chamado no sistema On-Premise são disponibilizados como tabela interna por meio do modelo de consumo de serviço. O tipo de dados criado aqui será utilizado posteriormente para criar tabelas internas correspondentes.
Certifique-se de que a codificação seja semelhante à seguinte:
Code Snippet
123456789101112131415161718
CLASS zcl_ce_d425_invoices_## DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_ce_d425_invoices_## IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
ENDMETHOD.
ENDCLASS.
Adicione a seguinte definição de método à seção Público de sua classe ZCL_CE_D425_INVOICES_##:
Snippet de código
Nota
O método get_Invoices é usado para implementar o acesso ao serviço OData remoto. O método aceita condições de filtro (opção de consulta OData $filter) e valores para paginar os dados (opções de consulta OData $top e $skip) como parâmetros de importação opcionais. Esses parâmetros são transferidos posteriormente para o chamado serviço OData na implementação do método por meio do modelo de consumo de serviço. A interface de exportação do método get_Invoices retorna os dados correspondentes fornecidos pelo serviço OData.
Certifique-se de que a codificação seja semelhante à seguinte:
Nota
Você pode ignorar o erro exibido de que a implementação para o método get_Invoices está em falta. A implementação será adicionada na etapa seguinte.
Code Snippet
1234567891011121314151617181920
CLASS zcl_ce_d425_invoices_## DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
TYPES tt_business_data TYPE zsc_d425_invoices_##=>tyt_zz_1_customerinvoice_##_ty.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_ce_d425_invoices_## IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
ENDMETHOD.
ENDCLASS.
Implemente os dois métodos if_oo_adt_classrun~main e get_Invoices em sua classe ZCL_CE_D425_INVOICES_##. Para isso, copie as implementações de método correspondentes da solução modelo ZCL_CE_D425_INVOICES_98.
Na implementação do método get_invoices, corresponda o código copiado ao seu número de grupo da seguinte forma.
Na implementação do método if_oo_adt_classrun~main, não há nada a mudar. (Mas não se esqueça de copiá-lo.)
Codificação copiada do método get_invoices:
Code Snippet
12345678910111213141516171819
METHOD get_invoices.
[...]
DATA(lo_odata_client_proxy) =
/iwbep/cl_cp_factory_remote=>create_v2_remote_proxy(
EXPORTING
is_proxy_model_key = VALUE #( repository_id = 'DEFAULT'
proxy_model_id = 'ZSC_D425_INVOICES_98'
proxy_model_version = '0001' )
io_http_client = lo_http_client
iv_relative_service_root = '/sap/opu/odata/sap/ZZ1_CUSTOMERINVOICE98_CDS' ).
" Navigate to the resource and create a request for the read operation
DATA(lo_request) =
lo_odata_client_proxy->create_resource_for_entity_set( 'ZZ_1_CUSTOMERINVOICE_98' )->create_request_for_read( ).
[...]
ENDMETHOD.
Codificação ajustada do método get_invoices:
Code Snippet
123456789101112131415161718
METHOD get_invoices.
[...]
DATA(lo_odata_client_proxy) =
/iwbep/cl_cp_factory_remote=>create_v2_remote_proxy(
EXPORTING
is_proxy_model_key = VALUE #( repository_id = 'DEFAULT'
proxy_model_id = 'ZSC_D425_INVOICES_##'
proxy_model_version = '0001' )
io_http_client = lo_http_client
iv_relative_service_root = '/sap/opu/odata/sap/ZZ1_CUSTOMERINVOICE##_CDS' ).
" Navigate to the resource and create a request for the read operation
DATA(lo_request) =
lo_odata_client_proxy->create_resource_for_entity_set( 'ZZ_1_CUSTOMERINVOICE_##' )->create_request_for_read( ).
[...]
ENDMETHOD.
Em seguida, ative sua classe ZCL_CE_D425_INVOICES_##.
Selecione o ícone Abrir objeto de desenvolvimento ABAP na barra de ferramentas do Eclipse ou pressione Ctrl+Shift+A.
No diálogo Abrir objeto de desenvolvimento ABAP, insira ZCL_CE_D425_INVOICES_## como cadeia de pesquisa. Selecione ZCL_CE_D425_INVOICES_98 na área Itens correspondentes e clique em OK.
No editor de classes ABAP que é aberto, marque o código destacado abaixo e, em seguida, copie-o (por exemplo, via CTRL+C).
CLASS zcl_ce_d425_invoices_## DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES: if_oo_adt_classrun.
TYPES tt_business_data TYPE zsc_d425_invoices_##=>tyt_zz_1_customerinvoice_##_ty.
METHODS get_invoices
IMPORTING
it_filter_cond TYPE if_rap_query_filter=>tt_name_range_pairs OPTIONAL
iv_top TYPE i OPTIONAL
iv_skip TYPE i OPTIONAL
EXPORTING
et_business_data TYPE tt_business_data
RAISING
/iwbep/cx_cp_remote
/iwbep/cx_gateway
cx_web_http_client_error
cx_http_dest_provider_error.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_ce_d425_invoices_## IMPLEMENTATION.
ENDCLASS.
Volte para sua classe ZCL_CE_D425_INVOICES_##. Elimine o seguinte código da parte de implementação da classe:
Snippet de código
Em seguida, cole o código copiado na parte de implementação da classe. Modifique-o como descrito acima.
Para ativar a classe, você pode usar o atalho do teclado Ctrl+F3.
Execute sua classe ABAP ZCL_CE_D425_INVOICES_## como uma aplicação de console.
Nota
O código copiado assume que um Destino chamado S4D_100 foi criado, que é usado para estabelecer a conexão com o sistema SAP S/4HANA on-premise. Ajuste o nome do destino usado no código, se necessário.
No método if_oo_adt_classrun~main, é definido um filtro que seleciona somente faturas com um ID superior ou igual a 1. Além disso, o resultado é limitado a 3 registros. Ajuste essas restrições aos seus dados, se necessário.
Para executar sua classe ZCL_CE_D425_INVOICES_## como um aplicativo de console, clique com o botão direito do mouse no editor ABAP onde sua classe é exibida e selecione Executar como→1 aplicativo ABAP (Console). Como alternativa, você pode pressionar F9.
Resultado
A visão Console exibe agora os registros retornados pelo serviço OData remoto. A saída deve ter o seguinte aspecto:
Code Snippet
1234
Table
SAP_UUID APPLYCUSTOMERDISCOUNT_AC APPLYCUSTOMERDISCOUNT_AC_VC ID ID_VC CUSTOMERID ...
005056044E851EDBBCA9087C5A80EF49 X 0000000815 99999999 005056044E851EDBBCEF851328D60939 X 0000004712 99999999
005056044E851EDBBCEFD06F059A6A5C X 0000004713 99999999
Como criar uma entidade personalizada
Para as etapas e dados desta demonstração, consulte o exercício Criar uma entidade personalizada.
Criar uma entidade personalizada
Para poder integrar o serviço OData do sistema SAP S/4HANA on-premise com a aplicação base por meio de entradas possíveis, você cria agora uma entidade personalizada. Esta entidade personalizada define o modelo de dados mediante o qual os dados do serviço OData remoto são disponibilizados para as entradas possíveis.
Ao contrário das visões CDS "normais", que leem dados de tabelas de banco de dados ou outras visões CDS, a obtenção de dados para entidades personalizadas é implementada manualmente. Ou seja, os dados para o modelo de dados definido por meio da entidade personalizada são selecionados com base no código por meio de uma classe ABAP que implementa a interface IF_RAP_QUERY_PROVIDER. Faremos a implementação da consulta correspondente para a entidade personalizada no próximo exercício. Para isso, reutilizaremos a classe criada no último exercício.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Solução de amostra:ZCE_D425_INVOICES_98 (definição de dados)
Etapas
Crie uma entidade personalizada com o nomeZCE_D425_INVOICES_## e descriçãoEntidade personalizada para faturas de S4D em seu pacote ZS4D425_##_CLD. Use o modelo de definição de dadosDefinir entidade personalizada com parâmetros para esse fim.
Nota
Nenhum parâmetro é necessário para a entidade personalizada neste exercício. No entanto, não existe nenhum modelo para criar uma entidade personalizada sem parâmetros. Portanto, na próxima etapa, você excluirá o código gerado para os parâmetros.
Clique com o botão direito do mouse em seu pacote ZS4D425_##_CLD e selecione Novo→outro objeto do repositório ABAP.
Na caixa de diálogo que é aberta, procure Definição de dados, selecione-a e clique em Seguinte.
Na tela Definição de dados, insira ZCE_D425_INVOICES_## como Nome e Entidade personalizada para faturas de S4D como Descrição. Em seguida, selecione Seguinte.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou em um exercício anterior e selecione Seguinte.
Cuidado
Não selecione Concluir nesta etapa. Caso contrário, você não irá para o diálogo onde pode selecionar o modelo.
Na tela Modelos, selecione o modelo Definir entidade personalizada com parâmetros e clique em Concluir.
Resultado
A entidade personalizada é gerada e exibida no editor. Certifique-se de que a codificação seja semelhante à seguinte:
Code Snippet
1234567
@EndUserText.label: 'Custom entity for invoices from S4D'
define custom entity ZCE_D425_INVOICES_##
with parameters parameter_name : parameter_type {
key key_element_name : key_element_type;
element_name : element_type;
}
Elimine a instrução with parameters parameter_name : parameter_type do texto fonte de sua entidade personalizada ZCE_D425_INVOICES_##. Remova também as duas linhas seguintes da definição da entidade personalizada:
Para manter o modelo de dados simples, nem todos os campos do serviço OData remoto devem ser expostos por meio da entidade personalizada para as entradas possíveis. Por uma questão de simplicidade, nos limitaremos a alguns campos aqui.
Para abrir o modelo de cópia ZD425_##_ZZ1_CUSTOMERINVOICE## no editor, expanda os seguintes nós em seu pacote no Explorador de projetos: ZS4D425_##_CLD→Core Data Services→Definições de dados. Em seguida, clique duas vezes em ZD425_##_ZZ1_CUSTOMERINVOICE##.
Um a um, copie os elementos acima do modelo de cópia e cole-os entre chaves em sua entidade personalizada. Certifique-se de que a definição de sua entidade personalizada tenha o seguinte aspecto:
Ajuste o número de casas decimais para o campo Amount_V de 3 para 2 da seguinte forma:
Code Snippet
1
Amount_V : abap.curr( 16, );
Cuidado
Só são suportados campos de montante com 2 casas decimais.
Na definição de sua entidade personalizada ZCE_D425_INVOICES_##, efetue a modificação descrita acima. Certifique-se de que a definição agora tem o seguinte aspecto:
Agora, defina a classe ZCL_CE_D425_INVOICES_##, que você criou no último exercício, como a classe de implementação de consulta para sua entidade personalizada. Para isso, adicione a seguinte anotação na frente da instrução e defina a entidade personalizada ZCE_D425_INVOICES_## em sua entidade personalizada:
No próximo exercício, você modificará a classe ZCL_CE_D425_INVOICES_## adequadamente.
Em seguida, ative sua entidade personalizada ZCE_D425_INVOICES_##.
Atualize a codificação de sua entidade personalizada como descrito acima. Certifique-se de que a definição da sua entidade personalizada agora tenha o seguinte aspecto:
Para ativar a entidade personalizada, você pode usar o atalho do teclado Ctrl+F3.
Como implementar a classe de implementação de consulta da entidade personalizada
Para as etapas e dados desta demonstração, consulte o exercício Implementar a classe de implementação de consulta da entidade personalizada.
Implementar a classe de implementação de consulta da entidade personalizada
No último exercício, você criou a entidade personalizada ZCE_D425_INVOICES_## e especificou a classe ZCL_CE_D425_INVOICES_## criada anteriormente como classe de implementação de consulta para essa entidade personalizada.
Neste exercício, você modificará a classe ZCL_CE_D425_INVOICES_## adequadamente. Para isso, você precisará implementar a interface IF_RAP_QUERY_PROVIDER na classe ZCL_CE_D425_INVOICES_##. Esta interface tem um método chamado select, que é utilizado para implementar a obtenção de dados para a entidade personalizada. Na implementação deste método, você delegará a obtenção de dados ao método get_Invoices que já existe na classe.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Implemente a interface IF_RAP_QUERY_PROVIDER em sua classe ZCL_CE_D425_INVOICES_## adicionando a seguinte instrução à seção Público da classe:
Code Snippet
1
INTERFACES if_rap_query_provider.
Nota
Você pode ignorar a advertência exibida de que a implementação para o método if_rap_query_provider~select está em falta. A implementação será adicionada na etapa seguinte.
Ajuste sua classe como descrito acima. Certifique-se de que a parte de definição da sua classe tem o seguinte aspecto:
Code Snippet
12345678910111213
CLASS zcl_ce_d425_invoices_## DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
...
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
Implemente o método if_rap_query_provider~select em sua classe ZCL_CE_D425_INVOICES_##. Para isso, copie a implementação de método correspondente da solução modelo ZCL_CE_D425_INVOICES_98.
Nota
Na implementação do método select, o parâmetro de importação io_request deste método é utilizado para recuperar opções de consulta OData da chamada OData de entrada.
As configurações relacionadas à paginação são consultadas por io_request->get_paging( )->get_page_size( ) (opção de consulta $top) e io_request->get_paging( )->get_offset( ) (opção de consulta $skip). Todos os filtros definidos (opção de consulta $filter) são recuperados via io_request->get_filter( )->get_as_ranges( ).
As configurações de paginação e filtro são transferidas para o método get_Invoices existente, que retorna os dados apropriados do sistema SAP S/4HANA on-premise.
No entanto, nem todas as opções de consulta OData são transferidas para o serviço OData no sistema SAP S/4HANA On-Premise. Por exemplo, qualquer ordenação solicitada dos dados (opção de consulta do sistema $orderby) não é considerada. Isso significa que não será possível ordenar os dados da fatura nas entradas possíveis.
Se ainda não tiver feito isso, você pode abrir a solução modelo ZCL_CE_D425_INVOICES_98 no editor de classes ABAP da seguinte forma:
Selecione o ícone Abrir objeto de desenvolvimento ABAP na barra de ferramentas do Eclipse ou pressione Ctrl+Shift+A. No diálogo Abrir objeto de desenvolvimento ABAP que é exibido, insira ZCL_CE_D425_INVOICES_98 como cadeia de pesquisa. Em seguida, selecione ZCL_CE_D425_INVOICES_98 na área Itens correspondentes e selecione OK.
Na solução modelo ZCL_CE_D425_INVOICES_98, marque o código da implementação de método if_rap_query_provider~select e, em seguida, copie o mesmo (por exemplo, via CTRL+C).
CLASS zcl_ce_d425_invoices_98 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
...
METHODS get_invoices
IMPORTING
it_filter_cond TYPE if_rap_query_filter=>tt_name_range_pairs OPTIONAL
iv_top TYPE i OPTIONAL
iv_skip TYPE i OPTIONAL
EXPORTING
et_business_data TYPE tt_business_data
RAISING
/iwbep/cx_cp_remote
/iwbep/cx_gateway
cx_web_http_client_error
cx_http_dest_provider_error.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_ce_d425_invoices_98 IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
...
ENDMETHOD.
METHOD get_invoices.
...
ENDMETHOD.
ENDCLASS.
Cole o código copiado na parte de implementação de sua classe ZCL_CE_D425_INVOICES_##. Certifique-se de que sua classe agora tenha o seguinte aspecto:
Code Snippet
12345678910111213141516171819202122232425
CLASS zcl_ce_d425_invoices_## DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
INTERFACES if_rap_query_provider.
...
.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_ce_d425_invoices_## IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
...
ENDMETHOD.
METHOD get_invoices.
...
ENDMETHOD.
ENDCLASS.
Ative sua classe ZCL_CE_D425_INVOICES_##.
Para ativar a classe, você pode usar o atalho do teclado Ctrl+F3.
Como expor a entidade personalizada por meio da definição de serviço e integrá-la como entradas possíveis na aplicação base
Para as etapas e dados desta demonstração, consulte o exercício Expor a entidade personalizada por meio da definição de serviço e integrá-la como entradas possíveis na aplicação base.
Expor a entidade personalizada por meio da definição de serviço e integrá-la como entradas possíveis na aplicação base
Neste exercício, você exporá a entidade personalizada criada e implementada anteriormente por meio do serviço OData da aplicação base. Para isso, você adiciona a entidade personalizada à definição de serviço correspondente. Em seguida, você utilizará a entidade personalizada na aplicação de base para fornecer entradas possíveis para faturas de cliente. Por fim, você testará a aplicação usando a visualização do app de elementos do SAP Fiori.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Solução modelo:
ZUI_425_COMPLAINT98_O4 (definição de serviço)
ZC_425_COMPLAINT98 (visão de projeção CDS)
Etapas
Exponha sua entidade personalizada ZCE_D425_INVOICES_## por meio da definição de serviço ZUI_425_COMPLAINT##_O4 adicionando a seguinte instrução à definição de serviço:
Code Snippet
1
expose ZCE_D425_INVOICES_## as Invoice;
Se ainda não tiver feito isso, você pode abrir a definição de serviço ZUI_425_COMPLAINT##_O4 no editor da seguinte forma:
Selecione o ícone Abrir objeto de desenvolvimento ABAP na barra de ferramentas do Eclipse ou pressione Ctrl+Shift+A. No diálogo Abrir objeto de desenvolvimento ABAP que é exibido, insira ZUI_425_COMPLAINT##_O4 como cadeia de pesquisa. Em seguida, selecione ZUI_425_COMPLAINT##_O4 na área Itens correspondentes e selecione OK.
Adicione a instrução acima à definição de serviço. Certifique-se de que a definição de serviço tem o seguinte aspecto:
Code Snippet
1234
define service ZUI_425_COMPLAINT##_O4 {
expose ZC_425_COMPLAINT## as Complaint;
}
Ative suas modificações.
Para ativar a definição de serviço, você pode utilizar o atalho do teclado Ctrl+F3.
Agora defina sua entidade personalizada ZCE_D425_INVOICES_## como entradas possíveis para o campo InvoiceID na aplicação de base adicionando a seguinte anotação a este campo na visão de projeção ZC_425_COMPLAINT##:
A anotação additionalBinding garante que os valores dos campos CustomerID e CustomerName na aplicação de base são copiados para o diálogo de entradas possíveis quando as entradas possíveis são chamadas. De modo correspondente, quando uma fatura de cliente é selecionada nas entradas possíveis, esses campos são preenchidos com os valores dos campos com os mesmos nomes das entradas possíveis.
Se ainda não tiver feito isso, você pode abrir a visão de projeção ZC_425_COMPLAINT## no editor da seguinte forma:
Selecione o ícone Abrir objeto de desenvolvimento ABAP na barra de ferramentas do Eclipse ou pressione Ctrl+Shift+A. No diálogo Abrir objeto de desenvolvimento ABAP que é exibido, insira ZC_425_COMPLAINT## como cadeia de pesquisa. Em seguida, selecione ZC_425_COMPLAINT## na área Itens correspondentes e selecione OK.
Adicione a anotação acima ao campo InvoiceID na visão de projeção. Certifique-se de que a visão de projeção tem o seguinte aspecto:
Para ativar a visão de projeção, você pode utilizar o atalho do teclado Ctrl+F3.
Por fim, teste as entradas possíveis. Para isso, abra a visualização do app de elementos SAP Fiori para o conjunto de entidades Reclamação. Crie uma nova reclamação no app e chame as entradas possíveis agora disponíveis para o campo ID da fatura na página do objeto.
Abra a ligação de serviço ZUI_425_COMPLAINT##_O4 no editor se ainda não estiver aberta.
Selecione o conjunto de entidades Reclamação na seção Conjunto de entidades e associação do editor de ligação de serviço.
Nota
Além do conjunto de entidades Reclamação, o conjunto de entidades Fatura agora também é exibido nesta seção.
Selecione Visualizar....
Nota
Se você não estiver conectado automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com exibido na página do navegador exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione o botão Efetuar logon para efetuar o logon no sistema ABAP.
No app exibido, selecione Criar.
Na página do objeto, clique no ícone de entradas possíveis exibido para o campo ID da fatura para abrir as entradas possíveis.
Resultado
O diálogo de entradas possíveis é aberto exibindo as faturas de cliente selecionadas a partir do sistema SAP S/4HANA on-premise na tabela Itens.
Selecione uma fatura na tabela Itens.
Resultado
O registro selecionado é transferido para a página do objeto, ou seja, os campos ID da fatura, ID do cliente e Nome do cliente são preenchidos com os valores correspondentes.
Integração do launchpad do SAP Fiori
Para disponibilizar a aplicação no ambiente ABAP do SAP BTP por meio do launchpad do SAP Fiori, as seguintes etapas devem ser implementadas: primeiro, é criada uma aplicação Página de objeto do list report utilizando o SAP Business Application Studio. Esta aplicação é implementada para a instância de serviço ABAP, que, entre outras coisas, cria um item de descritor de app Fiori Launchpad no ambiente ABAP.
Subsequentemente, é criado um app IAM via ADT, ao qual o item do descritor do app Fiori Launchpad está atribuído. Em seguida, é criado um catálogo empresarial IAM no ADT, ao qual, por sua vez, é atribuído o app IAM.
Por fim, uma função empresarial é criada por meio do launchpad do SAP Fiori, ao qual o catálogo empresarial IAM criado anteriormente é adicionado. Além disso, os usuários na empresa que devem ter acesso à aplicação também são adicionados à função na empresa.
Depois de isso ter sido configurado de modo correspondente, os usuários autorizados podem abrir a aplicação mediante o App Finder no launchpad do SAP Fiori.
Como criar uma aplicação de elementos SAP Fiori com base no serviço OData desenvolvido no SAP Business Application Studio
Para as etapas e os dados desta demonstração, consulte o exercício Criar um aplicativo de elementos do SAP Fiori com base no serviço OData desenvolvido no SAP Business Application Studio.
Criar uma aplicação de elementos SAP Fiori com base no serviço OData desenvolvido no SAP Business Application Studio (opcional)
Nos exercícios anteriores, você criou um aplicativo para gerenciar reclamações do cliente no ambiente ABAP do SAP BTP. Nesta aplicação, você integrou entradas possíveis por meio de uma ampliação lado a lado que obtém os respectivos dados por meio de um serviço OData chamado no sistema SAP S/4HANA On-Premise utilizado nesta classe.
A interface do usuário da aplicação foi disponibilizada até o momento por meio de uma visualização do app de elementos SAP Fiori, que pode ser chamada a partir das ferramentas de desenvolvimento ABAP para SAP NetWeaver. Os exercícios a seguir agora se concentrarão em criar a interface do usuário para a aplicação usando o SAP Business Application Studio e, em seguida, implementá-la no ambiente ABAP do SAP BTP.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Nota
Os dados a seguir são necessários no exercício para conectar o SAP Business Application Studio ao Cloud Foundry. Ele será fornecido pelo seu instrutor:
Endereço de e-mail
Senha
Organização
Etapas
Abra seu espaço de desenvolvimento S4D425_## no SAP Business Application Studio. Execute o comando CF: Login no Cloud Foundry para conectar o SAP Business Application Studio ao Cloud Foundry.
Abra o SAP Business Application Studio utilizando o URL que você recebeu de seu instrutor.
Se você não tiver efetuado logon automaticamente, selecione o link <xxxxxxxxx>.accounts.ondemand.com que aparece na página do browser exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione o botão Logon para efetuar o logon no SAP Business Application Studio.
Resultado
O Dev Space Manager é exibido no navegador.
Certifique-se de que seu espaço de desenvolvimento esteja no estado EM EXECUÇÃO. Se não estiver, inicie-o.
Clique no nome S4D425_## de seu espaço de desenvolvimento assim que ele estiver no estado EM EXECUÇÃO.
Resultado
O SAP Business Application Studio é aberto em seu espaço de desenvolvimento SAP FioriS4D425_##.
No menu SAP Business Application Studio, selecione o caminho Visualizar→paleta de comandos.
Na paleta exibida, procure o comando CF: Login no Cloud Foundry e selecione-o.
Resultado
O assistente para logon Cloud Foundry foi iniciado.
Na etapa de ponto de acesso Inserir Cloud Foundry, confirme o URL exibido com ENTER.
Na etapa Inserir endereço de e-mail, insira o endereço de e-mail fornecido pelo instrutor e confirme sua entrada com ENTER.
Na etapa Inserir senha, insira a senha fornecida pelo instrutor e confirme sua entrada pressionando ENTER.
Na próxima etapa, selecione a Organização fornecida pelo instrutor.
Na etapa Selecionar espaço, selecione o Espaço chamado dev. exibido.
Resultado
Você está agora conectado ao Cloud Foundry, Organização e Espaço foram definidos.
Agora, crie um aplicativo SAP Fiori utilizando a planta baixa List Report Page no SAP Business Application Studio. A aplicação deve ser baseada no seu serviço OData desenvolvido no ADT. Para isso, use os seguintes valores nas respectivas etapas do assistente:
Você pode pesquisar seu número de ordem de transporte da seguinte forma:
Para Como você deseja inserir a ordem de transporte, selecione Selecionar a partir de existente.
Em seguida, no campo Ordem de transporte, selecione por meio do menu drop-down sua solicitação ADT (por exemplo, H01K900008).
Nota
A configuração de implementação pode ser editada após a criação do projeto por meio do arquivo ui5-deploy.yaml no diretório do projeto.
Configuração do launchpad do SAP Fiori
Objeto semântico
Reclamação
Ação
gerenciar##
Título
Administrar reclamações
Subtítulo (opcional)
Estudante ##
Nota
A configuração do launchpad do SAP Fiori pode ser processada após a criação do projeto por meio do arquivo webapp/manifest.json no diretório de projetos.
Selecione Arquivo→Novo projeto do modelo no menu SAP Business Application Studio.
No assistente Projeto a partir do modelo que é exibido, selecione o bloco da aplicação SAP Fiori e selecione Iniciar.
Na etapa Seleção de planta, selecione Aplicação SAP Fiori como Tipo de aplicação, selecione o bloco Página de relatório de lista e pressione Seguinte.
Na etapa Fonte de dados e seleção de serviços, insira os valores da tabela correspondente acima e selecione Seguinte.
Na etapa Seleção de entidade, insira o valor da tabela correspondente acima e selecione Seguinte.
Na etapa Atributos do projeto, insira os valores da tabela correspondente acima e selecione Seguinte.
Na etapa Configuração de implementação, insira os valores da tabela correspondente acima e selecione Seguinte.
Na etapa Configuração do launchpad do Fiori, insira os valores da tabela correspondente acima e selecione Concluir.
Resultado
Seu projeto de elementos do SAP Fiori é gerado e salvo para uso futuro.
Abra o projeto s4d425_complaint_## que você acabou de criar em uma área de trabalho.
Selecionar arquivo→Abrir área de trabalho...no menu do SAP Business Application Studio.
Na caixa de diálogo Abrir área de trabalho exibida, selecione a pasta s4d425_complaint_## e selecione Abrir.
Resultado
O projeto s4d425_complaint_## é aberto no SAP Business Application Studio.
No próximo exercício, você implementará o aplicativo de elementos do SAP Fiori que acabou de criar no ambiente ABAP do SAP BTP. Antes disso, teste a aplicação nesta última etapa no SAP Business Application Studio.
Clique com o botão direito do mouse na pasta webapp em seu projeto s4d425_complaint_## e selecione Visualizar aplicativo no menu de contexto que é exibido.
Na paleta Opções de visualização, selecione iniciar (execução do Fiori …) no diálogo que é exibido.
Resultado
A aplicação será agora exibida em uma nova ficha de registro. A interface do usuário deve ser semelhante à exibida por meio da visualização do app de elementos SAP Fiori no ADT.
Pressione Ir na página Relatório de lista exibida para visualizar os registros existentes.
Selecione um registro da tabela para exibir a página do objeto associada.
Como implementar a aplicação de elementos do SAP Fiori no ambiente ABAP do SAP BTP
Para as etapas e os dados desta demonstração, consulte o exercício Implementar o aplicativo de elementos do SAP Fiori no ambiente ABAP do SAP BTP.
Implementar a aplicação de elementos do SAP Fiori no ambiente ABAP do SAP BTP (opcional)
Neste exercício, você implementará o aplicativo de elementos do SAP Fiori criado no SAP Business Application Studio no ambiente ABAP do SAP BTP. Em seguida, você verificará na ADT os objetos de desenvolvimento que foram criados pela implementação para o ambiente ABAP SAP BTP.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Etapas
Implemente seu projeto s4d425_complaint_## do SAP Business Application Studio para o ambiente ABAP do SAP BTP. Para fazer isso, use o comando npm run deploy no terminal.
Selecione Terminal→Novo terminal no menu SAP Business Application Studio.
No prompt de comando no terminal, insira o comando npm run deploy e pressione ENTER:
Code Snippet
1
user: s4d425_complaint_## $
Nota
Certifique-se de que o terminal está aberto no diretório de projetos. O caractere $ deve ser precedido pelo usuário: s4d425_complaint_##.
Quando solicitado, confirme a configuração de implementação exibida e pressione y.
Resultado
A implementação no ambiente ABAP do SAP BTP é agora executada. No final do processo de implementação, você deve ver a mensagem Implementação com êxito no terminal.
Vários objetos de desenvolvimento foram criados no ambiente ABAP do SAP BTP por meio da implementação. Os dois objetos a seguir são particularmente importantes para o próximo exercício: O aplicativo SAPUI5 real foi armazenado como um aplicativo BSP com o nome Z_COMPLAINT_##. A configuração para integrar a aplicação no launchpad do SAP Fiori, por outro lado, foi gravada em um chamado item de descritor de app do launchpad do Fiori com o nome Z_COMPLAINT_##_UI5R.
Verifique se esses dois objetos de desenvolvimento são exibidos no ADT em seu pacote. Para isso, atualize primeiro a exibição do seu pacote no ADT.
Nota
Nem a aplicação BSP nem o item Descritor de aplicação do launchpad do SAP Fiori podem ser abertos no ADT.
Clique com o botão direito do mouse em ADT em seu pacote ZS4D425_##_CLD e selecione Atualizar no menu de contexto que é exibido. Como alternativa, você também pode utilizar a tecla de função F5.
A aplicação BSP Z_COMPLAINT_## deve agora ser exibida no seguinte nó em seu pacote: ZS4D425_##_CLD→BSP Library→BSP Applications.
O item de descritor de aplicação do launchpad do Fiori Z_COMPLAINT_##_UI5R deve aparecer no seguinte nó em seu pacote: ZS4D425_##_CLD→Fiori Launchpad App Descr Items.
Como integrar a aplicação de elementos do SAP Fiori no launchpad do SAP Fiori do ambiente ABAP do SAP BTP
Para as etapas e os dados desta demonstração, consulte o exercício Integrar o aplicativo de elementos do SAP Fiori no launchpad do SAP Fiori do ambiente ABAP do SAP BTP.
Integrar a aplicação de elementos do SAP Fiori no launchpad do SAP Fiori do ambiente ABAP do SAP BTP (opcional)
Neste exercício, você integrará o aplicativo de elementos do SAP Fiori que implementou no ambiente ABAP do SAP BTP no último exercício no launchpad do SAP Fiori. Para isso, você criará primeiro um app IAM no ADT. Para configurar o app IAM, você irá inserir o item de descritor de app do launchpad do SAP Fiori para a sua aplicação nas características do app IAM. Em seguida, você criará um catálogo empresarial IAM em ADT, ao qual você adicionará o app IAM por meio de um chamado app IAM à atribuição de catálogo. Em seguida, depois de publicar o app IAM e o catálogo empresarial IAM localmente, você criará finalmente uma função empresarial mediante o launchpad do SAP Fiori (do serviço Cloud ABAP) e atribuirá o catálogo empresarial IAM e o seu usuário à mesma.
Nota
Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.
Etapas
No ADT, crie um app IAM com o nome ZD425_COMPLAINT_IAM_## e a descrição Reclamação app IAM.
Nota
O ambiente de desenvolvimento anexa automaticamente o sufixo _EXT ao nome do app IAM.
Atribua seu item de descritor de app do launchpad do SAP Fiori existente Z_COMPLAINT_##_UI5R ao app IAM.
Não se esqueça de salvar suas modificações.
No ADT, clique com o botão direito do mouse em seu pacote ZS4D425_##_CLD e selecione Novo→outro objeto do repositório ABAP.
No diálogo que é aberto, procure o app IAM, selecione-o e clique em Seguinte.
Insira ZD425_COMPLAINT_IAM_## como Nome e Reclamação do app IAM como Descrição. Certifique-se de que EXT - External App esteja selecionado como Application Type e pressione Next.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou em um exercício anterior e selecione Concluir.
Resultado
O app IAM é gerado e exibido no editor.
No campo ID do item de descrição do app do launchpad do Fiori, insira o valor Z_COMPLAINT_##_UI5R.
Nota
Você pode utilizar entradas possíveis para isso no campo, que podem ser chamadas por meio de Ctrl+Espaço.
Por fim, grave o app IAM.
Publique seu app IAM ZD425_COMPLAINT_IAM_##_EXT localmente.
Certifique-se de que seu app IAM ZD425_COMPLAINT_IAM_##_EXT seja exibido no editor.
Selecione Publicar localmente no canto superior direito do editor.
Agora, crie um catálogo empresarial IAM com o nome ZD425_COMPLAINT_BC_## e a descrição Catálogo empresarial IAM de reclamações ##. Adicione seu app IAM ZD425_COMPLAINT_IAM_##_EXT a este catálogo.
Nota
Para esta etapa, utilize o link Criar um novo catálogo empresarial e atribua o app a ele, que é exibido no editor para seu app IAM ZD425_COMPLAINT_IAM_##_EXT.
Certifique-se de que seu app IAM ZD425_COMPLAINT_IAM_##_EXT seja exibido no editor.
Clique no link Criar um novo catálogo empresarial e atribua o app a ele.
No diálogo Catálogo empresarial que é aberto, insira o nomeZD425_COMPLAINT_BC_## e a descriçãoCatálogo empresarial IAM de reclamações ## e pressione Seguinte.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou em um exercício anterior e selecione Concluir.
Resultado
O diálogo Atribuição de app de catálogo empresarial é aberto.
Certifique-se de que o diálogo exibe ZD425_COMPLAINT_BC_##_0001 como nome e atribuição do catálogo empresarial ao app IAM como descrição. Em seguida, pressione Seguinte.
Na etapa Seleção de ordem de transporte, certifique-se de que a opção Selecionar de ordens nas quais estou envolvido esteja selecionada. Selecione a ordem de transporte que você criou em um exercício anterior e selecione Concluir.
Publique localmente seu catálogo empresarial IAM ZD425_COMPLAINT_BC_##.
Certifique-se de que seu catálogo empresarial IAM ZD425_COMPLAINT_BC_## é exibido no editor.
Selecione Publicar localmente no canto superior direito do editor.
Agora abra a aplicação Atualizar funções empresariais por meio do launchpad do SAP Fiori do SAP BTP, ambiente ABAP. Crie uma nova função empresarial com o ID da função empresarial ZD425_BR_## e a descrição da função empresarial S4D425 Estudante ##.
Adicione seu catálogo empresarial IAM ZD425_COMPLAINT_BC_## e seu usuário na empresa à função empresarial recém-criada.
Nota
Para obter detalhes sobre o usuário empresarial atribuído a você, entre em contato com seu instrutor.
Clique com o botão direito do mouse em seu ABAP Cloud Project no Explorador de projetos e selecione Propriedades no menu de contexto que é exibido.
Na caixa de diálogo que é aberta, selecione Desenvolvimento ABAP no lado esquerdo e, em seguida, clique no URL do sistema que é exibido no lado direito.
Se você não estiver conectado automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com na página exibida no navegador para efetuar o logon. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione Efetuar logon para efetuar o logon no sistema ABAP.
Agora, selecione o bloco Atualizar funções empresariais na página Gerenciamento de identidade e acesso (na área Administração).
Na aplicação Atualizar funções na empresa que é exibida, selecione Novo na barra de rodapé.
No diálogo Nova função empresarial, insira ZD425_BR_## como ID da função empresarial e S4D425 Estudante ## como Descrição da função empresarial. Em seguida, selecione Criar.
Na página exibida, selecione a guia Catálogos empresariais atribuídos.
Selecione Adicionar na guia Catálogos empresariais atribuídos.
No diálogo Adicionar catálogos empresariais, procure seu catálogo empresarial ZD425_COMPLAINT_BC_## (Catálogo empresarial IAM de reclamações ##), selecione-o e pressione OK.
Agora, mude para a aba Usuários empresariais atribuídos.
Pressione Adicionar na guia Usuários na empresa atribuídos.
No diálogo Adicionar usuários na empresa, procure seu usuário na empresa, selecione-o e pressione OK.
Na guia Detalhes gerais da função, defina o valor Sem restrição para o campo Categorias de acesso→Escrever, Ler, Entradas possíveis. Para o campo Ler, as entradas possíveis também definem o valor De utilização livre.
Por fim, grave sua função empresarial utilizando o botão Gravar. Confirme o popup que pode aparecer pressionando OK.
Por fim, adicione a aplicação de elementos do SAP Fiori à página Administração de comunicação do espaço Administração do launchpad do SAP Fiori e teste a aplicação a partir do launchpad.
Nota
Para garantir que a configuração da função empresarial que você acabou de executar esteja ativa no sistema, pode ser necessário atualizar primeiro o launchpad do SAP Fiori no browser.
Abra o Menu de ações do usuário por meio do botão no canto superior direito do launchpad do SAP Fiori e selecione a entrada Editar página atual.
Para o grupo Gerenciamento de comunicação, selecione a função Adicionar seção.
Para a nova seção, aplique S4D425 Funções como título. Mova a seção para cima até o topo.
Selecione Adicionar bloco em sua nova seção.
No lado esquerdo do App Finder, selecione seu catálogo empresarial Catálogo empresarial IAM de reclamações ##.
Resultado
No lado direito da tela, você verá agora o bloco Administrar reclamações - Estudante ##.
Clique no alfinete no canto inferior direito do bloco.
Agora, selecione Página inicial (o ícone SAP) no menu de navegação para retornar à página Processar página atual.
Selecione Voltar para retornar à página inicial.
Selecione o bloco Administrar reclamações - Aluno ## para iniciar a aplicação.
Na página Report de lista exibida, selecione Ir para visualizar os registros disponíveis.
Selecione um registro da tabela para chamar a página do objeto correspondente.