O que é PARAMIXB?

No artigo de hoje, iremos abordar sobre o que é o PARAMIXB.

Quando trabalhamos com os pontos de entrada, boa parte deles nos dão informações de como a rotina padrão estava sendo executada.

Por exemplo, ao criar um ponto de entrada após manipular o documento de entrada (MT103FIM), você precisa saber qual opção o usuário clicou (inclusão, alteração, etc), e se ele confirmou ou cancelou a operação. Então como podemos saber desses detalhes?

É por isso que existe o PARAMIXB, ele pode ser um parâmetro único ou um array com vários parâmetros disponibilizado a partir do ExecBlock no código fonte original.

Para descobrir se o ponto de entrada tem os parâmetros disponibilizados, você pode procurar pelo P.E. no TDN (por exemplo, o MT103FIM está nesse link https://tdn.totvs.com/pages/releaseview.action?pageId=6085406 ), ou se você for um analista interno da TOTVS e tiver acesso aos fontes padrões, você pode procurar pelo P.E. e ver como está o ExecBlock dele. Por exemplo:

If ExistBlock("zDaniel")
	ExecBlock("zDaniel", .F., .F., {cNome, dData, nValor})
EndIf

If ExistBlock("zAtilio")
	ExecBlock("zAtilio", .F., .F., cNome)
EndIf

No exemplo acima, temos dois pontos de entrada, o zDaniel e o zAtilio, no zDaniel é disponibilizado um Array com 3 conteúdos nome [01], data [02] e valor [03]. Então se utilizarmos o PARAMIXB nesse caso, ele nos retornará um array com 3 posições.

Já no zAtilio, ele disponibiliza apenas cNome, então se utilizarmos o PARAMIXB nesse caso, ele nos retornará um conteúdo do tipo Caractere.

Voltando ao caso do MT103FIM, conforme o link do TDN acima, ele nos retorna um array com duas posições, então poderíamos simplesmente ter esse cenário:

User Function MT103FIM()
	Local aArea     := GetArea()
	Local aAreaF1   := SF1->(GetArea())
	Local aAreaD1   := SD1->(GetArea())
	Local nOpcao    := PARAMIXB[1]   // Opção Escolhida pelo usuario no aRotina 
	Local nConfirma := PARAMIXB[2]   // Se o usuario confirmou a operação de gravação

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta