Entendendo a Nomenclatura das Funções no Protheus

No artigo de hoje, vamos entender um pouco a nomenclatura de funções e classes padrões do Protheus, por qual motivo umas começam com FW outras com T e assim por diante.

Se você já fez customizações em AdvPL, já deve ter notado algumas funções utilizam FW no começo do nome, outras utilizam a letra T, outras as letras MS, mas qual seria a padronização das funções, e o que significa essas letras?

Essa foi uma dúvida enviada no nosso grupo do WhatsApp e decidi montar um artigo resumindo também sobre o assunto, então segue abaixo as considerações.

Funções de Módulos:

As funções de módulos, são mais simples a padronização, sendo que as 3 primeiras letras são do tipo da função (por exemplo, FIN de Financeiro), a quarta letra é o tipo da rotina (por exemplo, R de Relatório) e os 3 últimos caracteres são um sequencial.

Pegando um exemplo, a MATA010, cadastro de produtos, seria uma rotina de MATeriais sendo do tipo Atualização com o sequencial 010.

Já a FINA040, funções contas a receber, seria uma rotina do FINanceiro sendo do tipo Atualização com o sequencial 040.

Dos tipos de funções, os 4 principais são:

  • A – Atualização
  • C – Cadastro
  • R – Relatório
  • M – Miscelanea

Funções Genéricas:

As funções genéricas, bem antigamente não possuíam uma padronização, então havia funções com nomes comuns como por exemplo Alert, assim como funções que começavam com a letra x, como por exemplo xFilial.

Com o passar do tempo, as classes começaram a ter uma padronização, iniciando com as letras MS fazendo uma referência a Microsiga, então foi dessa época que vieram MSGet, MSDialog, MSExecAuto e assim por diante.

Com o surgimento da TOTVS (após a união da Microsiga com RM, Datasul e Logix), as funções genéricas, passaram a usar a letra T no começo, como por exemplo, TGet, TDialog, TSay entre outras.

Por último, o pessoal da Lib Framework do Protheus, começaram a padronizar as funções genéricas, começando com as letras FW, e assim veio exemplos como as FWAlert*, FWTemporaryTable, FWGetArea / FWRestArea, FWxFilial, FWMVCRotAuto, dentre outras.

Ah Daniel, mas eu posso usar funções antigas? Então jovens, depende… Poder até pode, se elas não tiverem sido descontinuadas, pois podem ocorrer bugs que inviabilizem sua customização. Então o ideal é sempre optar por usar as funções e classes mais novas.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação