×
Linguagem de Programação ADVPL
Perguntas Erro ExecAuto
- JamesWesTRP
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 248
- Obrigados Recebidos: 1
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!
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!
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 10 meses atrás #20234
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
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
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.
- JamesWesTRP
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 248
- Obrigados Recebidos: 1
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!!
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