No artigo de hoje, vou mostrar como resolver o erro Array out of bounds (3 of 2) em um MsExecAuto.
Recentemente eu estava conversando com meu amigo Rodrigo dos Santos – BlackTDN ( GitHub ), e ele comentou comigo uma dica interessante para publicar que às vezes o pessoal pode bater a cabeça.
Quando se é feito um ExecAuto (no modelo tradicional, sem ser em MVC), geralmente passamos os campos em um Array, porém e se acontecer o erro de Array out of bounds 3 de 2, o que devemos fazer?
Calma jovens, não precisa se desesperar, a solução é mais simples do que parece, acontece que grande parte das rotinas automáticas em AdvPL, antigamente usavam um terceiro parâmetro na informação e campos em rotinas automatizadas.
Com o tempo esse parâmetro entrou em desuso. Então o que devemos fazer, é informar Nil como terceiro parâmetro dos campos.
Abaixo um exemplo, na parte de cima com o erro, e na parte abaixo sem o erro:
//Sem passar o Nil, vai ocasionar o erro - Array out of bounds (3 of 2) aAdd(aLinha, {'C7_PRODUTO', '000004' }) aAdd(aLinha, {'C7_QUANT', 3 }) aAdd(aLinha, {'C7_PRECO', 20.50 }) // ----------------------- //Passando o valor nulo na terceira posição aAdd(aLinha, {'C7_PRODUTO', '000004', Nil}) aAdd(aLinha, {'C7_QUANT', 3, Nil}) aAdd(aLinha, {'C7_PRECO', 20.50, Nil})
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Boa noite
Perfeito, resolveu a distração por aqui.
Muito obrigado
Bom dia Rafael, tudo joia?
Opa, nós que agradecemos pelo comentário e feedback.
Um grande abraço.