Olá, bem-vindo ao nosso curso openSAP, Introdução ao ABAP na nuvem. Meu nome é Quincy Anderson
e sou instrutor da SAP Product Learning Organization. Esta é a unidade um, Conceitos básicos da SAP
Business Technology Platform. Vamos começar examinando todas as unidades que cobriremos esta
semana. Começamos com a unidade um, conceitos básicos. E então de lá vamos para a unidade dois e
aprendemos sobre o que é o ambiente de nuvem da plataforma ABAP. A partir daí, na unidade três,
damos uma olhada no modelo de programação ABAP RESTful. A seguir, na unidade quatro, damos uma
olhada no Extension Suite. Na unidade cinco, examinamos as possibilidades de extensão com SAP S /
4HANA. E, finalmente, na unidade seis, vemos uma demonstração sobre como criar extensões lado a
lado. Com isso, vamos começar. Nossa primeira pergunta é, o que exatamente é SAP Business
Bem, antes de mais nada, é uma plataforma. Então o que isso significa? Bem, nós como
aplicativos são usados por usuários finais, e é aí que o valor é criado. Portanto, no final das contas, o
objetivo do BTP é criar valor. Ele faz isso oferecendo um portfólio integrado de ferramentas, serviços e
segundo é o desenvolvimento e integração de aplicativos. Esta é a área onde o ABAP reside. O terceiro é
a análise. Um produto nesta área é SAP Analytics Cloud. E finalmente, a BTP tem uma área de
tecnologias inteligentes, que tem, por exemplo, aprendizado de máquina e inteligência artificial. Como
diz o ditado, o todo é maior do que a soma das partes. Um portfólio integrado completo de inovações
tecnológicas nos permite, como desenvolvedores, transformar dados em valor de negócios, compor
processos ponta a ponta, e construir e estender aplicativos SAP de forma rápida e fácil. A funcionalidade
BTP é disponibilizada para nós como desenvolvedores por meio de um conceito conhecido como conta.
Existem duas camadas de contas, contas globais e subcontas. Contas globais representam a relação
contratual entre as organizações para as quais trabalhamos e a SAP. É nas contas globais que os direitos
à funcionalidade e cotas relacionadas a computação, memória e outras coisas são definidas. Esses
direitos e cotas são então alocados para uma ou mais subcontas, e é nesse nível que nós, como
desenvolvedores, trabalharemos. Isso nos leva à nossa captura de tela aqui, onde vemos o cockpit do
SAP BTP mostrando uma subconta chamada trial. O cockpit nos permite acessar e gerenciar a
funcionalidade BTP. Se você der uma olhada no ponto um, mostra a paisagem em que a subconta está
localizada, ou seja, o cenário da casa de teste, que é um data center em nuvem localizado na região da
Europa central . O ponto dois mostra o identificador da conta global, e o ponto três mostra o ID da
subconta, que é experimental neste caso. Os marcadores quatro e cinco mostram dois ambientes que
foram habilitados em nossa subconta. Há um total de quatro ambientes de tempo de execução. Um,
Cloud Foundry. Dois, ABAP. Três, Kyma. E quatro, SAP BTP disponíveis. Quatro mostra informações
relevantes para Cloud Foundry, e cinco também para Kyma. ABAP e Serverless não são visíveis nesta
parte do cockpit, mas estão localizados em áreas diferentes. Agora, se você olhar para a esquerda,
segurança, onde os usuários podem ser mantidos, conectividade, que pode ser usado para configurar
conexões com sistemas externos, e análise de uso para relatórios. Um recurso de manutenção específico
que gostaria de chamar sua atenção é o Service Marketplace, onde todas as ferramentas BTP, serviços e
tempos de execução possíveis que você pode utilizar estão listados. Se você decidir utilizar uma
determinada ferramenta, serviço ou tempo de execução, você criará uma instância que ficará visível no
Falando em ferramentas, serviços e ambientes fornecidos pelo BTP, há outro local onde você pode ir
para se quiser navegar por eles. Talvez, por exemplo, você queira obter mais informações antes de fazer
sua compra. Em caso afirmativo, você pode ir para o SAP Discovery Center localizado em
https://discovery-center.cloud.sap.
Aqui você pode ver uma lista de todos os serviços, filtrá-los por tipo e obter links para recursos e
tutoriais para experimentá-los. Portanto, antes de começarmos a olhar para os detalhes do ambiente
ABAP, queremos ver onde ele se encaixa no esquema geral das coisas. Você lembra que mencionamos
no início que uma das áreas de capacidade do BTP é o desenvolvimento e integração de aplicativos.
Olhando para esta tela, vemos as ofertas específicas nesta área. Começando do topo, vemos serviços de
negócios, aplicativos e extensões que fornecem valor e que nós, como desenvolvedores, somos
chamados a criar. A criação desse valor é feita por meio de uma variedade de serviços. Os serviços
relacionados à integração de aplicativos são agrupados como serviços de integração, que vemos à
direita e a mão esquerda, respectivamente. Às vezes, os serviços de extensão são chamados de como
Extension Suite e, da mesma forma, os serviços de integração são chamados de Integration Suite.
Movendo uma camada abaixo, vemos quatro categorias de serviços de suporte para aplicativos, ou seja,
serviços de segurança para itens como autenticação e autorização que nossos aplicativos podem exigir.
Serviços de aplicativos, quando nossos aplicativos precisam de destinos de conexão para sistemas
precisarem acionar alertas no caso de um erro ou gravar informações em um arquivo de log para ajudar
no suporte para resolver tíquetes de serviço. E, finalmente, serviços de apoio para recursos externos,
como um banco de dados remoto que os aplicativos podem precisar acessar. A próxima camada são os
serviços básicos, que são fornecidos pela BTP, para facilitar a compra e o fornecimento de serviços, bem
como a habilitação e o gerenciamento de contas. Também nesta camada estão os quatro ambientes de
tempo de execução, consistindo em Cloud Foundry, ABAP, Kyma e Serverless. As camadas finais lidam
com serviços de rede de baixo nível que os aplicativos precisam para se comunicar com outros recursos,
bem como para fornecer um meio de comunicação. Seus aplicativos Fiori, por exemplo, são acessíveis
por meio de uma URL que um usuário final pode colocar em um navegador. Finalmente, para aplicativos
necessário, fornecido pelo Kubernetes. É importante entender que tudo o que você vê aqui é usado
para apoiá-lo como desenvolvedor no desenvolvimento de seu aplicativo e para dar suporte aos
aplicativos que você desenvolverá quando eles forem implantado e está sendo usado. Eu Também é
importante saber que o que você vê na tela atual atualmente é referido, às vezes, como Platform as a
Service, ou PaaS. A razão disso é importante por causa da próxima tela. O que você vê nesta tela é
aplicativos reais e virtualizados precisam. Para permitir a escolha do cliente, a camada IaaS
normalmente é oferecida e gerenciada por nossos parceiros IaaS, ou seja, Amazon, Google e Microsoft.
Nós, como SAP, assumimos a responsabilidade pela oferta e gerenciamento da camada BTP ou PaaS.
Como resultado, ao configurar uma nova subconta, você deve escolher um parceiro IaaS junto com uma
região geográfica, que contém um data center onde essa subconta estará localizada . Ok, nós
conseguimos. Em nossa próxima unidade, veremos em detalhes o ambiente de execução SAP BTP ABAP.
Esta é a unidade dois, Introdução ao SAP BTP, ambiente ABAP. Antes de começar, uma rápida
recapitulação da unidade um, Conceitos básicos da SAP Business Technology Platform. Na unidade um,
torno de quatro áreas de capacidade. Número um, banco de dados e gerenciamento de dados. Dois,
vimos que o ambiente BTP, ABAP é um dos quatro ambientes de tempo de execução baseados em
nuvem oferecidos como parte da área de desenvolvimento e integração de aplicativos. Por fim,
aprendemos que, como desenvolvedores, podemos criar valor para nossas organizações utilizando o
ambiente BTP e ABAP para criar serviços de negócios, aplicativos e extensões. Com isso, vamos começar.
O que vemos aqui nesta tela é a visão da SAP da Empresa Inteligente. Como sempre, a criação de valor
para você, nossos clientes, está na frente e no centro do que fazemos. Então, como o valor é criado
aqui? Primeiro, vemos no ponto um, a suíte inteligente. A suíte inteligente compreende o escopo
completo de ofertas funcionais que o portfólio SAP oferece. Por exemplo, na área de experiência do
cliente, temos SAP Sales Cloud. Na área de gerenciamento de rede e gastos, temos a Ariba. Na área de
núcleo digital, temos SAP S / 4HANA. Os marcadores dois e três compõem o portfólio BTP - tecnologia
inteligente, como aprendizado de máquina e inteligência artificial em relação ao marcador dois, e
relação ao ponto três. Como dissemos na unidade um, o todo é maior do que a soma de suas partes.
Quando você pega o pacote inteligente junto com o BTP, valor é criado para nossos clientes ao sermos
capazes de implementar processos completos de ponta a ponta, como lead-to-cash, recrutar para -
retirar e adquirir para pagar. Como mencionado anteriormente, o ambiente BTP e ABAP nos permite,
como desenvolvedores, criar valor criando serviços de negócios, aplicativos e extensões. Nesta tela,
vemos como BTP, ambiente ABAP e SAP S / 4HANA se unem no que diz respeito ao desenvolvimento de
extensões. Agora, primeiro, o que exatamente é uma extensão? Bem, isso é super fácil de entender.
Uma extensão simplesmente adiciona recursos e funcionalidades adicionais. Com SAP S / 4HANA, as
extensões podem ser implementadas de duas maneiras: extensões no aplicativo, que vemos à esquerda,
e extensões lado a lado, que vemos à direita . As extensões no aplicativo são feitas diretamente no SAP S
/ 4HANA usando ferramentas específicas dedicadas para esse fim. As extensões no aplicativo são
simples, fáceis, e não causam interrupções em seu escopo, e normalmente são feitas por usuários no
tipos de extensões no aplicativo que podem ser feitas. Novos campos podem ser criados, nova lógica de
negócios pode ser implementada, adaptações de interface do usuário também podem ser feitas.
Extensões que são muito maiores em seu escopo envolvendo lógica de negócios complexa, extenso
design e desenvolvimento de IU, e que precisam de verificações, testes e depuração de código são feitas
usando extensões lado a lado. Extensões lado a lado são implementadas e executadas no BTP e são
desacopladas do S / 4HANA. Várias ferramentas, serviços e tempos de execução podem ser utilizados,
como SAP HANA para construir a lógica do banco de dados, BTP, ambiente ABAP utilizando o modelo de
programação RESTful ABAP para construir o aplicativo lógica e Business Application Studio para
construir a lógica da IU. Então, como o BTP, o ambiente ABAP é necessário para implementar extensões
lado a lado, vamos dar uma olhada nisso agora. Então, o que exatamente é BTP, ambiente ABAP? Bem,
isso também é super fácil. O ambiente BTP e ABAP nos permite, como desenvolvedores, construir e
executar código ABAP na nuvem. É otimizado para nuvem e baseado em uma instância SAP HANA. Se
você quiser pensar nisso como uma plataforma como serviço ABAP, PaaS, tudo bem, sinta-se à vontade
para fazê-lo. Ele passa pelo Cloud Foundry e é gerenciado usando o cockpit do BTP. O trabalho de
extensões lado a lado, bem como o desenvolvimento de novos aplicativos, é possível. Muitos de vocês,
quando pensam em ABAP, pensam no ABAP clássico usado em nossos produtos locais. No entanto, a
adição de BTP, ambiente ABAP requer algumas novas terminologias que temos que aprender. Existem
agora duas versões do ABAP. A primeira versão é um clássico ABAP. ABAP clássico é usado em nossos
produtos no local, incluindo SAP S / 4HANA no local. A segunda versão é estrita ABAP. ABAP estrito é
usado em ambiente BTP, ABAP e, adicionalmente, SAP S / 4HANA Cloud, ambiente ABAP. O ABAP estrito
tem três regras que diferem do ABAP clássico, que nos leva à tela atual. Um, o acesso a objetos de
repositório é regido por uma lista de APIs lançadas que é verificada estaticamente em tempo de
compilação, bem como durante o tempo de execução. Dois, apenas as Ferramentas de Desenvolvimento
ABAP, ADT, como parte da plataforma Eclipse, podem ser usadas como sua ferramenta de
desenvolvimento. SAP GUI não pode ser usado. E, finalmente, três, o conjunto de palavras-chave da
linguagem ABAP é restrito em comparação com o clássico ABAP. Quase todas as palavras-chave
obsoletas não são permitidas e regras de sintaxe e verificações mais rígidas são aplicadas a todos os
elementos, incluindo classes ABAP e ABAP SQL. Nesta tela, vemos alguns exemplos das restrições no
ABAP estrito. Primeiro, conexões de banco de dados secundárias não são permitidas. Portanto, as
palavras-chave relativas não são suportadas e resultarão em um erro de sintaxe se usadas. Da mesma
forma, para conexões dinâmicas, substitui o cliente e selecione para atualização. Existem dois cenários
para BTP, ambiente ABAP, que são fábrica e teste. O Factory é licenciado para fins de desenvolvimento e
produção, enquanto o teste é gratuito e é mais usado para aprendizado e desenvolvimento, uma
espécie de cenário "experimente antes de comprar". No cenário de fábrica, existem várias opções de
disponível gratuitamente, nenhum acordo de licença é necessário. Em ambos os cenários, sua instância
de ambiente BTP, ABAP, que é conhecida como instância de serviço ABAP, é configurada em um espaço
Cloud Foundry, que faz parte do ambiente Cloud Foundry em uma subconta. Os usuários podem então
ser mantidos para fazer logon em uma instância de serviço ABAP. Esses usuários podem ser um usuário
BTP, usuário de subconta, usuário de espaço, funcionário ou um usuário empresarial. Nesta tela, vemos
a conta global, a subconta, o espaço e a instância do serviço ABAP que foi habilitada. Este exemplo está
no cenário de teste. No canto superior esquerdo, vemos o julgamento casa, que é a paisagem. A conta
global está localizada imediatamente à direita, e a subconta, que é chamada de teste, é a última.
Olhando abaixo disso, no meio da tela, você vê uma instância de serviço ABAP que foi habilitada dentro
do espaço de desenvolvimento, que faz parte do ambiente de tempo de execução do Cloud Foundry.
Para criar uma conta no cenário de teste, você pode ir para https://cockpit.hanatrial.ondemand.com,
como você vê nesta tela. Você precisará de um endereço de e-mail e um número de telefone que ainda
não estejam associados a outra conta BTP. Como parte da criação da conta BTP, o endereço de e-mail
usado se tornará um usuário padrão da conta e pode ser usado para fazer logon na instância do serviço
ABAP. Usuários adicionais podem ser criados como você vê aqui nesta tela. Conforme mencionado
anteriormente, uma das características do ambiente BTP, ABAP, é que o trabalho de desenvolvimento é
feito usando o Eclipse com o plugin de Ferramentas de Desenvolvimento ABAP conhecido como ADT. Ao
conectar-se à instância do serviço ABAP usando ADT pela primeira vez, você escolherá SAP BTP,
ambiente ABAP, conforme mostrado na tela à sua esquerda. Posteriormente, você colocará no endpoint
exclusivo da API da região, sua conta BTP, junto com o endereço de e-mail e senha de qualquer usuário
BTP associado à conta BTP, conforme mostrado em o meio. Depois de autenticar com êxito, as
informações relevantes da instância do serviço Cloud Foundry e ABAP aparecem conforme mostrado na
última caixa no canto inferior direito. Muitos de vocês estão acostumados a usar o ABAP Workbench
para fazer seu trabalho de desenvolvimento. No entanto, conforme mencionado anteriormente com
BTP, ambiente ABAP, ADT é usado para executar suas tarefas de desenvolvimento. O ADT contém tudo
o que você precisa para dar suporte ao ciclo de vida completo de ponta a ponta. Tanto o Eclipse quanto
direito. O ADT pode ser atualizado separadamente do próprio Eclipse. A versão mais recente é 3.20.
Como com todos os produtos de software, cada versão terá aprimoramentos e novos recursos. Os
próximos slides mostram alguns dos aprimoramentos e recursos que acompanham os novos
lançamentos do ADT. ao longo dos anos. Nesta tela, vemos com as versões 2.51 e 2.64, correspondentes
à versão 7.50 da plataforma ABAP, temos um novo editor de estrutura baseado na fonte, e editor
negócios, bem como editor Web Dynpro. Para ADT 2.68 e 2.73, correspondendo à plataforma ABAP
7.51, temos um editor de domínio baseado em formulário, Project Explorer redesenhado, mais
melhorias no editor CDS e uso aprimorado de breadcrumb. Breadcrumbs são ajudas de navegação muito
úteis quando você está atravessando vários níveis de seus artefatos de desenvolvimento. Eles ajudam a
ver as relações estruturais entre diferentes artefatos. Para a plataforma ABAP 7.52, temos um editor de
ver a saída no console. Para a plataforma ABAP 7.53, como desenvolvedores, podemos implementar
melhorias e modificações e usar o analisador de tempo de execução para analisar erros. Finalmente, e
também para a plataforma ABAP 7.53, podemos criar e editar objetos de bloqueio, bem como ver e
editar solicitações de transporte ABAP. Para concluir a unidade dois, daremos uma olhada em quatro
cenários de amostra onde o ambiente BTP e ABAP pode ser utilizado. Neste primeiro cenário, vemos
que um serviço HTTP externo, que está fornecendo alguns dados ou alguma funcionalidade é
necessário. Observe que o ambiente BTP e ABAP está usando o serviço de identidade e o serviço de
destino para autenticação e conectividade, respectivamente. Aqui podemos realmente ver os benefícios
de uma plataforma integrada. Ferramentas, serviços e tempos de execução trabalhando juntos para o
desenvolvimento de seu aplicativo. Neste segundo cenário, o plugin ABAP Development Tools para
abapGit, que vemos à direita, e um plugin Eclipse, que vemos à esquerda, que é o front end para acessar
essa funcionalidade. Novamente, o plug-in é feito no Eclipse por meio das Ferramentas de
Desenvolvimento ABAP. Essa funcionalidade nos permite, como desenvolvedores, converter nosso
código ABAP e outros artefatos em um formato onde eles podem ser adicionados a um repositório Git.
Uma vez feito isso, todas as operações Git, como pull, push, fetch e assim por diante, podem ser
utilizadas. Neste terceiro cenário, vemos uma extensão lado a lado desenvolvida usando BTP, ambiente
ABAP. O sistema SAP S / 4HANA Cloud está à direita e possui dados de negócios expostos como uma API
OData. E o ambiente BTP, ABAP, representado à esquerda, usa o serviço de destino t o fazer chamadas
para essa API. Além disso, qualquer operação necessária pode ser executada nessa API, como criar, ler
ou atualizar os dados. Um aplicativo baseado em UI5 também pode ser criado e pode ser executado em
um telefone ou tablet. Opcionalmente, o serviço SAP Fiori launchpad pode ser usado para expor esse
aplicativo aos usuários finais. Novamente, anote a ferramenta ADT, o tempo de execução, BTP,
ambiente ABAP, vários serviços, 00:15:26 como o serviço de destino e o serviço SAP Fiori launchpad,
00:15:32 todos trabalhando juntos para tornar este cenário possível. Finalmente, vemos em nossa
última tela, 00:15:40 um cenário semelhante ao da tela anterior, com a diferença de que, em vez de
uma instância SAP S / 4HANA Cloud, 00:15:47 no lado direito , vemos uma instância local do SAP S /
4HANA. 00:15:52 Isso mostra a flexibilidade do BTP, onde não importa quais produtos na suíte
inteligente você estava usando. 00:15:59 O BTP permite o desenvolvimento completo de aplicativos e
recursos de integração. 00:16:05 Ok, concluímos a unidade dois, Introdução ao BTP, ambiente ABAP. 8
00:16:11 Na unidade três, daremos um mergulho profundo no modelo de programação ABAP RESTful
00:16:17 Nos vemos lá. 9 Unidade 3 00:00:05 Olá, e bem-vindo ao nosso curso openSAP de introdução
ao ABAP na nuvem. 00:00:10 Meu nome é Quincy Anderson e sou instrutor da SAP Product Learning
Organization. 00:00:15 Esta é a unidade três, Modelo de Programação ABAP RESTful. Antes de começar,
uma rápida recapitulação da unidade dois, 00:00:22 Introdução ao SAP BTP, ABAP. Na unidade dois,
aprendemos sobre a visão da SAP 00:00:27 da Empresa Inteligente e como a Empresa Inteligente,
00:00:30 juntamente com a Plataforma de Tecnologia de Negócios, cria valor para nossos clientes.
00:00:35 Aprendemos o que é o ambiente BTP e ABAP e como ativá-lo em uma subconta. 00:00:39
Também aprendemos sobre os diferentes tipos de extensão e como o ambiente BTP e ABAP pode nos
ajudar a criar 00:00:44 extensões lado a lado, bem como outros cenários possíveis que podemos
implementar 00:00:48 usando BTP, ambiente ABAP. Com isso, vamos começar. 00:00:58 Nesta tela,
faremos um breve resumo dos três diferentes modelos de programação que, 00:01:02 como
desenvolvedores, pudemos utilizar ao longo dos anos. O primeiro é a programação ABAP clássica.
00:01:08 Muitos de vocês estão familiarizados com esse paradigma de programação. De módulos de
função a telas, a sub-rotinas, 00:01:14 por exemplo, este modelo é usado há anos por nossos clientes.
00:01:18 No entanto, os tempos mudam e surgem novas necessidades, o que exige o desenvolvimento
de novas abordagens. 00:01:25 Com o surgimento de dispositivos móveis, como telefones e tablets,
00:01:29 bem como a proliferação de implantações em nuvem, nós, aqui da SAP, percebemos que eram
necessários novos paradigmas. 00:01:40 Como uma primeira etapa, o Modelo de Programação ABAP
para SAP Fiori foi lançado com a plataforma ABAP 00:01:46 versão 7.50, SP01. Foi então que fomos
apresentados a alguns novos tipos 00:01:53 de artefatos que poderíamos criar em nossos esforços de
desenvolvimento, 00:01:56, como Core Data Services, também conhecido como CDS, e Business Object
Processing Framework, 00 : 02: 03 também conhecido como BOPF. Aprendemos sobre o que era um
serviço OData 00:02:08 e como o código de transação SEGW poderia ser usado para criar endpoints
OData usando tecnologias ABAP familiares, 00:02:14, como módulos de função habilitados
comprovadas, 00:02:22 ainda assim, havia alguns problemas. Um problema específico foi com o cenário
brownfield, 00:02:28 onde os clientes já tinham um código legado existente, que fornecia uma lógica de
negócios muito detalhada e granular. 00:02:35 Como resultado, os desenvolvedores, em vez de precisar
criar novos artefatos, eles precisaram fazer referência 00:02:40 aos artefatos existentes de uma maneira
sem interrupções. Além disso, a evolução contínua da plataforma ABAP, 00:02:48 particularmente BTP,
ambiente ABAP, bem como SAP S / 4HANA, exigiu uma evolução contínua 00:02:56 do paradigma de
desenvolvimento ABAP. Então, isso nos leva ao nosso modelo de programação atual, 00:03:04
conhecido como ABAP RESTful Programming Model, ou RAP. O Modelo de Programação ABAP RESTful
foi introduzido às 10h03min10 com BTP, ambiente ABAP, e também com SAP S / 4HANA Cloud,
00h03h14 a partir da edição 1909. Modelo de Programação ABAP RESTful evolui 0h03h20 o ABAP
modelo de programação para SAP Fiori de várias maneiras. Primeiro, SAP GUI não é necessário. 00:03:27
Todas as tarefas de programação são feitas usando Eclipse com o plugin ABAP Developer Tools, 00:03:32
que vimos pela primeira vez na unidade dois. Em segundo lugar, os artefatos que devem ser
desenvolvidos 00:03:38 e a sequência e o fluxo para desenvolvê-los são simples e intuitivos, 00:03:41
desenvolvedores. 00:03:47 Você terá mais informações sobre isso na última unidade, onde fazemos uma
demonstração implementando uma extensão lado a lado 00:03:52 usando o ABAP RES Abordagem do
modelo de programação Tful. Ao olhar para a tela atual, 00:03:57 você notará que, embora o CDS e os
objetos de negócios permaneçam parte do Modelo de Programação ABAP RESTful, 00:04:04 o processo
pelo qual os objetos de negócios são desenvolvidos muda de um BOPF abordagem a um novo tipo de
criação da lógica OData 00:04:19 muda do código de transação SEGW para a criação de um serviço de
negócios. 00:04:25 Conforme mencionado há alguns momentos, a criação desses novos tipos de
artefatos é simples e fácil 00:04:30 usando o plugin Eclipse ABAP Developer Tools. Como podemos ver
nesta tela, o modelo de programação ABAP RESTful 00:04:41 tem uma missão importante. Nós da SAP
queremos que todos o usem, 00:04:45, desde desenvolvedores SAP internos a desenvolvedores
externos e clientes e parceiros. 00:04:50 Queremos que seja otimizado para a nuvem e seguimos uma
estratégia que prioriza a nuvem 00:04:54 com o modelo de programação ABAP RESTful. Conforme
mencionado, queremos que o processo do desenvolvedor 00:04:59 seja simples e intuitivo, com tempo
mínimo de aceleração. 00:05:03 E, claro, queremos que seja flexível, especialmente sendo capaz de
fazer referência a códigos legados, 00:05:09 códigos que os clientes desejam continuar usando.
exclusivamente no Eclipse com o plugin ABAP Developer Tools, 00:05:24 e é baseado em duas técnicas,
a saber CDS junto com a linguagem ABAP. 00:05:30 Deve-se observar que a linguagem ABAP usada com
o Modelo de Programação ABAP RESTful é ABAP estrita. 00:05:36 Você deve se lembrar da unidade dois
que ABAP strict usa um subconjunto da linguagem ABAP, 00:05:40 e o acesso aos objetos do repositório
ABAP é governado por uma lista de APIs lançadas. 00:05:46 No entanto, mesmo com ABAP estrito, o
programação ABAP RESTful é que os detalhes técnicos da implementação 00:05:58 são tratados por
estruturas de tempo de execução. Como desenvolvedores, não precisamos nos preocupar 00:06:03 com
sua implementação e, em vez disso, podemos nos concentrar em criar nossa lógica de negócios.
00:06:11 Finalmente, nesta tela, vamos dar uma olhada nos artefatos específicos que precisamos criar e
por quê. 00:06:17 Lembre-se de que em nossa demo na unidade seis, veremos como esses artefatos sгo
criados. 00:06:22 Por enquanto, teremos uma boa definição de trabalho. Como sempre, e como
dissemos antes, 00:06:28 é sobre a criação de valor. E o valor aqui está na camada superior, 00:06:32
intitulada Consumo de serviço, pelo menos da perspectiva do usuário final. 00:06:37 Imagine um
aplicativo maravilhoso que adoramos usar. Podemos executá-lo de nosso telefone ou tablet 00:06:43 ou
usando qualquer navegador que quisermos em qualquer dispositivo, a qualquer hora, em qualquer
lugar. 00:06:47 Esse é, em poucas palavras, o valor do Fiori, nossa principal estratégia de UI aqui na SAP.
11 00:06:52 Por trás dessa IU é onde a mágica acontece. Esta é a camada de Provisionamento de
Serviços Comerciais, 00:06:58 e consiste em várias partes. Primeiro, temos uma vinculação de serviço e
uma definição de serviço. 00:07:05 A vinculação de serviço é como aquele aplicativo Fiori maravilhoso
está recebendo seus dados. 00:07:09 Neste caso, os dados estão sendo fornecidos ao aplicativo Fiori
usando HTTP, e o que está fornecendo os dados é um serviço OData. 00:07:18 Então, a ligação de
serviço é onde HTTP e OData são especificados. 00:07:23 Agora, no mundo real, você pode ter centenas
de serviços OData diferentes. 00:07:28 Um serviço pode recuperar informações do cliente e outro
serviço diferente pode criar novos pedidos de venda. 00:07:34 Cada um desses serviços OData
exclusivos terá sua própria definição de serviço, 00:07:38 que vemos na tela. Em segundo lugar na
negócios. Projeção significa simplesmente apresentar. 00:07:49 Então, imagine que você tem este
aplicativo Fiori maravilhoso. Você pode não apenas exibir uma lista de clientes, 00:07:54, mas editar ou
criar novos clientes rapidamente. Portanto, essas opções devem ser apresentadas a você para uso.
00:08:01 Provavelmente haverá botões ou links no aplicativo para você escolher. 00:08:05 Mas imagine
clicar em um botão e nada acontecer. Assim, a projeção de objetos de negócios 00:08:11 que vemos
com artefatos CDS e artefatos de comportamento, representam a apresentação dos vários criar,
00:08:18 editar, consultar, atualizar e assim por diante, tipo de lógica que os usuários finais esperam
que os aplicativos que eles usam sejam compatíveis. 00:08:27 A lógica de implementação real para essas
criações, edições, consultas, atualizações e assim por diante, 00:08:33 está contida nos objetos de
negócios e consultas reais, os artefatos que vemos na parte inferior, 00:08: 39 em Modelagem e
comportamento de dados. Em suma, é onde você escreverá o código. 00:08:45 Como dissemos em cada
unidade anterior, e também aqui, o todo é maior do que a soma de suas partes. 00:08:52 Tomado em
conjunto, isso й tudo o que vocк vai desenvolver e o que isso vai significar para o usuбrio final. 00:08:58
Ok. Então, que conclui a unidade três, 00:09:01 ABAP RESTful Programming Model. Na unidade quatro,
daremos uma olhada no Extension Suite. 00:09:07 Vejo você lá. 12 Unidade 4 00:00:05 Olá, e bem-vindo
ao nosso curso openSAP, Introdução ao ABAP na Nuvem. 00:00:11 Meu nome é Quincy Anderson e sou
instrutor da SAP Product Learning Organization. 00:00:17 Esta é a unidade quatro, SAP Extension Suite
and Development Efficiency. 00:00:23 Antes de começar, uma rápida recapitulação da unidade três,
Modelo de Programação ABAP RESTful. 00:00:29 Na unidade três, vimos que o Modelo de Programação
ABAP RESTful é a evolução de dois modelos predecessores, 00:00:36 a saber, o desenvolvimento ABAP
clássico, e também o Modelo de Programação ABAP para SAP Fiori. 00:00:44 Também aprendemos que
exclusivamente no Eclipse com o plugin de ferramentas de desenvolvimento ABAP, 00:00:54 e usa ABAP
strict como sua versão de linguagem ABAP. Finalmente, vimos alguns dos artefatos 00:01:00 que o ABAP
RESTful Model usa, como ligações de serviço, definições de comportamento, 00:01:06 e serviços de
dados principais. Com isso, vamos começar. 00:01:14 Se você se lembra da unidade 1, Conceitos básicos
da SAP Business Technology Platform, 00:01:20 aprendemos que a Business Technology Platform
quatro áreas de competência. Um, banco de dados e gerenciamento de dados. 00:01:32 Dois,
Como parte do desenvolvimento de aplicativos e oferta de integração, 00:01:46 temos SAP Extension
integração de aplicativos, respectivamente, 00:01:55 conforme mostrado no tela. O SAP Extension Suite
aplicativos 00:02:06 e também para o desenvolvimento de extensões lado a lado, como discutimos na
unidade dois. 00:02:12 Da mesma forma, o SAP Integration Suite reúne ferramentas, serviços e
tecnologias específicas 00:02:19 para integrar perfeitamente aplicativos e processos no local e baseados
na nuvem 00:02:24 usando ambos criados pelo cliente e também SAP -criado conteúdo. Às vezes, você
pode ouvir o SAP Integration Suite 00:02:31 referido como SAP Integration Platform as a Service, iPaaS,
oferta. 00:02:40 SAP Extension Suite e SAP Integration Suite são construídos em nossa base de várias
nuvens. 00:02:46 O que exatamente queremos dizer com base em várias nuvens? Você deve se lembrar
da unidade um 00:02:51 que falamos sobre a camada IaaS, que é a camada de computação, memória,
que, para permitir a escolha do cliente, 00:03:03 essa camada é gerenciada por nossos parceiros IaaS, ou
seja, Amazon, Google e Microsoft. 00:03:10 Nós, da SAP, assumimos a responsabilidade pela oferta e
gestão do BTP. 00:03:15 Esse arranjo a que nos referimos como base multi-nuvem. Portanto, o SAP
Extension Suite e o SAP Integration Suite 00:03:22 foram executados na base IaaS de nossos parceiros.
Em nossa tela aqui, 00:03:32 vemos as três categorias do SAP Extension Suite. O SAP Extension Suite
contém aproximadamente 80 serviços, 00:03:39 categorizados em três áreas que você vê aqui, ou seja,
categorizar os diferentes serviços dessa forma, 13 00:03:53 fica mais fácil para nós, desenvolvedores,
construirmos novos aplicativos e extensões 00:03:58 de maneira intuitiva e fácil, utilizando os serviços
corretos de cada área 00:04 : 03 para cada etapa do caminho. De um modo geral, os serviços de
00:04:13 Os serviços de experiência digital têm a ver com a visualização do usuário final de aplicativos e
extensões. 00:04:19 E, finalmente, os serviços de automação de processos digitais têm a ver com a
uma olhada em como os vários serviços 00:04:36 do SAP Extension Suite e SAP Integration Suite podem
fornecer valor. 00:04:41 Imagine um requisito para projetar um novo aplicativo, talvez, por exemplo,
para mostrar informações de remessa em tempo real 00:04:47 de produtos em trânsito para
atacadistas. O processo geral para desenvolver um aplicativo como este 00:04:53 consiste em quatro
etapas. Um, conecte os sistemas necessários 00:04:58 por meio de APIs liberadas para acesso aos dados
necessários. Este requisito é atendido usando vários serviços possíveis 00:05:06 como parte do
Integration Suite. Você poderia usar o serviço SAP API Business Hub, 00:05:10, que veremos com mais
detalhes na próxima tela, para descobrir uma API padrão SAP para recuperar esses dados, 00:05:16
digamos do SAP S / 4HANA , por exemplo, e os serviços de conectividade e destino 00:05:22 para
estabelecer a conexão e realmente recuperar os dados. Após o primeiro passo, nós vá para a etapa dois,
00:05:29 que está criando quaisquer pontos de extremidade adicionais da API necessários. É aqui que
entram em ação vários serviços de eficiência de desenvolvimento 00:05:36 que vemos no lado direito da
tela. 00:05:40 Particularmente ABAP RESTful Programming Model e BTP, ambiente ABAP, que vimos na
unidade anterior, 00:05:46 podem ser utilizados para construir ligações de serviço habilitadas para
comportamento. Em seguida, vamos para a etapa três, que é o desenvolvimento do canal. 00:05:59
Digamos que você queira dar aos usuários finais a escolha de um aplicativo móvel que eles possam
instalar em seus telefones 00:06:03 e também um aplicativo da Web que possa ser executado em um
cena, o Business Application Studio. 00:06:13 Para o aplicativo da Web, por exemplo, você pode usar o
Business Application Studio 00:06:16 para criar um aplicativo Fiori Elements utilizando UI5. Finalmente,
a etapa quatro é o acesso do usuário final real. 00:06:25 Se você olhar para a parte esquerda da tela,
verá vários serviços de experiência digital 00:06:29 que podem ser utilizados. Para o aplicativo móvel,
por exemplo, você tem o serviço móvel. 00:06:34 O aplicativo da Web pode ser disponibilizado para o
usuário final executar usando o SAP Fiori launchpad, 00:06:40 e também SAP Work Zone. Finalmente,
vemos no meio, Digital Process Automation. 00:06:48 Conforme mencionado anteriormente, a Digital
Process Automation consiste em vários serviços 00:06:53 que permitem aos clientes automatizar a
execução dos processos de negócios. 00:06:57 Vamos imaginar, por exemplo, que em nosso aplicativo,
oferecemos ao usuário final a opção de iniciar um processo de escalonamento 00:07:03 que consiste em
etapas a serem executadas caso determinem que uma remessa será entregue com atraso, 00:07:07 para
que a ação apropriada possa ser tomada. Essas etapas são encapsuladas em um fluxo de trabalho,
00:07:14 e são executadas pelo serviço SAP Workflow Management, 14 00:07:17 como você pode ver
no meio da tela. Conforme mencionado há alguns momentos, para a etapa um, conectividade, 00:07:28,
Aqui você pode descobrir todas as APIs SAP oficialmente lançadas e gerenciadas para ler e manter dados
00:07:47 em todo o portfólio de produtos SAP, como SAP S / 4HANA Cloud, SuccessFactors ou SAP Ariba.
00:07:55 Você pode descobrir as APIs lançadas explorando com base no produto ou no processo de
negócios em questão, 00:08:03 ou simplesmente listando todas as APIs disponíveis conforme visto nesta
tela. 00:08:10 Finalmente, nesta tela, vemos um exemplo de algumas APIs descobertas. 00:08:15 O
produto neste caso é SAP S / 4HANA, e vemos vários pacotes de API 00:08:21 onde cada pacote pode
conter várias APIs lançadas. As APIs lançadas por pacote podem ser de vários tipos, 00:08:28 SOAP,
ODATA ou mesmo REST. O nome e a descrição do pacote nos permitem, como desenvolvedores
00:08:35, determinar de forma rápida e eficiente se as APIs atendem aos nossos requisitos. 00:08:39 Por
exemplo, o primeiro pacote contém APIs relacionadas ao fornecimento de material. 00:08:44 O segundo
tem APIs relacionadas a nomes e endereços de parceiros de negócios 00:08:48 em relação às listas de
observação. E o pacote final contém APIs 00:08:53 que dizem respeito ao cálculo de impostos. Ok, isso
conclui a unidade quatro, 00:08:59 SAP Extension Suite and Development Efficiency. Na unidade cinco,
daremos uma olhada nas opções de extensibilidade 00:09:05 para SAP S / 4HANA. Vejo você lá. 15
Unidade 5 00:00:05 Olá e bem-vindo ao nosso curso openSAP, Introdução ao ABAP na Nuvem. 00:00:10
Meu nome é Quincy Anderson e sou instrutor da SAP Product Learning Organization. 00:00:15 Esta é a
unidade cinco, Extensibilidade no SAP S / 4HANA. Antes de começar, uma rápida recapitulação da
unidade quatro, 00:00:22 SAP Extension Suite and Development Efficiency. Na unidade quatro,
aprendemos que o SAP Extension Suite 00:00:29 e também o SAP Integration Suite agrupam
relação ao SAP Integration Suite, 00:00:51 temos o API Business Hub, que nos mostra todas as APIs SAP
oficialmente lançadas, 00:00:57 que podemos usar em nossos esforços de integração. Com isso, vamos
começar. 00:01:06 Você deve se lembrar na unidade dois, Introdução ao SAP BTP, ambiente ABAP,
00:01:11 mencionamos que um dos casos de uso para BTP, ambiente ABAP eram extensões. 00:01:16 E
mencionamos que uma extensão era simplesmente uma funcionalidade nova ou adicional. 00:01:22 Os
clientes precisam implementar extensões por vários motivos. Um é maior produtividade. 00:01:28 Outra
vantagem competitiva. A flexibilidade oferecida pelas extensões 00:01:33 é, sem dúvida, uma vantagem,
portanto, as extensões são necessárias e indefinidas d 00:01:37 componente de design de software. No
entanto, raramente há benefícios sem armadilhas, 00:01:43 e extensões não são exceção. A necessidade
de extensões também deve ser equilibrada 00:01:47 em relação ao custo. O software é sempre corrigido
e atualizado 00:01:51 com base em um cronograma fixo, e novas inovações são introduzidas
constantemente. 00:01:56 Isso pode causar problemas com as extensões. As extensões implementadas
anteriormente devem ser testadas 00:02:03 e validadas e, possivelmente, adaptadas às novas versões
do software. 00:02:09 Isso pode resultar em um atraso na adoção de inovações, o que pode ser uma
desvantagem para uma empresa. 00:02:16 Além disso, quanto mais extensões devem ser gerenciadas
por uma organização, 00:02:20 mais aumentam os custos de gerenciamento dessas extensões. A boa
notícia, entretanto, é que esses riscos 00:02:26 podem ser mitigados com a abordagem certa. Esta
abordagem é centrada em torno de uma estrutura de extensibilidade, 00:02:33 que reduz o custo geral
de manutenção da extensão e também permite que um cliente 00:02:38 adote inovações de forma
rápida e fácil com o mínimo de interrupção. 00:02:44 Projetos de atualização, como resultado, não
requerem grandes investimentos de tempo e dinheiro. 00:02:49 Nesse espírito, a estrutura de extensão
para SAP S / 4HANA está centrada em torno de 00:02:54 dois tipos de extensões - extensões no
aplicativo, que vemos aqui, 00:02:59 e lado a lado- extensões laterais, que veremos em um momento.
00:03:03 As extensões no aplicativo são implementadas dentro do núcleo do SAP S / 4HANA, 00:03:07 e,
como resultado, nenhuma comunicação remota entre a extensão 00:03:12 e o sistema SAP HANA é
necessária. Vejamos algumas das extensões possíveis. 00:03:19 No ponto um, vemos a adaptação da IU,
que poderia ser, por exemplo, 00:03:24 ocultar um campo em uma tabela ou renomear um rótulo. Para
o ponto dois, temos campos personalizados, 00:03:31, que são novos campos personalizados criados
para estender as tabelas do banco de dados SAP, visualizações CDS ou APIs OData. 16 00:03:40
Marcador três, visualizações CDS personalizadas, análises e formulários, permite que os clientes criem
novas visualizações 00:03:47 com base em um modelo de visualização existente com todos os recursos
de suporte, como associações, 00:03:53 junções e seleções. No ponto quatro, pontos de aprimoramento
da lógica de negócios, 00:04:01 também conhecidos como BAdIs, podem ser implementados. O ponto
cinco, objetos de negócios personalizados, 00:04:09 permite que os clientes criem novos objetos de
negócios, que criam automaticamente as tabelas de banco de dados necessárias. 00:04:15 Finalmente,
no ponto seis, interfaces de usuário personalizadas, os clientes podem criar suas próprias interfaces de
usuário SAP Fiori, 00:04:24 do zero ou com base em modelos. A IU consome as interfaces RESTful OData
do SAP S / 4HANA. 00:04:39 Nesta tela, vemos como um usuário-chave acessaria algumas das
ferramentas 00:04:44 necessárias para fazer extensões no aplicativo. Um dos recursos das extensões no
aplicativo 00:04:50 são as ferramentas fáceis de usar que são usadas para implementar essas extensões.
00:04:54 Eles foram projetados especificamente para que os não desenvolvedores possam usá-los.
00:05:03 Finalmente, nesta tela, vemos extensões lado a lado. 00:05:07 Uma das principais
características distintivas das extensões lado a lado 00:05:11 é que elas são implementadas fora do
escopo do SAP S / 4HANA, 00:05:16 e, como resultado, a comunicação remota entre a extensão e SAP S
/ 4HANA são necessários. 00:05:23 O BTP cuida disso por meio de dois serviços. Primeiro, o serviço de
conectividade, 00:05:30, que estabelece túneis seguros para a transferência segura de dados de ida e
volta 00:05:35 entre uma subconta e um ambiente local. E em segundo lugar, o serviço de destino,
00:05:41, que permite a criação e manutenção de destinos para sistemas locais específicos usados por
aplicativos. 00:05:49 Vamos dar uma olhada rápida nos componentes que formam as extensões lado a
lado. 00:05:54 Primeiro, no ponto um, temos interfaces de usuário personalizadas. Essas IUs serão
criadas com SAP Business Application Studio 00:06:02 e podem ser implantadas e executadas em BTP.
Eles podem usar não apenas serviços OData construídos em BTP, 00:06:11, mas também serviços OData
que são padrão como parte do SAP S / 4HANA 00:06:15 e estendidos por meio de extensões no
programação de aplicativo em nuvem ou o modelo de programação ABAP RESTful, 00:06:27 que vemos
na extremidade esquerda. Ser capaz de usar qualquer um dos modelos de programação 00:06:32
permite que as extensões sejam executadas em qualquer um dos ambientes de tempo de execução com
suporte, 00:06:35 ou seja, Cloud Foundry, Kyma ou BTP, ambiente ABAP. 00:06:41 O ponto três mostra a
mesma coisa, exceto que o serviço OData 00:06:46 é baseado em uma extensão criada usando
extensibilidade no aplicativo no sistema SAP S / 4HANA. 00:06:53 O ponto quatro mostra como SAP S /
4HANA pode iniciar eventos de negócios 00:06:58 que podem iniciar aplicativos em execução no BTP.
Por fim, o ponto cinco mostra como a replicação de dados 00:07:05 é possível, o que pode oferecer
suporte a uma ampla variedade de cenários analíticos para os clientes. 00:07:11 Portanto, concluímos s
unidade cinco, Extensibilidade em SAP S / 4HANA. 00:07:16 Na unidade seis, faremos uma
cinco. Vejo você lá. 17 Unidade 6 00:00:11 Olá, e bem-vindo ao nosso curso openSAP, Introdução ao
ABAP na Nuvem. Meu nome é Quincy Anderson e sou instrutor 00:00:20 na SAP Product Learning
Organization. Esta é a unidade seis, como fazer extensões lado a lado. 00:00:26 Antes de começar, uma
rápida recapitulação da unidade cinco, extensibilidade no SAP S / 4HANA. 00:00:32 Na unidade cinco,
aprendemos que existem dois tipos de extensões, 00:00:36 extensões no aplicativo, que são
implementadas dentro do núcleo do SAP S / 4HANA, 00:00:41 e lado a lado -extensões laterais, que são
unidade seis, faremos uma demonstração 00:00:54 sobre como implementar extensões lado a lado.
Usaremos o Eclipse com as Ferramentas de Desenvolvimento ABAP definidas 00:01:00 para fazer isso.
Com isso, vamos começar com nossa demonstração. 00:01:05 Aqui vemos o Eclipse com o conjunto de
ferramentas de desenvolvimento ABAP instalado. Então, o que faremos é carregar 00:01:12 o conjunto
nuvem. 00:01:19 Então clicamos em Window, Perspective, Open Perspective, Other, e a perspectiva
ABAP estará no topo. 00:01:29 Uma perspectiva é meramente um arranjo de janelas, então veremos as
janelas aparecerem. 00:01:35 Porque precisamos de um pouco de espaço no lado direito, vamos pegar o
Feature Explorer, 00:01:40 e vamos fechá-lo. Dê-nos um pouco mais de espaço para ver o que estamos
fazendo. 00:01:45 E então, em nosso navegador da Web, obteremos nossas informações sobre 00:01:49
nossa instância ABAP pronta. Portanto, como você pode ver aqui, 00:01:52 esta é a tela de login do
cockpit da SAP Business Technology Platform. E então clicaremos em Sign In no canto superior direito,
00:02:01 e então faremos o login com nosso ID e senha. Uma vez conectado, vamos para a visualização
do cockpit de nossa conta global. 00:02:25 A visualização da subconta está localizada neste primeiro
bloco. Existem aproximadamente 85 subcontas, 00:02:35, mas há um filtro que podemos usar para
obter o que queremos 00:02:40 com rapidez e facilidade. Então, clicarei em Subcontas aqui 00:02:43 no
lado esquerdo, como você acabou de me ver fazer. E em vez de rolar por uma lista de 80 ou mais,
00:02:49 vou apenas inserir uma bela string para representar aquela que desejo. 00:02:54 E aí está,
CLD400-A. Clique nessa subconta. 00:02:59 E então vamos para a cabine da subconta. Para confirmar
que existe uma instância ABAP disponível 00:03:06, clicamos em Instâncias e Assinaturas no lado
esquerdo. 00:03:17 E assim que carregarmos, notaremos se formos para as Instâncias, que há um total
de quatro, 00:03:24 e o primeiro é aquele em que estamos interessados, " abap ", sendo o serviço"
ambiente ABAP ", 00:03:30 e depois claro, o espaço que está localizado, que é o" treinamento ".
00:03:34 Agora que confirmamos isso, podemos prosseguir e nos conectar. 00:03:38 Então, no canto
superior esquerdo, clicaremos onde diz, "Criar um projeto de nuvem ABAP". 00:03:43 E então um
assistente aparecerá, que nos guiará por uma série de etapas. 00:03:46 O primeiro passo é como você
deseja se conectar? Quer usar uma chave de serviço, 00:03:49 ou deseja fazer o login diretamente?
Vamos escolher o último, que é a primeira opção. 18 00:03:55 Então escolheremos nossa região. Nesse
caso, a subconta está localizada 00:03:59 na região da Europa, a URL é preenchida automaticamente,
Avançar, escolheremos nossa organização, 00:04:24 que neste caso é a primeira opção, o espaço, que
neste caso é o treinamento. 00:04:31 E então a instância do serviço, que neste caso é ABAP. Vamos
escolher Next. 00:04:39 E então um logon final que precisamos fazer. Portanto, se você observar no lado
esquerdo, 00:04:44 diz, "Abra a página de login no navegador padrão do sistema operacional". 00:04:48
Ou, se formos com o lado direito, podemos abrir um navegador por conta própria 00:04:51 e copiar o
URL de logon para a área de transferência - qualquer um dos dois funcionará, apenas uma questão de
técnica 00:04:56 você prefere usar. Seguiremos em frente e usaremos o da esquerda. 00:05:02 Isso
abrirá um navegador, e então faremos o login. Reconheceremos várias vezes. 00:05:31 E observe que
recebemos uma mensagem que diz: "Você foi conectado com sucesso", 00:05:35 e a seu critério, você
pode fechar a página ou não. Se voltarmos ao Eclipse, você notará que ele está atualizado. 00:05:41 E
agora vemos que o Eclipse nos conectou a esta instância. 00:05:46 Vamos clicar em Avançar. E então, a
última coisa é, 00:05:48 há algum pacote favorito que você gostaria de adicionar? Nesse caso, sim.
00:05:52 O pacote ZLOCAL que está aqui é o que queremos adicionar. E podemos finalmente clicar em
Concluir. 00: 05:58 O lado esquerdo será atualizado. E podemos confirmar agora que estamos realmente
conectados 00:06:03 à nossa instância ABAP na nuvem. Esse é um pacote gerado, 00:06:08 que
usaremos para fazer nosso trabalho de desenvolvimento. Se o expandirmos, você notará que 00:06:12
há uma variedade e um grande número de pacotes atualmente atribuídos a ele. 00:06:17 Mas isso nгo
nos preocupa, vamos criar o nosso. 00:06:21 Então irei aqui para ZLOCAL. Vou fazer um clique com o
botão direito. 00:06:26 Clique em Novo, e então você notará Pacote ABAP. O nome será
Z_ABAP_OPENSAP. 00:06:38 E então a descrição será uma demonstração. Quando eu clicar em Avançar,
00:06:47 será solicitada uma solicitação de transporte. Vamos criar um novo pedido. 00:07:04 E clique
em Concluir. Você verá o pacote aparecer no topo 00:07:11 no lado esquerdo. Agora podemos começar
a criar os artefatos 00:07:16 que precisamos criar. Se nos lembrarmos da unidade quatro, 00:07:19 que
era a unidade sobre o Modelo de Programação ABAP RESTful, havia uma série de diferentes tipos de
artefatos 00:07:26 que podem ser criados - de tabelas a serviços de dados principais, para definições de
serviço, para ligações de serviço. 00:07:33 Nossa demo basicamente cobrirá a criação desses artefatos.
00:07:38 Começaremos criando duas tabelas de banco de dados que precisaremos. 00:07:42 Uma tabela
de banco de dados será uma lista de cursos que podem ser feitos. 00:07:46 E então a outra tabela do
banco de dados será um cronograma de quando esses cursos serão oferecidos. 00:07:51 Então clicamos
com o botão direito no pacote. Clicamos em Novo e vamos para Outro Objeto do Repositório ABAP.
00:07:57 Você verá o Dicionário, abriremos o Dicionário e escolheremos Tabela do Banco de Dados.
00:08:04 Clique em Avançar e dê um nome à tabela. Copiaremos o nome de nosso código preparado.
00:08:12 Nesse caso, zcourse_osap1. E então a descrição será o cronograma do curso. 00:08:30 Clique
primeiro, 335, clique em Concluir e ele será aberto. 00:08:41 Como mencionei antes, o código foi pré-
preparado. Antes de colar o código, vamos primeiro alterar o tamanho da fonte 00:08:48 para que
possamos ver o código um pouco mais claro. Então, clicaremos nas preferências da janela, digitaremos
"fonte", 00:08:57 e, para cores e fontes, mudaremos a fonte básica do texto 00:09:06 para o tipo de
fonte, Lucida Console, negrito, tamanho 16 e, em seguida, aplique e feche. 00:09:17 Vamos agora pegar
nossa tabela em questão, ou pelo menos nosso código preparado, devo dizer, 00:09:23 copie esse
código, volte para o nosso editor e cole. 00:09:30 O botão Salvar está no canto superior esquerdo, e não
se preocupe com os erros ainda. 00:09:38 Mas como você pode ver aqui, agora temos uma tabela
definida, zcourse_osap1, com vários campos, 00:09:46 cliente, curso, ID do curso, nome do curso,
duração do curso e assim por diante. 00:09:53 Agora criaremos uma tabela adicional. Então, clique com
o botão direito. 00:10:00 E novo, outro objeto do repositório ABAP. Novamente, outra mesa. 00:10:11 E
então este será baseado em uma programação. Escolha nosso transporte novamente como antes,
00:10:42 e então use nosso código preparado e salve. 00:10:54 Ok, então há a tabela de cursos que está
à esquerda e a tabela de horários à direita. 00:11:01 Há uma pequena mudança que preciso fazer aqui,
que deveria estar referenciando a tabela atual. 00:11:09 E agora vamos começar o processo de ativação
das tabelas. Portanto, se expandirmos o pacote e o Dicionário, 00:11:15 expandir as tabelas do banco de
dados à esquerda, você verá as duas tabelas. 00:11:19 Usaremos a tecla shift para selecionar os dois,
clique com o botão direito e você verá o botão Ativar. 00:11:26 Também há um botão Ativar aqui na
barra de ferramentas que pode ser usado alternativamente. 00:11:33 De qualquer maneira, vai trazer
esta lista. Então, vou escolher as duas tabelas como parte deste pedido de transporte 00:11:40 e, em
seguida, escolher Ativar. A ativação geralmente não demora muito. 00:11:49 E como você pode ver, as
tabelas agora estão ativadas. Se eu clicar com o botão direito em qualquer uma das tabelas, 00:11:55
então farei isso para a tabela do curso primeiro, posso abrir com a visualização de dados 00:12:01
apenas para mostrar que não há registros no mesa ainda. 00:12:04 Da mesma forma, posso fazer isso
com o cronograma. Então, vamos obter alguns dados nessas tabelas. 00:12:15 Para fazer isso, vamos
voltar ao nosso pacote. E então, desta vez, criaremos um novo 00:12:20 e um programa ABAP rápido
como uma classe ABAP. O nome será este nome aqui. 00:12:41 E nossa descrição será Preencher
Tabelas com Dados. Clique em Avançar, escolha nossa solicitação de transporte. 00:12:54 Escolha
Concluir. E novamente, pegue nosso código preparado. 00:13:11 O objetivo deste código novamente é
apenas pegar as duas tabelas que acabamos de criar 00:13:14 alguns momentos atrás e inserir apenas
alguns pequenos registros, registro número um, registro número dois , registro número três 00:13:21 na
tabela do curso. E novamente, registro número um, registro número dois 00:13:27 na tabela de
programação. Então agora que o código foi inserido, faremos um salvamento rápido. 00:13:35 E,
novamente, usaremos nosso botão Ativar, que está bem aqui, e isso ativará esta classe ABAP. 00:13:44
Você o verá do lado esquerdo, em Biblioteca de código-fonte, Classes e a classe. 00:13:51 Agora vamos
executá-lo para preencher as tabelas com dados. clique com o botão direito, Executar como e Aplicativo
ABAP no console. 00:14:04 Observe que nos dá alguma saída para o console. Basicamente, ele diz que
colocamos três entradas 20 00:14:09 na tabela de cursos e, em seguida, duas entradas na tabela de
programação. 00:14:13 Se formos para a tabela de cursos, que quando executamos anteriormente, não
tinha nenhum registro, 00:14:19 podemos usar o botão Atualizar, que está bem aqui no canto superior
direito. 00:14:22 E agora notamos que existem de fato três registros. Da mesma forma, com a
atualização da tabela de agendamento, 00:14:29 e podemos ver que agora há dois. Então isso resolve
essa parte. 00:14:33 E apenas em termos de criar as tabelas e colocar alguns dados nelas. 00:14:37
Agora vamos passar para o próximo nível do modelo de programação RESTful ABAP. 00:14:42 E
criaremos alguns artefatos de serviços de dados principais para trabalhar com essas duas tabelas de
dados. 00:14:49 Então, para isso, voltamos ao nosso pacote, clicamos com o botão direito, clicamos em
New, Other ABAP Repository Object. 00:14:57 E agora mudamos para Core Data Services. Quando
expandirmos, você verá alguns artefatos diferentes 00:15:03 que estão aqui. Portanto, usaremos dois -
Definição de Dados primeiro, 00:15:08 e, um pouco mais tarde, Extensão de Metadados. Mas primeiro
Data Definition, 00:15:14 este artefato específico é onde estruturamos a semântica do artefato de
serviços de dados principal. 00:15:21 Vamos clicar em Avançar. E então o primeiro que criaremos
00:15:27 se chamará ZI_COURSE_OSAP1. Então, colocaremos esse valor em. 00:15:37 E então para a
descrição, será Informações do Curso, 00:15:47 e então clicaremos em Avançar, escolha nossa
solicitação de transporte, clique em Avançar. 00:15:53 Não escolheremos nenhum valor particular nesta
tela em particular. 00:15:57 Iremos apenas com o padrão, que é Definir Visualização, e então clicar em
Concluir. 00:16:01 O motivo é porque nosso código está preparado. Então, colocaremos todo o código
de que precisamos aqui 00:16:07 nesta visualização específica. Recebemos uma pequena caixa pop-up
que nos pergunta: 00:16:11 queremos atualizar as ferramentas de desenvolvimento ABAP? No entanto,
o release que temos é 00:16:16 suficiente para nossa demonstração e, portanto, não há necessidade de
fazer isso. Então, clicaremos em Cancelar. 00:16:22 Agora podemos copiar nosso código, e então
salvaremos aqui no canto superior esquerdo. 00:16:41 Basicamente, o que esse código em particular faz
é basicamente dizer que queremos criar 00:16:46 um artefato de serviços de dados principal. E o nome
dele será ZI_COURSE_OSAP1. 00:16:53 E estaremos selecionando na tabela do banco de dados que
ativamos há alguns momentos, 00:16:58 que gostaríamos de chamar de Curso. E então, além disso,
00:17:02 vamos colocar alguns outros dados em jogo, que serão dados da outra tabela 00:17:07 que
ativamos, ZI_SCHEDULE_OSAP1. E, além disso, dois outros artefatos CDS que preexistem 00:17:19 são
I_Currency e I_Country. Se eu quisesse dar uma olhada, por exemplo, 00:17:25 em I_Currency, poderia
clicar com o botão direito nele. E então posso dizer Navegar para. 00:17:30 Vai abrir uma nova aba, ou
posso examinar esta vista em particular para ver, oh, 00:17:35 de qual tabela ela está selecionando?
Nesse caso, ele está fazendo uma junção e, potencialmente, 00:17:40 os campos que estão nele. Então,
efetivamente, estamos modelando nossa estrutura de dados 00:17:46 que queremos usar em nosso
aplicativo. Portanto, agora há uma segunda visão de que precisamos. 00:17:53 Você notará que há um
pequeno erro aqui porque este não existe. 00:17:56 Então há uma dependência aí, então precisamos
criar isso. Portanto, podemos fazer uma cópia rápida 00:18:02 e, em seguida, criar a segunda
visualização de serviços de dados principais. 00:18:06 Posso clicar com o botão direito no nível do
pacote ou, como já tenho uma visualização de serviços de dados principais, 00:18:11 posso clicar com o
botão direito nesse nível e obter um menu um pouco mais curto. 21 00:18:16 Escolherei essa opção,
clicarei em Definição de Dados e colarei. 00:18:28 Vamos clicar em Avançar, solicitação de transporte.
Novamente, não necessariamente nos preocuparemos com 00:18:34 em escolher qualquer coisa aqui,
pois nosso código está pré-preparado, então clique em Concluir e pegue nosso código. 00:18:56 E então
faremos outro salvamento. Portanto, agora os dois CDSs foram criados. 00:19:05 O segundo serviço de
dados principal aqui, como você pode ver, é baseado neste nome, ZI_SCHEDULE_OSAP1, 00:19:12
selecionando a partir desta segunda tabela que ativamos, chamando-a de Schedule. 00:19:16 E há uma
dependência na forma de associação com o primeiro artefato CDS que criamos alguns momentos atrás.
00:19:24 Portanto, um tipo de dependência mútua, quase circular. E então, é claro, os campos que
serão gerados 00:19:29 veremos aqui. Então, por causa da dependência mútua, 00:19:32 eles devem ser
ativados para juntos. Então, clicaremos no primeiro à esquerda, 00:19:36 use nossa tecla shift, clique no
segundo e, em seguida, ativar tudo que você verá aqui. 00:19:44 Certifique-se de que ambos sejam
escolhidos e ative. E lá vamos nós, ambos estão ativados e prontos para ir. 00:20:04 Se eu fosse pegar
uma das visualizações do CDS e farei isso com as duas, 00:20:08 clicarei com o botão direito na primeira,
claro, e Abrir com, Visualização de dados. 00:20:14 Sabemos que as tabelas do banco de dados contêm
dados, então agora vamos confirmar se o CDS está coletando esses dados. 00:20:21 E eis que é. Da
mesma forma, com programação, clique com o botão direito do mouse, 00:20:27 e Abrir com,
Visualização de dados, e veremos nossos dois registros. 00:20:33 Ok, agora essas duas visões CDS
específicas são conhecidas como visões de interface 00:20:39 de uma perspectiva conceitual. Então, eles
estão apenas estruturando os dados que queremos exibir. 00:20:45 Então, queremos certos campos
aqui, e este é o curso. E então, claro, o cronograma, a mesma coisa. 00:20:52 Novamente, queremos
certos campos. Agora, diferentes aplicativos e relatórios 00:20:58 que você poderia fazer poderiam usar
diferentes campos. Talvez um precise de todos os campos, 00:21:04 talvez um diferente precise apenas
de alguns campos, como você pode me ver destacando aqui. 00:21:09 Temos outro tipo de visão CDS,
conhecida como visão de consumo, que leva isso em consideração. 00:21:15 Então, vamos criar duas
visualizações CDS adicionais que representam isso. 00:21:22 Então, o primeiro chamaremos de
ZC_COURSE_OSAP1. E vamos criar isso agora. 00:21:33 Então, novamente, Definições de Dados, Novo e
Definição de Dados. Novamente, Informações do curso, 00:21:46 que agora podemos selecionar em
nosso menu de atalho. Clique em Avançar, confirme nosso número de transporte. 00:21:55 Novamente,
não há necessidade de escolher uma opção aqui, já que vamos colocar o código preparado, 00:22:03 e
vamos olhar nosso código preparado e copiá-lo. Aí está nosso salvamento. 00:22:19 E lá vamos nós. E
uma das coisas que você nota aqui 00:22:22 é que a dependência é óbvia. Se você olhar na linha sete,
00:22:26 estamos criando uma nova visualização CDS. No entanto, é uma projeção, o que significa
apenas 00:22:33 alguns campos desta visualização do CDS aqui que ativamos alguns momentos atrás.
00:22:39 Novamente, essa dependência agora você poderá notar olhando para isso. 00:22:44 Então, a
partir daí, queremos esses campos específicos. Agora você notará que há uma seta aqui embaixo
00:22:52 porque ela ainda não existe. Assim como antes, vamos salvar isso, 00:22:56 ou, na verdade, já
o salvamos. Vamos criar o segundo. 22 00:22:59 E então teremos que ativá-los juntos por causa da
dependência mútua que compartilham. 00:23:05 Então faça uma cópia rápida, vá para Definições de
dados, Novo e nossa definição de dados final. 00:23:17 Informações de programação, clique em
Avançar, confirme nosso transporte, Concluir, 00:23:29 e, em seguida, copie nosso código preparado.
Faça um salvamento rápido. 00:23:51 E, novamente, por causa das dependências mútuas, eles terão que
ser ativados juntos. 00:23:56 Então escolhemos o curso, escolhemos a programação, 00:24:01 clicamos
com o botão direito, ou escolhemos Ativar aqui, ou, como mencionei antes, 00:24:07 também há Ativar
no topo na barra de menu. Certifique-se de que ambos serão ativados 00:24:16 por causa da
dependência mútua e, em seguida, a ativação. No canto inferior direito 00:24:24 você verá o andamento
da ativação. Quando isso terminar, você saberá que eles estão ativados. 00:24:32 Além disso, quando
desativado, há um ícone especial que aparece no elemento, mas uma vez ativado, esse ícone
desaparece. 00:24:43 Ok. Portanto, agora nosso próximo nível em nosso modelo de programação de
aplicativo RESTful 00:24:49 é o que é conhecido como uma extensão de metadados. Uma extensão de
metadados é simplesmente 00:24:55 algumas anotações adicionais que eu poderia colocar no próprio
CDS, mas, em vez disso, irei colocá-las 00:25:02 em um artefato separado, o que pode tornar o código
um pouco mais fácil em termos de as anotações para ler. 00:25:08 Novamente, as anotações podem
subir na parte superior, ou as anotações podem ser anexadas a um campo, 00:25:13 se forem anotações
no nível do campo. Eles sempre podem ir no CDS, 00:25:17 mas também podem ir em um artefato
separado, novamente, para torná-los um pouco mais fáceis de ler. 00:25:23 Então vamos demonstrar
isso. Chegaremos ao Core Data Services 00:25:27 e desta vez faremos uma Nova Extensão de
Metadados. E lá vamos nós. 00:25:36 Então, nosso primeiro terá o mesmo nome que a visão CDS na
qual a extensão de metadados será aplicada. 00:26:01 Use nosso pedido de transporte. E novamente,
estaremos anotando uma visualização, 00:26:07 e as anotações que agora copiaremos. Portanto, essas
anotações serão avaliadas 00:26:14 por nosso aplicativo de IU de elementos Fiori que iremos
demonstrar Em breve. 00:26:23 As anotações são UI em sua natureza. Como você pode ver aqui, por
Courses, title é CourseId e assim por diante. 00:26:42 Você também notará aqui que há um fiel d que o
CDS realmente tem na saída, 00:26:48 mas a anotação diz para ir em frente e ocultar esse campo para
que o usuário final não o veja na saída. 00:26:54 Coisas assim podem ir em uma extensão de metadados.
Precisamos de um segundo. 00:27:02 Tão novo, extensão de metadados, copie nosso nome, coloque o
nome, informações de programação. 00:27:31 E então terminar. Copie nossas informações. 00:27:46
Semelhante à primeira extensão de metadados, para a visualização CDS de consumo do primeiro curso,
00:27:53 esta conterá anotações que serão avaliadas pelo tempo de execução do Fiori, 00:27:58 e
afetarão como a IU é renderizada para o usuário. Assim, por exemplo, o campo scheduleUuid ficará
oculto. 00:28:06 CourseBegin será o primeiro campo na saída, como você vê o item de linha aqui.
00:28:12 A localização será o terceiro campo ... Retiro o que disse. 00:28:16 O treinador será o terceiro
campo, a posição 30, a localização será o segundo campo. 00:28:21 As anotações podem ir antes ou
depois do campo. Portanto, você procura o ponto-e-vírgula - neste caso, 23 00:28:27 já que o ponto-e-
vírgula está localizado na linha 30, sabemos que as anotações nas linhas 28 e 29 se aplicam a ele.
00:28:34 Da mesma forma, vemos o ponto-e-vírgula na linha 35 e, portanto, as anotações nas linhas 32
e 33 se aplicam a ele. 00:28:43 Então, as extensões de metadados estão aqui. Você notará o ícone -
00:28:48 é difícil de ver, é muito pequeno, mas é um pequeno ícone amarelo que nos diz que 00:28:52
os artefatos ainda não foram ativados. Então, vamos escolher os dois. 00:28:56 E, novamente, temos
nosso botão Ativar bem aqui. Opa. Parece que um ainda não foi salvo. 00:29:04 Vamos cancelar, embora
eu pudesse ter salvado naquele momento. 00:29:07 Mas o botão Salvar está aqui e há um botão Salvar
tudo ao lado dele. 00:29:11 Vamos salvar tudo apenas para estar seguro. E então iremos repetir nosso
processo, selecionar, 00:29:17 e então ativar todos, confirmar que ambos estão lá, e então Ativar.
00:29:30 Ok. Portanto, o artefato final que agora precisamos para criar 00:29:34 é algo chamado de
definição de serviço. O que uma definição de serviço fará é expor esses artefatos 00:29:40 como um
ponto de extremidade OData para que possam ser usados em um aplicativo Fiori. 00:29:47 Então,
copiaremos nosso nome para prepará-lo e, em seguida, criaremos nossa definição de serviço. 00:29:57
Tão novo, a definição de serviço aparece no pop-up Novo Objeto de Repositório ABAP em Serviços
Definição de Serviço. 00:30:21 Clique em Avançar. Confirme nosso transporte. 00:30:27 Novamente,
preparamos o código. Então, clique em Concluir, 00:30:35 e, em seguida, prepare as informações. Você
notará o código, 00:30:47, então vamos definir uma definição de serviço e, em seguida, vamos expor,
como um conjunto de entidades OData, 00:30:55 que vamos expor informações do curso, que são
baseadas nesta exibição CDS, 00:31:01 informações de programação, que são baseadas nesta exibição
CDS, informações do país, baseadas nesta exibição CDS, 00:31:09 e, finalmente, informações de moeda,
com base nessa visão CDS. Então, finalmente, após a definição de serviço, 00:31:23 criaremos uma
vinculação de serviço. A vinculação de serviço será baseada na definição de serviço. 00:31:29 Podemos
economizar um pouco de trabalho clicando com o botão direito do mouse diretamente na definição de
serviço 00:31:36 e, em seguida, escolhendo uma nova vinculação de serviço. Dessa forma, ele saberá
automaticamente que a ligação de serviço 00:31:40 é baseada nessa definição de serviço. Para o tipo de
encadernação, observe que temos várias opções. 00:31:47 O que escolheremos é OData V2 - UI. Existe a
definição de serviço em que se baseia, 00:31:55 e, finalmente, o nome. Então, vamos chamar isso de Z e,
serviço. 00:32:16 Clique em Avançar. Vejamos, não existe uma versão ativa. 00:32:21 Ah sim, esqueci de
ativar, sem problemas. Vamos apenas clicar em Cancelar bem rápido. 00:32:27 Você verá o pequeno
ícone nos informando que não ativamos. 00:32:29 E então, é claro, clicaremos no botão Ativar bem
aqui. 00:32:34 Espere até que seja ativado. E então, como eles dizem, "Lave, enxágue, repita." 00:32:40
Então, clique com o botão direito, New Service Binding, e vamos fazer de novo. Nossos nomes agora
estão na memória, então podemos apenas escolhê-los. 00:32:57 Re-selecione a ligação novamente, e
agora deve ser feliz. 24 00:33:04 Solicitação de transporte, e pronto, essa é a nossa vinculação de
serviço. 00:33:11 Ok. Portanto, novamente, a definição de serviço descreve 00:33:15 o que será exposto
como um ponto de extremidade OData. Quais conjuntos de entidades específicas, ou seja, quais dados
específicos, 00:33:22 a vinculação de serviço, que está intimamente relacionada a ela agora, como ela
será exposta? 00:33:28 Quer usar a API da Web? Você deseja usar OData versão 2, OData versão 4.
00:33:35 Assim que isso for feito, vamos ativar, ou na verdade ... 00:33:46 E depois que a ativação for
concluída, há um pouco mais etapa ou uma etapa extra necessária, 00:33:52 que é uma publicação.
Uma vez que um URL é gene avaliado com base na ligação de serviço, 00:33:57 que o URL deve ser
colocado na lista de permissões e a publicação faz isso. Assim que a publicação for concluída, veremos o
URL. 00:34:33 E seremos pacientes enquanto continua a publicar. Às vezes, isso acontece muito
rapidamente. 00:34:38 Outras vezes pode demorar um pouco mais, e está feito. 00:34:47 Você notará o
URL do serviço, que está bem aqui. E então você verá os conjuntos de entidades expostos - 00:34:55
País, Moeda, Curso e Programação. Pega isso diretamente da definição de serviço, que está bem aqui.
00:35:03 Novamente, você verá um trecho da URL, que está aqui. 00:35:07 Onde está escrito URL do
serviço, se você clicar nele, poderá ver o URL completo 00:35:14 que aparece na janela do navegador da
Web, bem ali. OK. 00:35:21 Nossa etapa final agora é ir em frente, para terminar nosso ponta a ponta,
00:35:25 para realmente olhar para um aplicativo de IU que será baseado nisso. 00:35:28 Felizmente,
temos uma prévia. Na verdade, para construir seu aplicativo de IU, 00:35:33 neste ponto, você mudaria
para o Business Application Studio usando esta URL e, em seguida, projetaria um aplicativo Fiori.
00:35:40 Você pode usar elementos Fiori ou freestyle como sua escolha. Portanto, para nossos
propósitos, podemos apenas usar a visualização. 00:35:45 Isso nos dará uma ideia suficiente de como
será a interface do usuário. 00:35:49 Clicamos em Visualizar. Isso abre. 00:35:57 E lá vamos nós.
Portanto, a primeira coisa que faremos é colocar algumas colunas 00:36:03 em nossa saída. Então,
faremos uma seleção de tudo e, em seguida, clicaremos em Ir. E então veremos nossos dados. Portanto,
informações do país, em termos de chave, nome da região, código ISO e assim por diante. Ok, isso
conclui nossa demonstração para a unidade seis, como fazer extensões lado a lado. Ele também conclui
nosso curso openSAP, Introdução ao ABAP na nuvem. Foi um prazer ter você.