Tamanho de Funções no TLPP

Bom dia, estou com uma duvida sobre nomeclartura das funções no TLPP e coloca-las no menu para acesso ao usuário.

De acordo com a documentação https://tdn.engpro.totvs.com.br/display/tec/Nomes+longos

Podemos utilizar nomes maiores para a função em TLPP e realmente funciona, mas percebi que ao colocar no menu do Protheus ele não consegue reconhecer esses nomes grandes para executar a função.

Exemplo:



RTESTERELATORIO01.tlpp
User Function RTESTERELATORIO01
Alert('RTESTERELATORIO01')
Return



RTESTERELATORIO02.tlpp
User Function RTESTERELATORIO02
Alert('RTESTERELATORIO02')
Return

Coloco esses dois itens em menu configurando como user function em qualquer modulo:

2020-10-14_09-38-38.png

Porem ao executar essas funções nos dois itens do menu ela executa sempre a ultima que foi compilada.

Dando a entender que não poderia utilizar função com nomes grandes.

Minha dúvidaé, eu entendi errado como seria essa mudança do TLPP ou eu estou fazendo algo errado para utilizar?

Observação meu ambiente está totalmente atualizado na para a Protheus 12.1.25.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Maike,

O fonte com extensão TLPP dá suporte as novas features da linguagem, como nomes longos, namespace etc.

Porém, o Protheus como um todo, tem diversos cadastros que suportam apenas 10 caracteres, e também executava ações que foram descontinuadas no TLPP, como você pode ver uma observação na seguinte documentação:

https://tdn.totvs.com/pages/viewpage.action?pageId=334340072

Um ponto de entrada por exemplo, é sempre criado com oito caracteres, pois ele será uma user function e devemos com o U_ para então chegarmos ao valor de dez.

Portanto, usar o TLPP para MVC, rotinas que serão chamadas diretamente no menu entre outras questões que envolvem uma execução no Protheus, você pode enfrentar esses problemas, o famoso "legado".

Ou seja ele tem a função mas não funciona completamente rsrs, seria algo mais usado no backend das aplicações.
De toda forma ajuda bastante so precisa ter esse cuidado ao utilizar.
Obrigado Daniel

Oi Maike, tudo bem?

Não posso afirmar, mas aparentemente o menu do Protheus aceita somente 10 caracteres como nome da rotina.

Caso seja de fato necessário escrever a sua rotina em TLPP para ter acesso aos novos recursos, talvez seja necessário você ter somente somente uma função "ponte" em ADVPL na qual você possa colocar no menu, e essa função irá de fato executar a sua rotina em TLPP.

NOTA: Importante ressaltar que caso sua rotina utilize MVC então não pode mesmo migrar para tlpp, conforme descrito na documentação: https://tdn.totvs.com/pages/viewpage.action?pageId=334340072

Abs, Denardi