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