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 ▾
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ível | O que o objeto usa | Classificação |
|---|---|---|
| A | Somente ABAP Cloud e APIs liberadas | Clean core |
| B | APIs liberadas mais APIs clássicas que a SAP classifica para uso do cliente | Clean core |
| C | Objetos internos da SAP não classificados nem destinados ao uso do cliente | Condicionalmente clean; exige monitoramento de mudanças |
| D | Modificações e outros padrões que a SAP não suporta para extensões | Nã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:
- Padrão ou configuração. Um parâmetro, um business role ou um app entregue pela SAP resolve?
- 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.
- 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.
- 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.
- 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?
- 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.
- 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.
- 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.
- 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.
- 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 core | ABAP Cloud | |
|---|---|---|
| O que é | Um princípio e uma meta de governança | Um modelo de desenvolvimento e uma versão da linguagem ABAP |
| Escopo | Extensões, configuração, integração, dados e operações | Código ABAP customizado on-stack ou no SAP BTP ABAP environment |
| Imposto por | Políticas, verificações do ABAP Test Cockpit, níveis de clean core | O compilador: somente APIs liberadas são permitidas |
| Relação | A meta | Um 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
- SAP Help Portal: Clean core extensibility and ABAP-based extensions
- SAP Help Portal: SAP Cloud ALM — extensibility and clean core levels
- SAP Help Portal: Keep clean core governance with ABAP Test Cockpit
- SAP Help Portal: Extensibility options compared (ABAP platform)
- SAP Help Portal: Clean Core Extensibility for SAP Cloud ERP (clean core dimensions)
- Aplica-se a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition
- Última revisão