Hoje vou explicar para vocês, o que significam aquelas letras na chamada da linha do MsExecAuto (x, y e z).
Existe uma dúvida corriqueira de alguns alunos, sobre o significado das letras que são chamadas na execução automática de rotinas.
Geralmente as letras usadas são x, y, z… Mas qualquer letra pode ser usada aqui, e até mesmo expressões.
O que acontece, é que como na execução de um bloco de código, você tem que passar os parâmetros separados por vírgula, então vamos analisar a seguinte linha abaixo:
MsExecAuto({|x, y, z| MATA410(x, y, z)}, aCabec, aItens, nOperacao)
Na linha acima, o que está ocorrendo é o seguinte, estamos falando para o Protheus utilizar a execução automática (através do MsExecAuto). Em seguida, iniciamos um bloco de código, onde a rotina que será executada é a MATA410, de Pedidos de Venda, e mostramos que essa rotina irá receber 3 parâmetros, o x, o y e o z.
Depois de definir, então passamos o mesmo número de parâmetros definidos, sendo que o aCabec assumirá a letra x, o aItens a letra y e o nOperacao a letra z.
Caso você queira, você pode mudar as letras, por exemplo:
MsExecAuto({|a, b, c| MATA410(a, b, c)}, aCabec, aItens, nOperacao)
Ou se ainda quiser, você pode definir nomes, por exemplo:
MsExecAuto({|aCab, aGrid, nOpc| MATA410(aCab, aGrid, nOpc)}, aCabec, aItens, nOperacao)
Então jovens, resumindo as letras no MsExecAuto, são basicamente os parâmetros que serão enviados para execução dentro da rotina padrão (por isso que se uma rotina tiver que receber 5 parâmetros e você enviar apenas 2, é bem provável que retorne algum erro).
Bom pessoal, por hoje é só.
Abraços e até a próxima.
bão demais…. grato Dan.
Eu que agradeço pelo comentário jovem.
Grande abraço.