ZEXTENDRA) é o ecossistema central de integração fiscal da Extendra nativo para ambientes SAP ECC e S/4HANA. Ele orquestra a comunicação bidirecional com o orquestrador n8n, aplica lógicas tributárias complexas (Reforma Tributária IBS/CBS) e monitora ativamente as operações de documentos fiscais (NF-e, NFS-e, CC-e, Inutilização).
O pacote utiliza um modelo de comunicação moderno onde o SAP atua como o iniciador (Master) enviando payloads estruturados em JSON para as rotas webhook do orquestrador n8n (Worker), que se encarrega do roteamento para as diversas prefeituras e SEFAZ.
A estrutura orientada a objetos do ZEXTENDRA foi desenhada para promover o reuso, encapsulamento de rotinas HTTP e a padronização das chamadas.
ZCL_EXTENDRA_DFE (Fachada Principal)A classe central (Motor Fiscal) por onde todas as emissões e lógicas de negócio transitam.
PROCESS_DFE: Ponto de entrada padrão. Constrói o XML base e decide a rota.BUILD_IBS_CBS_TAGS: Implementa a Reforma Tributária. Inspeciona a tabela ZEX_CLSTRIB. Se TIPO_ALIQ = 'S', gera apenas CST e cClassTrib, evitando cálculos de valores.PROCESSAR_RESPONSE_NFSE: Faz o parsing do JSON retornado pelo n8n. Recupera o array erros[] do payload para alimentar precisos CSTAT e XMOTIVO na tabela de controle.PRINT_DFE: Orquestra a extração do DANFSE/PDF disparando a rota /nfse-sap-consulta.Cada classe herda lógicas padronizadas para acionar uma ação específica no motor:
ZCL_INT_OB_SEND_APROVAR_DFE: Submissão e Autorização de Documentos.ZCL_INT_OB_SEND_CANCELAR_DFE: Cancelamento de NF-e/NFS-e.ZCL_INT_OB_SEND_CONSULTAR_DFE: Consulta de Status / Download de XML/PDF.ZCL_INT_OB_SEND_CCE_DFE: Emissão de Carta de Correção.ZCL_INT_OB_SEND_INUT_DFE / ZCL_INT_OB_SEND_CONS_INUT_DFE: Inutilização de Numeração.O método principal PROCESS_DFE da classe ZCL_EXTENDRA_DFE atua como o maestro de todas as operações fiscais. O fluxo abaixo ilustra as chamadas sequenciais para cada tipo de evento:
Para um desenvolvedor que precisa atuar na rotina (correção de bugs ou novas features), aqui está o detalhamento sequencial do que acontece de ponta a ponta quando o PROCESS_DFE é acionado:
SET_MODELO: Define o modelo fiscal do documento processado (ex: 55 para NFe, 65 para NFCe, 57 para CTe ou os modelos de NFSe Municipal). Isso direciona o comportamento do motor nas etapas subsequentes.LOAD_CONFIG: Acessa a base de configuração (como ZEX_CFG_HOST) para carregar dinamicamente o Endpoint correto, as credenciais e os cabeçalhos HTTP com base no ambiente (DEV, QAS, PRD), evitando URLs codificadas (hardcoded).O motor avalia o parâmetro IV_METODO (Aprovar, Consultar, Cancelar, etc.) e segue a trilha correspondente.
A. Trilha de Autorização (APROVAR):
CALCULATE_FIELDS: Realiza o saneamento e formatação de dados base (formatação de CNPJ/CPF, remoção de acentos, consolidação de totais).CALCULATE_SPECIFIC_NFE_APROV / NFSE_APROV: Direciona para lógicas de tratamento exclusivas do tipo de documento (ex: tags obrigatórias padrão ABRASF para NFSe).APLICAR_TRIBUTACAO_RT: Ponto Crítico da Reforma Tributária! É aqui que inicia a análise de IBS e CBS.
DETERMINAR_TRIBUTACAO_RT, que busca a "Regra Campeã" cruzando Empresa (BUKRS), Material (MATNR), NCM (STEUC) e Estado (UF) contra a tabela de parametrização ZEX_CLSTRIB, utilizando uma heurística matemática de pesos.BUILD_IBS_CBS_TAGS para construir as tags e calcular efetivamente os valores dos impostos (incluindo cálculo "por dentro"). Se a regra ditar "Sem Alíquota" (TIPO_ALIQ = 'S'), a classe suprime de forma inteligente as tags de valor e preserva os metadados CST.MAP_PAYLOAD_APROVAR: Serializa a estrutura ABAP interna para a montagem final do Payload JSON/XML que trafegará na rede.ZCL_INT_OB_SEND_APROVAR_DFE: Classe HTTP Client que executa o POST para a camada N8N / API do Governo.B. Trilhas Operacionais (CONSULTAR, CANCELAR, INUTILIZAR, CCE):
MAP_PAYLOAD_* (para montar o pedido contendo chaves de acesso, justificativas, etc.) seguido imediatamente pelo disparo em sua respectiva classe ZCL_INT_OB_SEND_*.Após a ida ao orquestrador, a resposta retorna à classe para ser digerida e gravada de volta no ERP:
PROCESSAR_RESPONSE_NFE / PROCESSAR_RESPONSE_NFSE: Métodos vitais para Troubleshooting. Eles desdobram a resposta e extraem o Código e Motivo.
PROCESSAR_RESPONSE_NFSE que o motor itera o array de erros[] nativos da integração e preenche as variáveis de status SAP (CSTAT / XMOTIVO).GRAVAR_LOG_DFE / SET_RETORNO_SOLIC_AUTH_DFE: Salva a evidência inquestionável da transação. Persiste o JSON/XML de Envio e o Retorno nas tabelas ZEX_T_DFE_INT (Cabeçalho de Controle) e ZEX_LOG_DFE (Eventos e Log Histórico). Isso garante que ferramentas analíticas e o cockpit interativo ALV (ZEX_REL_DFE) possuam integridade visual para o negócio.Para eliminar URLs hardcoded e permitir transporte transparente entre DEV/QAS/PRD:
ZEX_CFG_HOST: Define o Hostname ativo (Ex: https://dev-extendran8n.saphana.dev).ZEX_CFG_URL / ZEX_CFG_API / ZEX_CFG_MET: Define os endpoints e métodos específicos por tipo de operação.ZEX_CLSTRIB: Classes de Tributação.ZEX_CST_IBS, ZEX_ALIQ_IBS: Cadastros de Códigos de Situação Tributária e Alíquotas para os novos impostos.ZEX_CLS_IS, ZEX_CRED_PRES: Imposto Seletivo e Crédito Presumido.ZEX_T_DFE_INT: A tabela principal de estado da integração (Armazena UUID, Status, CSTAT, XML de Envio/Retorno).ZEX_LOG_DFE / ZEX_T_DFE_EVT: Histórico detalhado de Eventos e rastreabilidade de comunicação.A suíte de aplicações abrange desde manutenção até diagnósticos severos:
| Programa / Transação | Descrição | Casos de Uso |
|---|---|---|
ZEX_REL_DFE |
Relatório ALV Fiscal de Monitoramento | Visão Key User. Oculta dados técnicos, exibe status das notas e permite baixar PDF/XML através de botões na toolbar. |
ZEX_SIMULADOR_NFSE |
Simulador Ponta a Ponta | Testes Standalone. Sobe um XML local (cl_ixml), altera tp_amb = 2 e força a submissão via ZCL_EXTENDRA_DFE sem ferir tabelas Standard. |
ZEX_COCKPIT_TRIB |
Cockpit de Configuração Tributária | Tela unificada para cadastro das regras da Reforma Tributária. |
ZEX_SQL_UPDATE |
Suporte ADBC / Filtros J_1BNFE | Correção massiva via UI na J_1BNFE_ACTIVE ou inserção de Open SQL Native para destravar integrações presas. |
[!CAUTION]
A utilização da funcionalidade Native SQL noZEX_SQL_UPDATEquebra as travas lógicas do SAP (ENQUEUE) e realiza modificações diretas no banco de dados HANA. Recomenda-se apenas para perfil de administrador do sistema ou Firefighters.
A demonstração abaixo exibe a harmonia entre o ABAP, a estrutura de roteamento dinâmico e o Middleware N8N durante uma consulta.