SAP BTP e extensibilidade

Clean Core

Clean core é o princípio da SAP para manter um sistema SAP S/4HANA próximo do padrão, de modo que os upgrades continuem previsíveis: as extensões usam APIs liberadas e pontos de extensão estáveis, rodam on-stack com ABAP Cloud ou side-by-side no SAP BTP e evitam modificar código SAP. Clean core é uma meta de governança medida ao longo do tempo, não um produto.

Resumo

Tipo
Princípio de arquitetura e governança
Camada
Lógica de negócio e modelo de dados; SAP BTP
Opções de extensão
Extensibilidade key user, extensibilidade de desenvolvedor (ABAP Cloud), side-by-side no SAP BTP
Medido com
Verificações do ABAP Test Cockpit; níveis de clean core A–D no SAP Cloud ALM
Responsáveis
Arquitetos corporativos, líderes de desenvolvimento, CoE SAP
Aplica-se a
Public Edition (imposto por design); Private Edition e on-premise (por governança)
Camada: Lógica de negócio e modelo de dadosOnde se encaixa ▾
Onde se encaixa: L5 · Lógica de negócio e modelo de dadosCamada: Lógica de negócio e modelo de dados. Também envolve: SAP BTP.L1L2L3L4L5L6BTP

Camada: Lógica de negócio e modelo de dados

Também envolve: SAP BTP

Abrir o mapa de arquitetura →

O que clean core significa na prática?

O clean core costuma ser reduzido a "nenhum código customizado", o que não corresponde ao que a SAP descreve. O princípio trata de como um sistema se desvia do padrão, não de se ele se desvia:

  • Extensões usam APIs e pontos de extensão liberados, para que a SAP possa alterar o funcionamento interno sem quebrá-las.
  • Configuração é preferida a código sempre que o padrão oferece um parâmetro.
  • Integração passa por interfaces liberadas e documentadas, em vez de acesso direto a tabelas.
  • Dados e operações seguem os padrões atuais, para que o sistema continue suportável.

Um sistema pode ter muitas extensões e ainda assim ser clean, desde que cada uma dependa apenas do que a SAP se comprometeu a manter estável. O clean core é, portanto, uma regra sobre dependências, e não uma proibição de diferenciação.

Como funcionam os níveis de clean core?

A orientação atual da SAP classifica os objetos customizados em quatro níveis, que o SAP Cloud ALM usa para reportar uma participação de clean core:

NívelO que o objeto usaClassificação
ASomente ABAP Cloud e APIs liberadasClean core
BAPIs liberadas mais APIs clássicas que a SAP classifica para uso do clienteClean core
CObjetos internos da SAP não classificados nem destinados ao uso do clienteCondicionalmente clean; exige monitoramento de mudanças
DModificações e outros padrões que a SAP não suporta para extensõesNão é clean core

Materiais anteriores da SAP descrevem um modelo de extensibilidade em três camadas com intenção comparável, e os dois vocabulários ainda aparecem na documentação da SAP. Os níveis de clean core transformam o princípio em algo que uma equipe consegue medir objeto por objeto.

Quais são os pontos fortes do princípio de clean core?

  • Upgrades previsíveis: extensões que usam apenas APIs liberadas continuam funcionando entre releases, o que reduz testes de regressão e projetos de upgrade.
  • Compatibilidade com a nuvem: as mesmas regras valem no SAP S/4HANA Cloud Public Edition, então uma equipe on-premise que as segue mantém suas opções em aberto.
  • Uma escada de decisão compartilhada: primeiro o padrão, depois a extensibilidade key user, depois a extensibilidade de desenvolvedor, depois o side-by-side, o que dá a arquitetos e consultores uma linguagem comum.
  • Mensurabilidade: as verificações do ABAP Test Cockpit e a classificação por níveis tornam o progresso visível em vez de anedótico.
  • Menor custo no longo prazo: menos modificações significam menos ajustes em support packages e mudanças de release.

Para qualquer organização que queira se manter nos releases atuais da SAP, o clean core é a política de extensão que as próprias ferramentas e orientações da SAP foram construídas para suportar.

Onde o clean core para?

  • Não decide o que construir. O clean core governa como uma extensão depende da SAP, não se o requisito por trás dela vale a pena ser construído.
  • Desloca a complexidade em vez de removê-la. Uma extensão side-by-side é clean para o core, mas acrescenta integração, identidade, monitoramento e um segundo ciclo de vida.
  • A cobertura de APIs é desigual. Onde não existe API liberada, as equipes recorrem ao nível C ou esperam, e essa lacuna é uma reclamação frequente nas comunidades de profissionais.
  • Código legado leva anos. Grandes bases de código da era ECC avançam nível a nível; a medição mostra a distância, não o caminho.
  • A responsabilidade está fora do escopo. Uma extensão pode ser perfeitamente clean e ainda assim não ter um responsável, documentação ou um vínculo com o processo que suporta.

O clean core mantém o ERP atualizável; responsabilidade, desenho de processo e o custo do landscape ao redor continuam sendo questões separadas.

Como decidir onde uma extensão deve ficar?

Desça esta escada e pare na primeira opção que atende ao requisito:

  1. Padrão ou configuração. Um parâmetro, um business role ou um app entregue pela SAP resolve?
  2. Extensibilidade key user. É um campo customizado, uma verificação, um valor padrão ou uma adaptação de UI? A necessidade da Alder Manufacturing de um campo de avaliação do fornecedor nos pedidos de compra termina aqui.
  3. Extensibilidade de desenvolvedor. Precisa de ABAP customizado próximo aos dados e às transações do SAP S/4HANA? Construa com ABAP Cloud on-stack.
  4. Side-by-side no SAP BTP. Atende usuários externos, combina vários sistemas ou precisa de ciclo de vida próprio? Um portal de autoatendimento para a Cedar Office Supply pertence a este nível.
  5. Extensão clássica. Somente com uma exceção documentada, um responsável e um plano para subir de nível.

A decisão de clean core é tomada por requisito, e o motivo de cada escolha deve ser registrado onde os arquitetos possam encontrá-lo depois.

Quais são os erros comuns com clean core?

  1. Tratá-lo como uma limpeza pontual. Sem verificações no processo de desenvolvimento, novos objetos de nível C e D aparecem depois que o projeto termina.
  2. Proibir o nível C por completo. Alguns requisitos ainda não têm API liberada; um objeto de nível C monitorado pode ser a escolha honesta.
  3. Contar objetos em vez de risco. Uma modificação em uma rotina central de lançamento pesa mais do que muitos relatórios sem uso.
  4. Mover tudo para o SAP BTP. O side-by-side não é automaticamente mais clean se a extensão ainda precisa de interfaces não liberadas.
  5. Esquecer a camada de UI. Apps SAP Fiori copiados e modificados carregam o próprio risco de upgrade; os mecanismos de extensão de UI da SAP, como os adaptation projects, são o caminho mais seguro.

A maioria das falhas de clean core são falhas de governança que aparecem depois como esforço de upgrade.

Clean core vs. ABAP Cloud: qual é a diferença?

Clean coreABAP Cloud
O que éUm princípio e uma meta de governançaUm modelo de desenvolvimento e uma versão da linguagem ABAP
EscopoExtensões, configuração, integração, dados e operaçõesCódigo ABAP customizado on-stack ou no SAP BTP ABAP environment
Imposto porPolíticas, verificações do ABAP Test Cockpit, níveis de clean coreO compilador: somente APIs liberadas são permitidas
RelaçãoA metaUm dos principais caminhos para atingir a meta no código ABAP

O clean core é o estado-alvo; o ABAP Cloud é o modelo de desenvolvimento que faz o código ABAP customizado atender a essa meta por construção.

Perguntas frequentes

O clean core só é relevante para o SAP S/4HANA Cloud Public Edition?

Não. A Public Edition impõe o clean core por design, porque ali os clientes não podem modificar código SAP. A Private Edition e o on-premise permitem modificações, então o clean core passa a ser uma decisão de governança. As orientações da SAP e as verificações do ABAP Test Cockpit se aplicam às três opções de implantação.

Clean core significa nenhum código customizado?

Não. O clean core permite muito código customizado, desde que ele dependa apenas de APIs e pontos de extensão liberados. Um sistema com muitas extensões ABAP Cloud e apps side-by-side bem construídos pode ser mais clean do que um sistema com poucas modificações diretas.

Como se mede o clean core?

O ABAP Test Cockpit executa verificações de clean core sobre o código customizado, e a SAP fornece uma variante de verificação dedicada à prontidão para clean core. O SAP Cloud ALM classifica os objetos nos níveis A a D e reporta uma participação de clean core, o que torna o progresso visível ao longo do tempo.

Qual é a diferença entre clean core e ABAP Cloud?

Clean core é o princípio de manter o ERP próximo do padrão. ABAP Cloud é o modelo de desenvolvimento que restringe o código ABAP a APIs liberadas e a recursos de linguagem prontos para a nuvem. O ABAP Cloud é um caminho para alcançar o clean core; a extensibilidade key user e a side-by-side são outros.

Um sistema com modificações ainda pode ser chamado de clean core?

Não nos objetos modificados. As modificações são classificadas no nível mais baixo, fora do clean core. O restante do sistema ainda pode ser clean, e muitas organizações acompanham as modificações remanescentes como dívida técnica, com um plano para substituí-las ao longo do tempo.

Fontes

Aplica-se a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition
Última revisão

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP e os demais produtos e serviços SAP mencionados são marcas comerciais ou marcas registradas da SAP SE (ou de uma empresa afiliada da SAP) na Alemanha e em outros países. Este guia é independente e não é afiliado, patrocinado nem endossado pela SAP SE.