Você sabe o que significam as letras na chamada de um MsExecAuto?

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.

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

2 Responses

  1. Marco Nagoa - Conectar disse:

    bão demais…. grato Dan.

Deixe uma resposta