Codificação ABAP com o SAP HANA

Codificação ABAP com o SAP HANA

 

SAP HANA como fica a codificação ABAP?

Há algum tempo a HANA tem sido uma das opções favoritas dos clientes SAP, e acredita-se ser uma questão de tempo para que as empresas, grandes ou pequenas, migrem suas estruturas para esta plataforma.

Isso significa que como ABAPER, é preciso estar pronto para os novos desafios que esta mudança traz com a adoção de uma nova tecnologia. Com a computação in-memory, por exemplo, o check list tradicional acabaria se tornando redundante. É preciso se manter atualizado com a nova lista de verificação utilizada no HANA.

O que não era recomendado na era pré-HANA, pode ser uma norma importante agora. Tecnicamente, não há muita mudança, mas ainda assim, os ABAPers precisam fazer um esforço consciente para não desenvolver na mentalidade tradicional.

Se não houver cuidado, talvez não seja possível aproveitar todo o poder desta plataforma chamada HANA. Pior ainda, podemos até testemunhar o impacto negativo da velocidade devido à implementação incorreta de códigos personalizados na HANA.

Por que SAP HANA? O que ABAPERs precisam entender e aprender de novo?

Passaram-se os dias em que uma consulta ABAP levava muito tempo para ser executada no SAP devido ao grande volume de dados, e os desenvolvedores precisavam extrair esse enorme volume de informação do banco de dados para a camada de aplicação, para depois processar esses dados e por fim manipular através da codificação.

Os desenvolvedores recebiam instruções para evitar a junção de múltiplas tabelas no banco de dados, concentrando-se na seleção de campos chave e evitando os cálculos de dados especialmente durante a seleção. Todos os cálculos de dados seriam feitos no nível de aplicação direto no programa após a seleção de dados.

Às vezes, todos os dados não podiam ser selecionados devido ao limite do volume de informações, e o desenvolvedor precisava requerer a indicação do cursor para quebrar todo o volume em diferentes pacotes, atualizar a tabela interna para exibição de saída e depois selecionar e processar o próximo volume/pacote.

Além disso, o ajuste de desempenho foi uma atividade importante necessária para minimizar o tempo de execução quando um grande volume de dados estava envolvido.

Agora, com a mudança do banco de dados SAP tradicional para SAP HANA, é preciso entender como os padrões de desenvolvimento ABAP anteriores levam o processos de codificação a um novo formato, fazendo com que muitas verificações realizadas anteriormente sejam irrelevantes agora. Para isso, é preciso entender a arquitetura SAP HANA básica para melhores práticas de codificação.

SAP HANA é uma plataforma de dados in-memory que pode ser implantada de forma on-premise, ou seja, dentro do próprio cliente, ou sob demanda, através da estrutura de cloud computing da própria SAP. A plataforma pode usar plenamente os recursos de hardware atual para aumentar o desempenho do aplicativo, reduzir o custo de propriedade e ativar novos cenários e aplicativos que não eram possíveis anteriormente.

Então, qual é a característica fundamental deste banco de dados HANA que trouxe uma mudança no paradigma de codificação?

É a estrutura de banco de dados em coluna e o processamento em memória que mudaram a mentalidade do conceito básico de codificação ABAP. Então, agora, alguns dos padrões de seleção de dados usados anteriormente foram alterados e alguns existentes se tornam mais recomendados.

Alguns dos padrões básicos a serem seguidos são:

  • SELECT * deve ser substituído pela seleção com nomes de campo específicos -> isso foi aplicável anteriormente para ajuste de desempenho, mas agora com a estrutura baseada em coluna, isso se torna mais evidente.
  • A declaração SELECT com ‘CHECK’ deve ser evitada -> isto já era aplicável anteriormente, mas agora é mais aparente.
  • Ao selecionar dados, a filtragem máxima de dados deve ser feita na cláusula “where”. O NE anterior (desigualdade) foi evitado, mas agora a filtragem NE passa a ser aconselhada. Com o banco de dados em coluna, todas as colunas atuam como um índice, portanto, nenhuma criação de índice secundário é necessária para minimizar o tempo de execução. A declaração do cursor também não é necessária. Eliminar após a seleção também se torna redundante, pois quase todos os tipos de filtragem podem ser feitos de uma só vez.
  • Aplique todas as funções como soma, contagem, média etc, no SELECT e agrupe-as usando ‘group by’.
  • Ao invés de classificar após a seleção de dados como anteriormente, use “ordenar por” os campos necessários para a triagem.
  • Declarações de condição como ‘If’, ‘While’, Case ‘etc podem ser aplicadas diretamente durante SELECT.
  • A junção adequada entre as tabelas é necessária para evitar instruções SELECTs e depois ‘Loop’ e ‘Read table’ desnecessárias.

Basicamente, os pontos acima indicam que a seleção e os cálculos máximos podem ser feitos de uma só vez durante um único SELECT ao invés de usar o recurso de seleção para todas as entradas’, ‘Loop’, cálculos como soma, condição como ‘Se ‘Ou’ Case ‘e’ Anexar ‘à tabela interna para exibição final.

Agora as linhas de codificação são reduzidas, mas os desenvolvedores da ABAP precisam estar mais atentos, pois mais comandos do ABAP estão sendo utilizados em um SELECT. Anteriormente, cada declaração ABAP poderia ser depurada para entender os problemas ou resolver falhas. Agora é necessário ter mais consciência dos comandos que estão sendo usados e entender a fundo suas implicações.

Veja outros pontos aplicáveis em requisitos específicos

  • No HANA, seu banco de dados está alocado em memória, portanto, o buffer de tabela não é mais necessário, significando que o “BYPASSING BUFFER” passa a ser irrelevante.
  • Database DTS deve ser evitado.
  • A tabela de cluster deixa de ser aplicável. Portanto, toda a tabela de cluster anterior, como a BSEG e o uso do MSEG deve ser evitada e tratada como tabelas transparentes.
  • S / 4 HANA traz novas tabelas e substitui algumas anteriores. Também fez as tabelas em cada área funcional mais estruturada, como a ACDOCA na área de finanças. Este tipo de conhecimento precisa ser desdobrado para a camada de desenvolvimento.

Quando um banco de dados é movido para a plataforma SAP HANA, o que precisa ser feito e verificado para “HANATIZAR” o código?

Basicamente, se os pontos acima são seguidos e as declarações alteradas de acordo, a codificação ABAP anterior pode ser facilmente convertida em uma plataforma HANA.

Mais alguns pontos que a nova tecnologia oferece:

O SAP introduziu novas instruções de SQL aberto com a abordagem de cima para baixo. O desenvolvedor ABAP deve aprender essas práticas e implementá-las durante a codificação com o HANA DB.

Onde a lógica comum é aplicável nos entregáveis do projeto, as visualizações do CDS e os procedimentos AMDP devem ser criados em vez da criação anterior de sub-rotinas em comum.

Alguns exemplos de mudanças de código para o banco de dados HANA ou “HANATIZAÇÃO”:

SELECT *:

Antes

Codificação ABAP com o SAP HANA

Depois

Codificação ABAP com o SAP HANA

SORT:

Antes

Codificação ABAP com o SAP HANA

Depois

Codificação ABAP com o SAP HANA

DELETE:

Antes

Codificação ABAP com o SAP HANA

Depois

Codificação ABAP com o SAP HANA

JOIN:

Antes

Codificação ABAP com o SAP HANA

Depois

Codificação ABAP com o SAP HANA

Novo open-SQL (não é necessária nenhuma declaração de dados): Declaração de dados em linha é conveniente.

Codificação ABAP com o SAP HANA

 

Estes são alguns dos pontos importantes que devem ser lembrados e utilizados em todos os projetos de migração para a plataforma HANA. Ao lembra destes novos conceitos, um ABAPER estará preparado para entender facilmente as mudanças na codificação, aumentar sua produtividade e garantir entregas com mais qualidade.

Se você já trabalhou em um projeto SAP HANA ou está trabalhando atualmente, compartilhe sua experiência. Adoraríamos conhecer seus desafios.

 

Mestre do Debug

Agenda especialista

 


Voltar