- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- msExecAuto rotinar MATA685 e MATA240 não grava todos campos
Perguntas msExecAuto rotinar MATA685 e MATA240 não grava todos campos
- roberto.junior@maxgear.com.br
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
8 anos 4 meses atrás #30982
por roberto.junior@maxgear.com.br
msExecAuto rotinar MATA685 e MATA240 não grava todos campos foi criado por roberto.junior@maxgear.com.br
Bom dia, amigos de ideal.
Espero que todos estejam bem, tirando os errors log normais de cada dia.
Amigos, tenho utilizado em algumas aplicações a chamada automática das rotinas MATA685 (apontamento de perdas) e MATA240 (movimento interno) e, tenho percebido um bug na execução.
Acionei o suporte que, pra variar, não reproduziu o problema.
O problema é o mesmo pra ambas, mas eu exemplifico apenas uma, vejam:
A função é executada, os registro é gravado na tabela SBC, massssss o campo BC_OP, que no exemplo acima é informado através da variável cGET_OP, não é populado, ficando em branco, como se não existisse informação. Se eu dou um msginfo do conteúdo do campo na tela, o valor é apresentado, mas o bendito do campo dentro da tabela não grava a informação. Loucura né ?
A mesma coisa acontece no MATA240, aonde o campo D3_DOC não é populado pela rotina automática. Só funciona, gambiarrando a coisa, ou seja, após a execução do msexecauto, dou um reclock na tabela e forço o dado no campo problemático.
Alguém já passou por isso ou tem alguma sugestão pra aliviar aqui os meus cabelos brancos ?
Mais uma vez, muito obrigado!
Abraços
Junior
Espero que todos estejam bem, tirando os errors log normais de cada dia.
Amigos, tenho utilizado em algumas aplicações a chamada automática das rotinas MATA685 (apontamento de perdas) e MATA240 (movimento interno) e, tenho percebido um bug na execução.
Acionei o suporte que, pra variar, não reproduziu o problema.
O problema é o mesmo pra ambas, mas eu exemplifico apenas uma, vejam:
aCabec := {}
aItens := {}
aLinhaI := {}
cGet_OP := "TESTE101001' // EXISTENTE NA TABELA SC2
cGet_OPE := "40" // EXISTENTE NO ROTEIRO DO PRODUTO
cGet_REC := "PRH01" // EXISTENTE NA TABELA SH1
Aadd(aCabec, {"BC_OP" ,cGet_OP ,NIL})
Aadd(aCabec, {"BC_OPERAC" ,cGet_OPE ,NIL})
Aadd(aCabec, {"BC_RECURSO" ,cGet_REC ,NIL})
cGet_PRO := "TESTE" // EXISTENTE NA TABELA SB1
nGet_QRE := 10
cGet_RE := '000292' // EXISTENTE NA TABELA SRA
aLinhaI := {{"BC_FILIAL" ,xFilial("SBC") ,NIL},;
{"BC_PRODUTO" ,cGet_PRO ,NIL},;
{"BC_LOCORIG" ,SB1->B1_LOCPAD ,NIL},;
{"BC_DISPFIN" ,"01" ,NIL},;
{"BC_QUANT" ,nGet_QRE ,NIL},;
{"BC_OPERADO" ,RIGHT(cGet_RE,6) ,NIL},;
{"BC_DATA" ,DATE() ,NIL},;
{"BC_QTDDEST" ,nGet_QRE ,NIL}}
aAdd(aItens, aLinhaI)
MsExecAuto ( {|x,y,z| MATA685(x,y,z) }, aCabec, aItens, 3)
If lMsErroAuto
Mostraerro()
Endif
A função é executada, os registro é gravado na tabela SBC, massssss o campo BC_OP, que no exemplo acima é informado através da variável cGET_OP, não é populado, ficando em branco, como se não existisse informação. Se eu dou um msginfo do conteúdo do campo na tela, o valor é apresentado, mas o bendito do campo dentro da tabela não grava a informação. Loucura né ?
A mesma coisa acontece no MATA240, aonde o campo D3_DOC não é populado pela rotina automática. Só funciona, gambiarrando a coisa, ou seja, após a execução do msexecauto, dou um reclock na tabela e forço o dado no campo problemático.
Alguém já passou por isso ou tem alguma sugestão pra aliviar aqui os meus cabelos brancos ?
Mais uma vez, muito obrigado!
Abraços
Junior
Por favor Acessar ou Registrar para participar da conversa.
- sarraipa
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 232
- Obrigados Recebidos: 1
8 anos 4 meses atrás #30988
por sarraipa
Respondido por sarraipa no tópico msExecAuto rotinar MATA685 e MATA240 não grava todos campos
Assim tente usar o exemplo padrão da totvs,
Um detalhe o seu exemplo é que vc começa com aspas duplas e termina com aspas simples.
cGet_OP := "TESTE101001'
Um detalhe o seu exemplo é que vc começa com aspas duplas e termina com aspas simples.
cGet_OP := "TESTE101001'
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- msExecAuto rotinar MATA685 e MATA240 não grava todos campos
Tempo para a criação da página:0.116 segundos