[RESOLVIDO] Reporte producao customizado.

Discussão em 'EMS , HCM e Totvs 11' iniciado por reissobr, Fevereiro 15, 2017.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. reissobr

    reissobr Membro Ativo

    Pessoal, no nosso processo as linhas de produção sao tipo serviço e tenho alguns itens cadastrados como tipo requisição normal e tipo requisição transferência.
    Tenho dois programas customizados para requisição / reporte.
    MCP004 - requisita os itens que chamamos de "Itens Almoxarifados" - sao itens com tipo de requisição normal, de alguns depósitos (ALM. AL1, AL2), via a CPAPI012.
    MCP001 - requisita os itens de deposito fabrica (CHA, SER, MO) - itens com tipo de requisição normal, via CPAPI012, e requisita os itens do PRO - itens com tipo de requisicao transferência e reporta o acabado via a CPAPI001.

    Está ocorrendo o seguinte:
    O usuário está com os dois programas abertos.
    Roda o MCP004 e deixa o programa aberto.
    Roda o MCP001. Dá a mensagem "Requisições inconsistentes. Não foi possível finalizar a ordem.".

    Ai fecha o MCP004.
    Roda novamente o MCP001 e ai o programa roda sem erro.
    Tem algo que eu possa fazer no código do MCP004, para não ser necessário fechar o mesmo para poder rodar o MCP001 ?
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    coloca tudo dentro de um bloco de transação, mas mesmo assim, dependendo do ponto que o usuario estiver, um vai travar o outro, porque apesar de serem metodos diferentes, as tabelas são as mesmas, eu tenho implantado o modulo chão de fabrica, mas as apis mexem com as mesmas tabelas do MCP.
    reissobr curtiu isso.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    uma coisa que vc pode fazer é antes de chamar a api, fazer uns find no-wait nas tabelas e verificar se o registro que vc quer mexer não está travado com outro usuario.
    reissobr curtiu isso.
  4. reissobr

    reissobr Membro Ativo

    @bootstrapmaster,

    Coloquei o do trans e não adiantou.
    Também coloquei release em algumas tabelas que as apis usam e os delete para as duas apis e o problema continua.
    PS: todas as atualizações de tabelas estão pelas API´s, não tenho nenhuma na mão.

    Minha duvida é que tenho o programa .W e o .P
    Toda a lógica, chamadas a API´s estão dentro do .P, e até onde entendo, ele encerra quando acaba e o controle volta para o .W
    Então, neste encerramento do .P não era para liberar todos os recursos utilizados ?

    Nao entendo direito a dica do find no-wait.
    Registro preso por outro usuário naão daria a mensagem de lock ?
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    quando vc faz um for each ou find, ele dá a mensagem de que o registro está em uso
    se vc usar o find no-wait, depois vc faz um if locked pra saber se o registro está em uso ou não e dai vc toma a atitude que precisa.
  6. reissobr

    reissobr Membro Ativo

    Entendi @bootstrapmaster.
    Vou fazer uns testes.

    De q.q. forma, o problema na base produção era outro.
    O usuário, cobrindo férias do usuário oficial, tem que passar um programa antes de iniciar o reporte - o segundo programa que eu citei - e nao estava fazendo.
    E foi ai que o problema apareceu na base produção.
    Quando fui simular na teste, peguei o erro, foquei nele, e perdi s referencia do que estava acontecendo na oficial.
    Hoje, depois de acompanhar bem de perto o erro com o usuário, peguei uma situação, e ele mesmo lembrou do programa que estava faltando.
    Os customizados da produção já existiam antes de chegar na empresa, não conheço direito ainda .... e acabei dando bobeira.
    Agora, com o problema resolvido na produção, vou focar no "bug" que achei, mesmo porque, serve de aprendizado para outras situações.
    Brigadão por enquanto.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página