Perguntas msExecAuto rotinar MATA685 e MATA240 não grava todos campos

Mais
8 anos 4 meses atrás #30982 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:
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.

Mais
8 anos 4 meses atrás #30988 por sarraipa
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'

Por favor Acessar ou Registrar para participar da conversa.

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