Perguntas ExecAuto mata650
- rhmarques
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
8 anos 4 semanas atrás #31268
por rhmarques
ExecAuto mata650 foi criado por rhmarques
Bom dia,
Pessoal estou necessitando implementar um execauto para encerrar uma ordem de produção, essa ordem de produção não vai ter produção apenas um requisição de baixa e depois encerrar a mesma.
Alguém já utilizou o mata650 - MSExecAuto({|x,y| mata650(x,y)},aMata650[1],?).
Como devo preencher o array e qual numero passo no msexecauto.
Desde já agradeço atenção.
Abraço
Rildo
Pessoal estou necessitando implementar um execauto para encerrar uma ordem de produção, essa ordem de produção não vai ter produção apenas um requisição de baixa e depois encerrar a mesma.
Alguém já utilizou o mata650 - MSExecAuto({|x,y| mata650(x,y)},aMata650[1],?).
Como devo preencher o array e qual numero passo no msexecauto.
Desde já agradeço atenção.
Abraço
Rildo
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
8 anos 4 semanas atrás #31276
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 ExecAuto mata650
IncProc("Criando ordem de produção")
// Cria OP
lMsErroAuto := .F.
_aVetor := { {"C2_NUM" , GetNumSC2() , Nil},;
{"C2_ITEM" , "01" , Nil},;
{"C2_SEQUEN" , "001" , Nil},;
{"C2_PRODUTO", SC6->C6_PRODUTO , Nil},;
{"C2_QUANT" , nGetQtd , Nil},;
{"C2_CC" , SZH->ZH_CC , Nil},;
{"C2_LOCAL" , SC6->C6_LOCAL , Nil},;
{"C2_DATPRI" , dDataBase , Nil},;
{"C2_DATPRF" , dDataBase , Nil},;
{"C2_EMISSAO", dDataBase , Nil},;
{"AUTEXPLODE", "S" , Nil} }
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 3) // Inclusao
If lMsErroAuto
MostraErro()
DisarmTransaction()
Return
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.
- rhmarques
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
8 anos 4 semanas atrás #31282
por rhmarques
Respondido por rhmarques no tópico ExecAuto mata650
Bom dia,
Luiz
Esse array é para inclusão da Ordem de produção.
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 3) // Inclusao
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 4) // Alteração
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 5) // Exclusão
Eu tentei
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 6) // Eu acredito ser extorno
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 7) // Inclusao
Não sei o que devo passar no array, pois na rotina padrão do sistema ele inseri informação na tabela SC2 e SD3.
Atenciosamente
Rildo
Luiz
Esse array é para inclusão da Ordem de produção.
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 3) // Inclusao
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 4) // Alteração
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 5) // Exclusão
Eu tentei
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 6) // Eu acredito ser extorno
MSExecAuto({|x, y| mata650(x, y)}, _aVetor, 7) // Inclusao
Não sei o que devo passar no array, pois na rotina padrão do sistema ele inseri informação na tabela SC2 e SD3.
Atenciosamente
Rildo
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
8 anos 4 semanas atrás #31285
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 ExecAuto mata650
Rildo desculpe não me atentei que era para encerrar a ordem de produção:
Segue um exemplo:
Nesta função que utilizei há um tempo, eu envio o apontamento de uma ordem de produção, e mando nos parâmetros a opção de encerra-la também, espero que ajude.
Segue um exemplo:
Nesta função que utilizei há um tempo, eu envio o apontamento de uma ordem de produção, e mando nos parâmetros a opção de encerra-la também, espero que ajude.
Static Function ApontOP(cOP,cProd,cOperac,dDtIni,cHrIni,dDtFim,cHrFim,nQtde,cChave,cOperador,lEncerra,lUltima,nOpcao)
Local aLinha := {}
Local dDtValid := CTOD(" / / ")
Private nRegSH6 := 0
SC2->(dbSetOrder(1), dbSeek(xFilial("SC2")+cChave))
SB1->(dbSetOrder(1), dbSeek(xFilial("SB1")+cProd))
SH6->(dbSetOrder(1), dbSeek(xFilial("SH6")+cChave))
nRegSH6 := SH6->(Recno())
dDtValid := dDatabase + SB1->B1_PRVALID
aLinha := { {"H6_OP",cChave,NIL},;
{"H6_PRODUTO",cProd,NIL},;
{"H6_OPERAC",cOperac,NIL},;
{"H6_DATAINI",dDtIni,NIL},;
{"H6_HORAINI",cHrIni,NIL},;
{"H6_DATAFIN",dDtFim,NIL},;
{"H6_HORAFIN",cHrFim,NIL},;
{"H6_QTDPROD",nQtde,NIL},;
{"H6_OPERADO",cOperador,NIL},;
{"H6_LOCAL" ,SB1->B1_LOCPAD,NIL},;
{"H6_DTVALID",dDtValid,NIL},;
{"H6_DTAPONT",Date(),NIL} }
lMsErroAuto := .f.
MSExecAuto({|x,y| Mata681(x,y)},aLinha,nOpcao)
If lMsErroAuto
MostraErro()
Return .f.
Endif
If lEncerra .And. lUltima .And. (nOpcao==3) // Apontamento Parcial Porém Encerra OP
nOpc := 7 // Encerra ordem de produção
aMata680 := {}
aadd(aMata680,{"H6_OP" , SH6->H6_OP ,NIL})
aadd(aMata680,{"H6_PRODUTO" , SH6->H6_PRODUTO ,NIL})
aadd(aMata680,{"H6_SEQ" , SH6->H6_SEQ ,NIL})
lMsErroAuto := .f.
MsExecAuto({|x,Y|MATA680(aMata680,nOpc)})
If lMsErroAuto
MostraErro()
Return .f.
Endif
Endif
Return .t.
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.
- rhmarques
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
8 anos 4 semanas atrás #31288
por rhmarques
Respondido por rhmarques no tópico ExecAuto mata650
Bom dia,
Luiz,
Primeiramente agradeço sua atenção.
Meu apontamento é apenas na SD3, essa ordem de produção é aberta e depois ela será requisitada através de uma entrada de notas gera o seguinte lançamento no SD3.
D3_TM = 999 / CF = RE5
se eu utilizar a rotina padrão do sistema para encerrar ele gera o seguinte registro na SD3.
D3_TM = 200 / CF = PR0
No meu ponto de entrada tentei montar o array no SC2 e depois SD3 porem não tive sucesso ainda, segue como preenchi o array e msexecauto.
SD3
aMata650 := { {'D3_FILIAL',xFilial("SD3") ,NIL},;
{'D3_OP' ,AllTrim(cOP) ,NIL},;
{'D3_COD' ,AllTrim(cPro) ,NIL},;
{'D3_LOCAL' ,AllTrim(cLoc) ,NIL}}
nModuloOld := nModulo
nModulo := 4
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,7)
xModulo := nModuloOld
SC2
aMata650 := { {'C2_FILIAL' ,xFilial("SC2") ,NIL},;
{'C2_PRODUTO' ,AllTrim(cProd) ,NIL},;
{'C2_NUM' ,Substr(AllTrim(cOP),1,6),NIL},;
{'C2_ITEM' ,Substr(AllTrim(cOP),7,2),NIL},;
{'C2_SEQUEN' ,Substr(AllTrim(cOP),9,3),NIL}}
nModuloOld := nModulo
nModulo := 4
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,7)
xModulo := nModuloOld
Atenciosamente
Rildo
Luiz,
Primeiramente agradeço sua atenção.
Meu apontamento é apenas na SD3, essa ordem de produção é aberta e depois ela será requisitada através de uma entrada de notas gera o seguinte lançamento no SD3.
D3_TM = 999 / CF = RE5
se eu utilizar a rotina padrão do sistema para encerrar ele gera o seguinte registro na SD3.
D3_TM = 200 / CF = PR0
No meu ponto de entrada tentei montar o array no SC2 e depois SD3 porem não tive sucesso ainda, segue como preenchi o array e msexecauto.
SD3
aMata650 := { {'D3_FILIAL',xFilial("SD3") ,NIL},;
{'D3_OP' ,AllTrim(cOP) ,NIL},;
{'D3_COD' ,AllTrim(cPro) ,NIL},;
{'D3_LOCAL' ,AllTrim(cLoc) ,NIL}}
nModuloOld := nModulo
nModulo := 4
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,7)
xModulo := nModuloOld
SC2
aMata650 := { {'C2_FILIAL' ,xFilial("SC2") ,NIL},;
{'C2_PRODUTO' ,AllTrim(cProd) ,NIL},;
{'C2_NUM' ,Substr(AllTrim(cOP),1,6),NIL},;
{'C2_ITEM' ,Substr(AllTrim(cOP),7,2),NIL},;
{'C2_SEQUEN' ,Substr(AllTrim(cOP),9,3),NIL}}
nModuloOld := nModulo
nModulo := 4
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,7)
xModulo := nModuloOld
Atenciosamente
Rildo
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
8 anos 4 semanas atrás #31291
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 ExecAuto mata650
Rildo boa tarde, cara infelizmente não consegui encontrar nada que pudesse lhe ajudar, além do que já enviei.
Se conseguir encontrar uma solução, avisa a gente ok. Para que os próximos usuários tenham uma solução.
Se conseguir encontrar uma solução, avisa a gente ok. Para que os próximos usuários tenham uma solução.
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.
Tempo para a criação da página:0.099 segundos