Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GOVERNANçA TéCNICAPublicado

Uso de recursos internos no Protheus: riscos e boas práticas

API documentada → contrato público | Recurso interno → sem garantia de compatibilidade

Oriente decisões sobre funções, classes e variáveis internas do Protheus sem transformar recursos não documentados em recomendação de uso.

Governança técnicaBoas práticasCompatibilidadeSuporte TOTVSAPIs internasAtualização de release
01 · VISÃO GERAL

Visão geral

Esta página não recomenda o uso de recursos internos. Seu objetivo é ajudar a analisar riscos quando um identificador aparece em código legado, exemplos antigos, fontes de terceiros, includes, rotinas padrão ou documentação histórica. Nem todo recurso tecnicamente existente representa uma API pública. A TOTVS alerta que funções, classes e variáveis internas ou não documentadas não fazem parte do suporte padrão, podem mudar de comportamento e podem ser bloqueadas ou descontinuadas sem aviso. A decisão mais segura é preferir APIs documentadas, registrar exceções e revisar dependências internas antes de atualizações de release.

02 · SINTAXE

Sintaxe

API documentada → contrato público | Recurso interno → sem garantia de compatibilidade

Parâmetros

API documentada
CritérioObrigatório

Possui documentação pública com finalidade, sintaxe, parâmetros, retorno e condições de uso. Deve ser a primeira escolha em customizações.

Recurso interno
CritérioObrigatório

Existe para uso do próprio produto, pode depender de contexto implícito e não oferece contrato público de compatibilidade.

Recurso legado
CritérioOpcional

Pode aparecer em fontes ou materiais antigos, mas precisa ser confirmado no release atual antes de qualquer reaproveitamento.

Exceção controlada
Decisão técnicaOpcional

Uso temporário e documentado, com responsável, motivo, alternativa avaliada, testes, risco aceito e plano de substituição.

Retorno

A página orienta uma decisão técnica: usar recurso documentado, substituir a dependência interna, isolar uma exceção temporária ou registrar a necessidade em canais oficiais.

03 · EXEMPLO PRÁTICO

Preferir uma alternativa documentada

#Include "TOTVS.ch"

User Function ExDecisaoTecnica()
    Local cMensagem := "Processamento concluído"

    // Prefira recursos públicos e documentados.
    MsgInfo(cMensagem, "Resultado")
Return
Resultado esperado

O exemplo usa uma função pública documentada. Em uma migração real, substitua a chamada interna por uma API oficial equivalente ou por uma implementação própria testada.

04 · EXEMPLO PRÁTICO

Checklist para decidir sobre um recurso interno

// Antes de usar:
// 1. Existe documentação oficial?
// 2. A documentação vale para a release usada?
// 3. Há API pública equivalente?
// 4. A rotina roda em interface, job ou serviço?
// 5. O risco foi registrado?
// 6. Existe teste de regressão?
// 7. Há plano de substituição?
Resultado esperado

Se as respostas não forem claras, o uso deve ser evitado ou tratado como exceção técnica temporária.

05 · EXEMPLO PRÁTICO

Registro mínimo de exceção

Recurso: <identificador>
Motivo: <necessidade atendida>
Alternativa avaliada: <API pública ou implementação própria>
Release testada: <versão>
Responsável: <nome/área>
Evidência: <teste, chamado, homologação>
Revisar em: <data>
Resultado esperado

O registro deixa claro que se trata de exceção consciente, não de recomendação geral para novos desenvolvimentos.

BOAS PRÁTICAS
  • Pesquise o identificador no TDN e na Central de Atendimento antes de usá-lo.
  • Confirme se a documentação encontrada corresponde à release, ao módulo e ao contexto de execução usados pela customização.
  • Quando um recurso aparecer apenas em código-fonte, exemplo de terceiros ou material histórico, trate-o como não suportado até prova em documentação oficial.
  • Prefira APIs documentadas, pontos de entrada documentados, classes públicas do Framework ou implementação própria.
  • Se a dependência interna já existe em produção, registre onde ela aparece, por que foi usada, qual risco oferece e qual será o caminho de substituição.
  • Inclua essa verificação em revisões de release, auditorias de customizações, análise de incidentes e saneamento técnico.
ARMADILHAS COMUNS
  • Um recurso interno pode funcionar em uma release e falhar em outra sem que isso seja tratado como quebra de contrato público.
  • Código padrão do produto pode depender de estado interno, ordem de execução, variáveis privadas ou contexto que uma customização não possui.
  • Jobs, web services, rotinas automáticas e interfaces podem reagir de forma diferente ao mesmo recurso interno.
  • Encapsular uma chamada interna reduz espalhamento, mas não transforma o recurso em API suportada.
  • StaticCall() e PTInternal() são exemplos citados pela TOTVS em alerta de propriedade interna, com restrições de compilação a partir da release 12.1.33.
  • Listas copiadas de materiais antigos podem envelhecer; a fonte oficial e o release homologado continuam sendo a referência de validação.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. Cross Segmento — TOTVS Backoffice Linha Protheus — ADVPL — Funções, classes e variáveis de propriedade interna. Central de Atendimento TOTVS. Atualizado em 24 fev. 2026. Acesso em 15 ago. 2026.
  2. Usina.BR. Diretrizes editoriais do AdvPL Guia: preferência por documentação oficial, referências no TDN quando aplicável e revisão em três idiomas.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha