Pessoal, no fim de 2018 a SAP lançou um modelo de boas práticas e ferramentas para desenvolvimento de aplicações em cloud chamada de Cloud Application Programming Model. Este modelo guia o desenvolvimento de aplicações de negócio para o ambiente em Cloud permitindo, segundo a SAP, focar mais nas regras do seu negócio do que ficar se preocupando muito com detalhes e atividades de configuração que tomam muito tempo.
Para isto toda a parte de regras de negócio, modelos de dados, criação de serviços OData são abstraídos utilizando a linguagem cds. Desta forma podemos através de alguns arquivos cds criar toda a lógica de banco de dados da aplicação, suas entidades e relacionamentos, e também e expor estas entidades em formas de serviços OData.
Neste modelo podemos criar projetos basicamente em duas tecnologias/linguagens Java ou Node.js. Embora o modelo informe suportar outras linguagens, oficialmente a SAP possui plugins, módulos e dependências customizados nestas linguagens.
Para o desenvolvimento, podemos utilizar a WebIDE do SAP Cloud Platform e banco SAP Hana ou desenvolver os projetos localmente utilizando o Visual Studio Code e banco sqlite. Podendo posteriormente implantar a aplicação tanto no SAP Cloud Platform ou até mesmo em uma instância local do SAP HANA caso opte por usar um ambiente on-premise.
Para auxiliar em meus estudos estou criando um projeto no Git Hub o qual pode ser utilizado de exemplo. Tal projeto vem sendo atualizado frequentemente a medida que vou evoluindo nos requisitos. Acompanhe pelo github para verificar as evoluções e orientações sobre como utiliza-lo.
Este projeto consiste basicamente de um modelo de escola, onde temos os estudantes, cursos, as turmas e as matrículas. A regra é que um aluno pode se matricular em diversos cursos, os quais são ofertados regularmente através de turmas com períodos de duração pré definidos.
Com ele podemos ver alguns princípios como a criação das entidades e seus relacionamentos. A utilização de relacionamentos n:n, n:1 e 1:n. A criação de serviços OData de acordo com perfis de acesso. (Estudante e Adm). A criação de consultas customizadas e views usando CQL (CDS Query Language). A customização e aplicação de lógicas de negócio aos serviços OData. Como por exemplo verificar se o aluno já está matriculado a um curso no momento da matrícula e verificar se ainda há vagas na turma.
Para este exemplo optei por utilizar o Node.js e Javascript como tecnologias. Posteriormente criarei toda a parte de frontend utilizando SAPUI5. Fiquem ligados e me acompanhem no github para a evolução.
Para conhecer um pouco mais sobre SAP Cloud Platform veja este post que falo um pouco mais sobre esta plataforma. https://saphanadev.com.br/2019/05/03/conhecendo-a-sap-cloud-platform-a-plataforma-de-cloud-da-sap/