Pular para conteúdo

Migração AdvPL → TLPP

Status: parcial — afirmações verificadas, com lacunas declaradas. [n · F] remete à fonte n da 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, .prg e .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ções STATIC só podem ser acessadas por funções ou métodos do mesmo fonte, e por isso rotinas que usam StaticCall nã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 StaticCall nã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 .tlpp a 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 com StaticCall direto 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 WsRESTful para 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.