SleevoSleevo

Artigos

ABAP Cloud: o que muda em relação ao ABAP clássico

16 de julho de 2026 · 7 min de leitura · Equipe Sleevo

O que é o ABAP Cloud, onde ele é obrigatório, o que deixa de existir em cada área do código, o que entra no lugar e o que continua permitido, ao contrário do que se costuma dizer.

ABAP Cloud não é outra linguagem. É o mesmo ABAP com um conjunto de regras que o tornam seguro para atualizações: o que a SAP não garante como estável simplesmente não existe para quem programa nele. Entender exatamente o que muda evita dois erros comuns: subestimar o trabalho de conversão e, no outro extremo, achar que "nada do que fazemos hoje funciona lá".

O que é ABAP Cloud

A SAP define o ABAP Cloud por quatro regras:

  • a versão de linguagem "ABAP for Cloud Development", uma versão enxuta do ABAP, sem os comandos obsoletos e sem o que depende do SAP GUI ou do servidor;
  • só objetos liberados: da SAP, o código usa apenas o que ela publica como API, com contrato de estabilidade;
  • só o ABAP Development Tools (ADT), no Eclipse: não há desenvolvimento pelo SAP GUI;
  • o RAP (ABAP RESTful Application Programming Model) como modelo para aplicações transacionais.

O que é "liberado", para quem e com que garantia está em Contratos de liberação de API: o que o C0, o C1, o C2, o C3 e o C4 garantem. Além do ABAP padrão e do ABAP Cloud, existe uma terceira versão de linguagem, ainda mais restrita: o ABAP for Key Users, usado pelos apps Fiori de extensibilidade, como Custom Logic e Custom CDS Views. Ela está em ABAP for Key Users: o que são os objetos de Key User e onde eles entram no Clean Core.

Onde ele é obrigatório

Produto ABAP Cloud
SAP BTP ABAP Environment e S/4HANA Cloud Public Edition Obrigatório: o ABAP clássico não existe
S/4HANA on-premise e Private Edition, desde 2022 Opcional e recomendado: convive com o clássico, objeto por objeto

No S/4HANA on-premise, cada objeto tem a sua versão de linguagem. Um sistema pode ter código clássico antigo e código novo em ABAP Cloud lado a lado, e a conversão pode ser feita aos poucos.

Quem impede o uso do que não é permitido

No ABAP Cloud, a regra não depende de alguém rodar o ATC: quem barra é a verificação de sintaxe. Um objeto que usa algo não liberado, ou um comando que não existe na versão de linguagem, não ativa. No acesso dinâmico, como uma chamada montada em tempo de execução, a verificação acontece na execução, com erro em tempo de execução. O ATC continua útil para avaliar o código clássico antes da conversão, apontando o que impediria a troca.

O que muda, área por área

Tipos de objeto

No ABAP clássico No ABAP Cloud
Programa executável (REPORT), module pool, INCLUDE, type pool Não existem. Só classes, interfaces e grupos de função
Dynpro, tela de seleção, GUI status, transação SAP GUI Não existem. A interface é Fiori sobre RAP
Ajuda de pesquisa do dicionário Não existe. Ajuda de pesquisa baseada em CDS
CDS no formato antigo (define view) Obsoleta: ainda possível, mas não recomendada. O formato atual é a view entity
User exit, ampliação implícita ou explícita Não existem. Só BAdI liberado

Grupos de função e módulos de função próprios continuam permitidos, sem o parâmetro TABLES.

Interface e listas

Todo o mundo do SAP GUI fica de fora: WRITE e listas, TOP-OF-PAGE, AT LINE-SELECTION, PARAMETERS, SELECT-OPTIONS, START-OF-SELECTION, CALL SCREEN, SET PF-STATUS e afins. A interface passa a ser Fiori, com o RAP expondo os dados por um serviço OData. ALV, seja por REUSE_ALV_* ou por CL_SALV_TABLE, também não está disponível.

Chamada de programas

SUBMIT, CALL TRANSACTION e LEAVE TO TRANSACTION não existem. Processamento em fundo vira application job (catálogo e template de job), e reaproveitamento de lógica passa a ser por classes.

Banco de dados

No ABAP clássico No ABAP Cloud
SQL nativo (EXEC SQL), cursores, CALL DATABASE PROCEDURE Não existem. ABAP SQL e AMDP
CLIENT SPECIFIED, USING CLIENT (acesso a outro mandante) Não existem: cada programa vê só o próprio mandante
Leitura de qualquer tabela da SAP Só por CDS liberadas, como I_Product no lugar da MARA e I_JournalEntry no lugar da BKPF
Tabelas próprias Leitura e gravação continuam permitidas

FOR ALL ENTRIES, BYPASSING BUFFER, WITH PRIVILEGED ACCESS e AMDP continuam permitidos. O AMDP precisa ser seguro para mandante e usar só objetos liberados.

Transação e atualização

  • Update task (CALL FUNCTION IN UPDATE TASK), SET UPDATE TASK LOCAL e PERFORM ON COMMIT não existem: a atualização é sempre local, no mesmo processo.
  • COMMIT WORK continua permitido a quem controla a transação, mas não dentro do RAP: nos handlers e na fase de gravação, quem confirma é o próprio framework.

Paralelismo e RFC

No ABAP clássico No ABAP Cloud
STARTING NEW TASK, tRFC, bgRFC Frameworks liberados: CL_ABAP_PARALLEL e o Background Processing Framework
CALL FUNCTION DESTINATION com destino da SM59 Continua permitido, com o destino vindo de um arranjo de comunicação

Programação dinâmica

  • Geração de código (GENERATE SUBROUTINE POOL, INSERT REPORT, READ REPORT) não existe. A SAP oferece as APIs XCO para gerar objetos.
  • Tokens dinâmicos continuam permitidos: ASSIGN por nome, CREATE OBJECT por nome de classe, chamada dinâmica de método e SELECT com tabela dinâmica. A verificação de liberação é feita na execução.
  • RTTS (CL_ABAP_TYPEDESCR e subclasses) continua permitido; DESCRIBE não existe.

Serviços técnicos

Cada serviço clássico tem uma API liberada no lugar:

Serviço No ABAP clássico No ABAP Cloud
Log de aplicação BAL_LOG_CREATE, BAL_DB_SAVE CL_BALI_LOG
Faixa de numeração NUMBER_GET_NEXT CL_NUMBERRANGE_RUNTIME
E-mail SO_NEW_DOCUMENT_ATT_SEND_API1, CL_BCS CL_BCS_MAIL_MESSAGE
Bloqueio Chamada direta de ENQUEUE_* CL_ABAP_LOCK_OBJECT_FACTORY
Documento de modificação CHANGEDOCUMENT_OPEN CL_CHDO_WRITE_TOOLS
Jobs JOB_OPEN, JOB_CLOSE Application job (CL_APJ_RT_API)
Formulários Smart Forms, SAPscript Adobe Forms, pelo Adobe Document Services
Planilha Download pelo SAP GUI XCO_CP_XLSX
Comunicação externa Destinos na SM59 Cenários e arranjos de comunicação
Manutenção de tabela Visão de manutenção (SM30) Objeto de business configuration e app de configuração

Arquivos no servidor (OPEN DATASET) e upload ou download pelo SAP GUI ficam de fora.

Linguagem

O ABAP Cloud remove o que já era obsoleto e o que dependia do ambiente clássico:

  • macros (DEFINE), linha de cabeçalho em tabela interna, OCCURS, RANGES, MOVE, COMPUTE, REFRESH, CATCH SYSTEM-EXCEPTIONS, bancos lógicos e extratos;
  • MESSAGE só com INTO: a mensagem chega ao usuário por exceção, pelo RAP ou pelo log de aplicação;
  • BREAK-POINT no código (o ASSERT continua permitido);
  • GET TIME e SET LANGUAGE: data e hora vêm de GET TIME STAMP e CL_ABAP_CONTEXT_INFO;
  • a maior parte dos campos de sistema: os oficiais incluem sy-subrc, sy-tabix, sy-index, sy-uname, sy-langu e sy-mandt;
  • rotinas de conversão: só ALPHA e ISOLA.

FORM e PERFORM ainda compilam, mas a SAP os marca como obsoletos, suportados só temporariamente.

O que continua permitido, ao contrário do que se costuma dizer

  • criar e chamar módulos de função próprios;
  • RFC síncrono, com destino de arranjo de comunicação;
  • COMMIT WORK fora do RAP;
  • AMDP;
  • programação dinâmica e RTTS;
  • CALL TRANSFORMATION com XSLT e Simple Transformations;
  • ler e gravar tabelas próprias;
  • AUTHORITY-CHECK com objetos de autorização liberados ou próprios;
  • FOR ALL ENTRIES e WITH PRIVILEGED ACCESS.

Mudou entre releases

A versão de linguagem evolui. Do S/4HANA 2023 (ABAP 7.58) para o 2025, passaram a ser permitidos, entre outros, WAIT UP TO, a chamada de função IN REMOTE SESSION e conexões secundárias de banco, desde que abertas por um objeto de conexão. Antes de descartar uma técnica, vale conferir a documentação do release em uso.

Como o ABAP Cloud convive com o clássico

No S/4HANA on-premise e Private Edition, os dois coexistem:

  • o código clássico chama qualquer coisa, inclusive objetos ABAP Cloud;
  • o código ABAP Cloud chama objetos liberados da SAP e objetos Z do mesmo componente de software. Para chamar um objeto clássico de outro componente, esse objeto precisa estar liberado com o contrato C1, que é o papel de um wrapper.

Os detalhes dessa regra estão em Componentes de software no ABAP Cloud: quem pode chamar quem. Para o efeito disso no painel do SAP Cloud ALM, veja Por que um programa com tela clássica para no nível B.

Fontes

  • SAP Help, ABAP Keyword Documentation, Language Elements in ABAP Versions (S/4HANA 2025 e 7.58) e a documentação de ABAP for Cloud Development.
  • SAP Help, SAP BTP ABAP Environment: tipos de objeto, application jobs, formulários, comunicação e business configuration.
  • SAP Community, ABAP Cloud FAQ.
  • Thomas Schneider (SAP), ABAP Language Versions – FAQs, SAP Community.
  • SAP, Cloudification Repository (GitHub SAP/abap-atc-cr-cv-s4hc).