Origem do prefixo MV_ dos parametros
Por que parametros do Protheus se chamam MV_RAZSOC, MV_CTAPAD, MV_NF1MAX e nao apenas RAZSOC, CTAPAD... a sigla MV vem de onde?
Voce nunca parou pra pensar — todos os parametros do sistema sao MV_alguma_coisa. MV_RAZSOC (razao social), MV_CTAPAD (conta contabil padrao), MV_NF1MAX (numero maximo de NF). Por que esse prefixo?
MV = Memory Variable
Vem dos primordios do xBase (Clipper, dBase III), nos anos 80. Naquela epoca, o sistema de tipos de variaveis tinha algumas categorias:
- FieldVar: variavel que corresponde a um campo de tabela aberta
- MemoryVar: variavel "de memoria" — solta, sem amarracao com tabela
- PublicVar: subset de memory vars com escopo publico
Quando voce digitava RAZSOC := "ArchTec" num codigo Clipper, podia haver ambiguidade: RAZSOC e um campo da tabela aberta? Ou uma variavel de memoria?
Solucao da epoca: prefixar com M-> ou M. pra forcar "memory variable". Tipo: M->RAZSOC := "ArchTec" deixava explicito que era memoria, nao tabela.
Do M-> pro MV_
O Protheus, herdando dessa cultura xBase, adotou:
- Campos de tabela: prefixo da tabela (ex:
A1_,E1_) - Parametros do sistema (na tabela SX6): prefixo
MV_
O MV_ e literalmente Memory Variable — mesmo que hoje sejam guardados em tabela. Ficou como convencao.
Por que sobreviveu
Em codigo AdvPL, voce escreve:
nLimite := GetMv("MV_LIMICRD", .F., 0)O prefixo MV_ sinaliza visualmente que e parametro do sistema (lookup na SX6). Sem esse prefixo, voce nao saberia se LIMICRD e variavel local, parametro de sistema, ou campo da SA1.
Outros prefixos historicos
O Protheus tem varios prefixos historicos vivos:
- X3_, X2_, X1_, X5_, X6_: dicionarios (SX3 = campos, SX2 = tabelas, SX6 = parametros)
- SY_, ZZ_: tabelas custom do cliente
- FW: framework moderno (FwLogger, FwHttpClient)
- MA, MS, MV (funcoes): nomes de rotinas (MA030 = cadastro cliente, MSExecAuto, MV = Memory Var)
Comparativo com ERPs modernos
SAP usa T-CODE (transaction code), Oracle EBS usa FND_ (Foundation), Microsoft Dynamics usa SYS_. Cada um carrega marcas do seu DNA tecnico.
O Protheus carrega o DNA do Clipper. MV_ e um pequeno fossil de 30 anos atras, vivo em milhoes de linhas de codigo.