Migração AdvPL → TLPP¶
Status: parcial — afirmações verificadas, com lacunas declaradas.
[n · F]remete à fontenda lista de fontes; a letra marca a procedência: F fato em fonte oficial TOTVS/TDN · S fonte secundária (blog, fórum) · unverified sem fonte que sustente.
Escopo desta seção¶
A migração mecânica, a armadilha central que trava migrações reais, a regra de interoperabilidade nos dois sentidos e — o mais importante — quando não migrar.
A migração mecânica¶
- A migração mecânica é: o fonte vira
.tlpp, abandonando.prw,.prge.prx, e recebe#include "tlpp-core.th".[13, 25 · F] - Não há migração forçada: produtos atuais feitos em AdvPL seguem suportados.[2 · F]
A armadilha central: STATIC e StaticCall¶
- Armadilha central: em fontes
.tlpp, funçõesSTATICsó podem ser acessadas por funções ou métodos do mesmo fonte, e por isso rotinas que usamStaticCallnão funcionam em TLPP.[46 · F] - O blog oficial TOTVS diz o mesmo em prosa para o caso indireto: rotinas com MVC e outras que usam
StaticCallnão são compatíveis com TLPP e precisam ficar em.prw.[33 · S]
Não escreva «o TLPP descontinuou o StaticCall»
A formulação não existe no blog e é tecnicamente incorreta. StaticCall não foi
removido como palavra-chave: o que muda é que a função STATIC fica restrita ao
próprio fonte, e por isso a chamada estática a outro fonte deixa de
funcionar.[46] Ver Conflitos entre fontes.
MVC em .tlpp — a janela de release¶
- MVC só passa a funcionar em
.tlppa partir do release 12.1.2410; até o release 12.1.2310 o MVC padrão AdvPL não funciona em fontes.TLPP.[46, 34 · F]
Interoperabilidade¶
- Funções TLPP podem ser chamadas de AdvPL desde que tenham namespace, na forma
namespace.suafuncao(), e nesse caso nomes longos são reconhecidos.[59 · F] - Armadilha de nome: nome de função com mais de 10 caracteres compila em AdvPL, mas só os 10 primeiros são registrados no RPO — o que faz funções longas só fazerem sentido em TLPP com namespace.[18 · F]
REST: FWREST → annotations¶
- Existe trilha oficial "Migração WsRESTful para REST tlppCore", de FWREST para annotations, com tabela De/Para.[17 · F]
Quando NÃO migrar¶
- Na prática permanecem em
.prw: rotinas comStaticCalldireto e rotinas MVC de ambientes anteriores ao 12.1.2410.[46, 33 · S] - Para código novo, TLPP é a recomendação do próprio repositório oficial.[50 · F]
Regra prática
Migre o que é novo ou o que não depende de StaticCall nem de MVC legado. O resto
fica onde está — e continua suportado.[2]
Lacunas declaradas¶
Lacuna: a migração de REST de
WsRESTfulpara annotations tem trilha oficial[17], mas o passo a passo não foi extraído nesta passada.Lacuna: custo de recompilação e impacto em pontos de entrada na migração não têm fonte coletada.
Fontes¶
[2] · [13] · [17] · [18] · [25] · [33] · [34] · [46] · [50] · [59] — ver lista completa.