× Linguagem de Programação ADVPL

Perguntas Erro ExecAuto

Mais
10 anos 10 meses atrás #20217 por JamesWesTRP
Erro ExecAuto foi criado por JamesWesTRP
Pessoal bom dia!

estou fazendo um fonte, para gerar um novo orçamento, baseado em um existente em outra Filial.

Como o Protheus so realiza copias dentro da mesma Filial, estou customizando.

Porém dá um erro:

TOTVS Build 7.00.120420A-20120726
THREAD ERROR ([4880], gustavo, GUSTAVO-PC) 17/01/2014 16:52:00
variable is not array - Type [C] on MSGETDBAUTO(MSAUTOPR.PRW) 06/12/2012 13:59:14 line : 839


Meu fonte está em anexo, porém eu passo o cabeçalho e itens como array, já ate debuguei...

Se alguém puder ajudar!

Obrigado!
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 10 meses atrás #20234 por lalberto
Respondido por lalberto no tópico Erro ExecAuto
Segue um exemplo:

Local aArea := GetArea()

Local lRet := .T. // Auxiliar do retorno da funcao
Local nPosProd := aScan(oGetDad5:AHEADER,{|x|AllTrim(x[2])=="ADJ_PROD"}) // Posicao do campo ADJ_PROD
Local nPosCat := aScan(oGetDad5:AHEADER,{|x|AllTrim(x[2])=="ADJ_CATEG"}) // Posicao do campo ADJ_CETEG
Local nPosQtd := aScan(oGetDad5:AHEADER,{|x|AllTrim(x[2])=="ADJ_QUANT"}) // Posicao do campo ADJ_QUANT
Local nPosPrc := aScan(oGetDad5:AHEADER,{|x|AllTrim(x[2])=="ADJ_PRUNIT"}) // Posicao do campo ADJ_PRUNIT
Local nPosVlr := aScan(oGetDad5:AHEADER,{|x|AllTrim(x[2])=="ADJ_VALOR"}) // Posicao do campo ADJ_VALOR

Local cTamCli := TamSx3("CJ_CLIENTE")[1]
Local cTamLoj := TamSx3("CJ_LOJA")[1]
Local nCont := 0
Local nQtd := 0
Local nPrc := 0
Local nVlr := 0
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local cDoc := ""
Local cCliPad := SuperGetMv("MV_ORCLIPD")
Local cCodCli := ""
Local cLoja := ""
Local cCodPro := ""
Local cLojPro := ""

PRIVATE lMsErroAuto := .F.

If M->AD1_STATUS == "9" // Proposta Ganha

For nCont := 1 to Len(oGetDad5:ACOLS)

If Empty(oGetDad5:ACOLS[nCont,nPosCat]) .AND. Empty(oGetDad5:ACOLS[nCont,nPosProd])

lRet:= .F.

Else

If oGetDad5:ACOLS[nCont,nPosQtd] == 0
oGetDad5:ACOLS[nCont,nPosQtd] := 1
Endif

If oGetDad5:ACOLS[nCont,nPosPrc] == 0
oGetDad5:ACOLS[nCont,nPosPrc] := 1
Endif

If oGetDad5:ACOLS[nCont,nPosVlr] == 0
oGetDad5:ACOLS[nCont,nPosVlr] :=oGetDad5:ACOLS[nCont,nPosQtd] * oGetDad5:ACOLS[nCont,nPosPrc]
Endif

aLinha := {}
aadd(aLinha,{"CK_ITEM" ,StrZero(nCont,2) ,Nil})
aadd(aLinha,{"CK_PRODUTO" ,oGetDad5:ACOLS[nCont,nPosProd] ,Nil})
aadd(aLinha,{"CK_QTDVEN" ,oGetDad5:ACOLS[nCont,nPosQtd] ,Nil})
aadd(aLinha,{"CK_PRCVEN" ,oGetDad5:ACOLS[nCont,nPosPrc] ,Nil})
aadd(aLinha,{"CK_PRUNIT" ,oGetDad5:ACOLS[nCont,nPosPrc] ,Nil})
aadd(aLinha,{"CK_VALOR" ,oGetDad5:ACOLS[nCont,nPosVlr] ,Nil})
aadd(aLinha,{"CK_TES" ,"501" ,Nil})
aadd(aItens,aLinha)

Endif

Next nCont

If lRet

If Empty(M->AD1_CODCLI)
cCodCli := SubStr(cCliPad,1,cTamCli)
cLoja := SubStr(cCliPad,cTamCli+1,cTamLoj)
cCodPro := M->AD1_PROSPE
cLojPro := M->AD1_LOJPRO
Else
cCodCli := M->AD1_CODCLI
cLoja := M->AD1_LOJCLI
EndIf

cDoc := GetSxeNum("SCJ","CJ_NUM")

RollBAckSx8()

aadd(aCabec,{"CJ_NUM" ,cDoc ,Nil})
aadd(aCabec,{"CJ_CLIENTE" ,cCodCli ,Nil})
aadd(aCabec,{"CJ_LOJA" ,cLoja ,Nil})
aadd(aCabec,{"CJ_LOJAENT" ,cLoja ,Nil})
aadd(aCabec,{"CJ_CONDPAG" ,"001" ,Nil})
aadd(aCabec,{"CJ_TABELA" ,"999" ,Nil})
aadd(aCabec,{"CJ_NROPOR" ,M->AD1_NROPOR ,Nil})
aadd(aCabec,{"CJ_REVISA" ,M->AD1_REVISA ,Nil})

MsAguarde({||MSExecAuto({|x,y,z| MATA415(x,y,z)},aCabec,aItens,3)},"Aguarde...","Gerando orçamento...")

//Alert("Incluido com sucesso! "+cDoc)
If lMsErroAuto
MOSTRAERRO()
lRet:= .F.
EndIf

M->AD1_NUMORC := cDoc

Else

Alert("Não é possível finalizar uma oportunidade como ganha sem ter um produto cadastrado.")

Endif

Endif

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 10 meses atrás #20317 por JamesWesTRP
Respondido por JamesWesTRP no tópico Erro ExecAuto
Grande Luiz!

Muito obrigado!

Problema tava na montagem do Array dos Itens!

Totvs, pra varia, dando mensagem que eu não entendo haha mas ta valendo!

Obrigado!!

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.124 segundos
Joomla templates by a4joomla