Versão atual:

ExecAuto Mata010

Pessoal, bom dia!

Estou desenvolvendo uma rotina para alteração de produtos através do ExecAuto, já adicionei todos os campos que são obrigatórios no meu ambiente, porém, ao executar a rotina, nenhum erro é retornado e a alteração não é efetivada.

Utilizei a documentação da url abaixo, porém, não é informado quais campos devem obrigatoriamente ser utilizados. https://tdn.totvs.com/pages/releaseview.action?pageId=6087457

Segue trecho do código.

      For nX := 1 To Len(aItem)
            If aItem[nX][1]
                // Limpamos o array aProd para que possa receber o próximo produto
                aProd := {}

                aadd(aProd, {"B1_COD", aItem[nX][2], NIL})
                aadd(aProd, {"B1_DESC", aItem[nX][3], NIL})
                aadd(aProd, {"B1_TIPO", aItem[nX][4], NIL})
                aadd(aProd, {"B1_UM", aItem[nX][5], NIL})
                aadd(aProd, {"B1_LOCPAD", aItem[nX][6], NIL})
                aadd(aProd, {"B1_POSIPI", aItem[nX][9], NIL})
                aadd(aProd, {"B1_ORIGEM", aItem[nX][10], NIL})
                aadd(aProd, {"B1_GARANT", aItem[nX][13], NIL})
                aadd(aProd, {"B1_PICM", aItem[nX][14], NIL})
                aadd(aProd, {"B1_IPI", aItem[nX][15], NIL})
                aadd(aProd, {"B1_CONTRAT", aItem[nX][16], NIL})
                aadd(aProd, {"B1_LOCALIZ", aItem[nX][17], NIL})

                RptStatus({|| MSExecAuto({|x,y| Mata010(x,y)}, aProd, 4)}, "Aguarde...", "Atualizando os produtos...")

                // Tratativa para verificar se a alteração apresentou algum erro
                cErro := MostraErro("C:\temp\Log\", "teste.log")
                nLinhaErro := MLCount(cErro)
                cBuffer := ""
                cCampo := ""
                nErrLin := 1
                cBuffer := RTrim(MemoLine(cErro,,nErrLin))

                // Carrega o nome do campo
                While (nErrLin <= nLinhaErro)
                    nErrLin++
                    cBuffer := RTrim(MemoLine(cErro,,nErrLin))
                    If (Upper(SubStr(cBuffer,Len(cBuffer)-7,Len(cBuffer))) == "INVALIDO")
                        cCampo := cBuffer
                        xTemp := AT("-",cBuffer)
                        cCampo := AllTrim(SubStr(cBuffer,xTemp+1,AT(":",cBuffer)-xTemp-2))
                        Exit
                    EndIf
                EndDo
            EndIf
        Next

Versão (1):

Ver a versão formatada

ExecAuto Mata010

Comentário

new question