- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MATA650 - AUTEXPLODE
×
Linguagem de Programação ADVPL
Perguntas MATA650 - AUTEXPLODE
- Sato
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 14
- Obrigados Recebidos: 0
11 anos 4 meses atrás #16516
por Sato
MATA650 - AUTEXPLODE foi criado por Sato
Criei uma rotina para a geração automatica de OP e empenho, se executo a rotina e marco o "AUTEXPLODE = N" ele executa o msexecauto perfeitamente, agora se marco o "AUTEXPLODE = S" ele da erro e me "array out of bounds {0] of [78}"
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 4 meses atrás #16526
por henry.charriere
Respondido por henry.charriere no tópico MATA650 - AUTEXPLODE
Adriano, será que não é algum campo obrigatório que não está no array?
Possibilidades de postar seu código?
Atc,
Henry
Possibilidades de postar seu código?
Atc,
Henry
Por favor Acessar ou Registrar para participar da conversa.
- l.nunes88
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
- Sato
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 14
- Obrigados Recebidos: 0
11 anos 4 meses atrás #16556
por Sato
Respondido por Sato no tópico MATA650 - AUTEXPLODE
User Function GERAOP()
Local _aAreaOP := GetArea()
Local nItemOP := 0
DbSelectArea("SC6")
SC6->( DbSetOrder(1) )
SC6->( DbGoTop() )
If DbSeek(xFilial("SC6")+SC5->C5_NUM)
aMata650 := {}
While !SC6->( EOF() ) .and. SC6->C6_NUM = SC5->C5_NUM
nGrupo := Posicione("SB1", 1, XFilial("SB1") + SC6->C6_PRODUTO, "B1_GRUPO")
If nGrupo == "4100"
nItemOP += 1
mObserva := SUBSTR(Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_OBSERV"),1,30)
cAmbiente := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_AMBIEN")
nLargura := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_LARGUR")
nAltura := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_ALTURA")
cCodServ := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_CODIGO")
cRoteiro := Posicione("SB1", 1, XFilial("SB1") + cCodServ, "B1_OPERPAD")
aAdd(aMata650, {"C2_FILIAL" , xFilial("SC2") ,Nil})
//aAdd(aMata650, {"C2_NUM" , cNumOP ,Nil})
aAdd(aMata650, {"C2_ITEM" , STRZERO(nItemOP,2) ,Nil})
aAdd(aMata650, {"C2_SEQUEN" , "001" ,Nil})
aAdd(aMata650, {"C2_PRODUTO" , SC6->C6_PRODUTO ,NIL})
aAdd(aMata650, {"C2_LOCAL" , SC6->C6_LOCAL ,Nil})
aAdd(aMata650, {"C2_QUANT" , SC6->C6_QTDVEN ,NIL})
aAdd(aMata650, {"C2_UM" , SC6->C6_UM ,Nil})
aAdd(aMata650, {"C2_DATPRI" , dDatabase ,NIL})
aAdd(aMata650, {"C2_DATPRF" , dDatabase ,NIL})
aAdd(aMata650, {"C2_OBS" , mObserva ,Nil})
aAdd(aMata650, {"C2_EMISSAO" , SC5->C5_EMISSAO ,Nil})
aAdd(aMata650, {"C2_STATUS" , "N" ,Nil})
aAdd(aMata650, {"C2_PEDIDO" , SC6->C6_NUM ,Nil})
aAdd(aMata650, {"C2_ITEMPV" , SC6->C6_ITEM ,Nil})
aAdd(aMata650, {"C2_TPOP" , "F" ,Nil})
aAdd(aMata650, {"C2_CFBLOCO" , SC5->C5_CFBLOCO ,Nil})
aAdd(aMata650, {"C2_LARGURA" , nLargura ,Nil})
aAdd(aMata650, {"C2_ALTURA" , nAltura ,Nil})
aAdd(aMata650, {"C2_AMBIENT" , cAmbiente ,Nil})
aAdd(aMata650, {"C2_ROTEIRO" , cRoteiro ,Nil})
aAdd(aMata650, {"AUTEXPLODE" , "S" ,NIL}) // definir se as OP's intermediárias e as solicitações de compras que ainda não foram geradas devem ser geradas automaticamente ou não.
Endif
SC6->( DbSkip() )
EndDo
If (Len(aMata650) > 0)
lMsErroAuto := .F.
lMsHelpAuto := .F.
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,3)
IF lMsErroAuto
Help( "",1,"Atencao",,"Não foi possivel incluir a Ordem de Produção. Contate o administrador do sistema.",1,1 )
MostraErro()
EndIf
EndIf
EndIf
RestArea(_aAreaOP)
Return
Local _aAreaOP := GetArea()
Local nItemOP := 0
DbSelectArea("SC6")
SC6->( DbSetOrder(1) )
SC6->( DbGoTop() )
If DbSeek(xFilial("SC6")+SC5->C5_NUM)
aMata650 := {}
While !SC6->( EOF() ) .and. SC6->C6_NUM = SC5->C5_NUM
nGrupo := Posicione("SB1", 1, XFilial("SB1") + SC6->C6_PRODUTO, "B1_GRUPO")
If nGrupo == "4100"
nItemOP += 1
mObserva := SUBSTR(Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_OBSERV"),1,30)
cAmbiente := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_AMBIEN")
nLargura := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_LARGUR")
nAltura := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_ALTURA")
cCodServ := Posicione("ZA1", 1, XFilial("ZA1") + SC6->C6_NUM, "ZA1_CODIGO")
cRoteiro := Posicione("SB1", 1, XFilial("SB1") + cCodServ, "B1_OPERPAD")
aAdd(aMata650, {"C2_FILIAL" , xFilial("SC2") ,Nil})
//aAdd(aMata650, {"C2_NUM" , cNumOP ,Nil})
aAdd(aMata650, {"C2_ITEM" , STRZERO(nItemOP,2) ,Nil})
aAdd(aMata650, {"C2_SEQUEN" , "001" ,Nil})
aAdd(aMata650, {"C2_PRODUTO" , SC6->C6_PRODUTO ,NIL})
aAdd(aMata650, {"C2_LOCAL" , SC6->C6_LOCAL ,Nil})
aAdd(aMata650, {"C2_QUANT" , SC6->C6_QTDVEN ,NIL})
aAdd(aMata650, {"C2_UM" , SC6->C6_UM ,Nil})
aAdd(aMata650, {"C2_DATPRI" , dDatabase ,NIL})
aAdd(aMata650, {"C2_DATPRF" , dDatabase ,NIL})
aAdd(aMata650, {"C2_OBS" , mObserva ,Nil})
aAdd(aMata650, {"C2_EMISSAO" , SC5->C5_EMISSAO ,Nil})
aAdd(aMata650, {"C2_STATUS" , "N" ,Nil})
aAdd(aMata650, {"C2_PEDIDO" , SC6->C6_NUM ,Nil})
aAdd(aMata650, {"C2_ITEMPV" , SC6->C6_ITEM ,Nil})
aAdd(aMata650, {"C2_TPOP" , "F" ,Nil})
aAdd(aMata650, {"C2_CFBLOCO" , SC5->C5_CFBLOCO ,Nil})
aAdd(aMata650, {"C2_LARGURA" , nLargura ,Nil})
aAdd(aMata650, {"C2_ALTURA" , nAltura ,Nil})
aAdd(aMata650, {"C2_AMBIENT" , cAmbiente ,Nil})
aAdd(aMata650, {"C2_ROTEIRO" , cRoteiro ,Nil})
aAdd(aMata650, {"AUTEXPLODE" , "S" ,NIL}) // definir se as OP's intermediárias e as solicitações de compras que ainda não foram geradas devem ser geradas automaticamente ou não.
Endif
SC6->( DbSkip() )
EndDo
If (Len(aMata650) > 0)
lMsErroAuto := .F.
lMsHelpAuto := .F.
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,3)
IF lMsErroAuto
Help( "",1,"Atencao",,"Não foi possivel incluir a Ordem de Produção. Contate o administrador do sistema.",1,1 )
MostraErro()
EndIf
EndIf
EndIf
RestArea(_aAreaOP)
Return
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MATA650 - AUTEXPLODE
Tempo para a criação da página:0.104 segundos