O que e o RPO Token?
RPO Token e um conceito moderno do Protheus que garante seguranca e organizacao do RPO em ambientes multi-tenant. Como funciona?
Versoes recentes do Protheus introduziram o conceito de RPO Token — um identificador que controla quais customizacoes podem rodar e como elas convivem com o RPO padrao TOTVS. Esse texto explica o que e e por que importa.
O problema
Antes do RPO Token, dev customizava um cliente compilando direto no RPO (single token). Resultado:
- Customizacao quebrada por update da TOTVS (sobrescrevia)
- Mistura de codigo cliente + codigo padrao no mesmo RPO
- Cliente nao podia receber update sem perder customizacoes
- Cloud multi-tenant impossivel (todos os clientes na mesma JVM)
A solucao: tokens isolados
RPO Token cria compartimentos dentro do mesmo AppServer. Cada token contem:
- Conjunto isolado de fontes compilados
- Regras proprias (ex: permite ou nao Function nua, exige User Function)
- Pode ser ativado/desativado sem afetar outros
Geralmente o ambiente tem:
- Token padrao: RPO TOTVS oficial (intocavel)
- Token customizacao: codigo do cliente (.prw que voce compila)
- Token terceiros: ERPs especializados (Boleto Pro, Reformatador, etc.)
Como afeta voce, dev
Voce escreve um fonte com Function CalcImposto() e tenta compilar. Em ambiente sem RPO Token: compila. Em ambiente moderno com token: erro Regular functions are not allowed in code. Use USER FUNCTION or STATIC FUNCTION.
Isso e o token enforcando: customizacao so pode adicionar User Function (com prefixo U_) ou Static Function (privada ao fonte). Nunca substituir funcao padrao.
Como isso afeta upgrades
TOTVS atualiza o RPO padrao. Seu RPO de customizacao fica intocado. Quando rodar a rotina padrao alterada, ela pode chamar:
- PEs (Pontos de Entrada) — seus PEs continuam funcionando
- User Functions custom que voce criou — continuam
- Outros pontos de extensao oficiais
Sem mais sobrescrever fonte padrao. Update vira tranquilo.
Onde ver tokens ativos
No Configurador, em "Sobre o ambiente", lista tokens carregados. Tambem via SQL na tabela SVN/SVK (varia por versao).
RPO Tokens vs Patches
- RPO Token: compartimento de codigo (organizacao)
- Patch (.ptm): pacote pra distribuir/aplicar atualizacao de RPO
Sao conceitos diferentes mas relacionados. Voce gera patch dentro de um token especifico.