1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Recriar Reservas da ordem de producao - CPAP301.

Discussão em 'EMS , HCM e Totvs 11' iniciado por reissobr, Outubro 6, 2021.

  1. reissobr

    reissobr Membro Participativo

    Bom dia Pessoal, tudo bom ?

    temos um volume de ordens de produção em aberto, não iniciadas, que vão precisar ter as reservar alteradas com base na engenharia.

    Tentei o codigo abaixo, usando a CPAPI301, mas dá o erro:
    tt-erro.cd-erro = 17006
    tt-erro.mensagem = Conta Contábil deve ser informada !

    Se tento criar a ordem pelo mesmo código, funciona.

    Alguem tem alguma dica ?

    Código:
    EMPTY TEMP-TABLE tt-ord-prod.
    EMPTY TEMP-TABLE tt-reapro.
    EMPTY TEMP-TABLE tt-erro.
    
    FIND ord-prod WHERE ord-prod.nr-ord-produ = 8208971 NO-LOCK.
    
    CREATE tt-ord-prod. 
    
    BUFFER-COPY ord-prod TO tt-ord-prod.
    
    assign  tt-ord-prod.ind-tipo-movto        = 2                 /*    valor inicial = 0. 1 = Inclui, 2 = Modifica, 3 = Elimina, 4 = copia              */
            tt-ord-prod.gera-relacionamentos  = yes            /*    valor inicial = yes - Yes, gera reservas e oparacoes. No, nao gera               */
            tt-ord-prod.cod-versao-integracao = 003.              /*    valor inicial = 0                                                                */
    
    
    /*              
    ASSIGN  tt-ord-prod.nr-ord-produ   = 8208971                  /*    a api ira gerar automaticamente o nr. da OP                                      */
            tt-ord-prod.it-codigo      = ord-prod.it-codigo       /*                                                                                     */
            tt-ord-prod.qt-ordem       = ord-prod.qt-ordem        /*                                                                                     */
            tt-ord-prod.UN             = ord-prod.UN              /*    "?" - usa o padrÆo do item, param-cp,lin-prod o param-cs                         */               
            tt-ord-prod.dt-inicio      = ord-prod.dt-inicio       /*    valor inicial - today                                                            */   
            tt-ord-prod.dt-termino     = ord-prod.dt-termino      /*    valor inicial - today                                                            */  
            tt-ord-prod.cd-planejado   = ord-prod.cd-planejado    /*    "?" - usa o padrÆo do item, param-cp,lin-prod o param-cs                         */    
            tt-ord-prod.nr-linha       = ord-prod.nr-linha        /*    valor inicial = 0. = "?" - usa o padrÆo do item, param-cp,lin-prod o param-cs    */                  
            tt-ord-prod.tipo           = ord-prod.tipo            /*    9 = reaproveitamento                                                             */
            tt-ord-prod.ct-codigo      = ord-prod.ct-codigo
            tt-ord-prod.sc-codigo      = ord-prod.sc-codigo
            tt-ord-prod.cod-estabel    = ord-prod.cod-estabel     /*    "?" - usa o padrÆo do item, param-cp,lin-prod o param-cs                         */
            tt-ord-prod.cod-depos      = ord-prod.cod-depos       /*    deposito para o produto acabado                                                  */
            tt-ord-prod.rep-prod       = ord-prod.rep-prod        /*    1 = reporte por ordem                                                            */
            tt-ord-prod.ind-tipo-movto        = 2                 /*    valor inicial = 0. 1 = Inclui, 2 = Modifica, 3 = Elimina, 4 = copia              */
            tt-ord-prod.gera-relacionamentos  = yes            /*    valor inicial = yes - Yes, gera reservas e oparacoes. No, nao gera               */
            tt-ord-prod.cod-versao-integracao = 003.              /*    valor inicial = 0                                                                */
    */       
    
    RUN cpp/cpapi301.p  (INPUT-OUTPUT table tt-ord-prod,
                             INPUT-OUTPUT table tt-reapro,                               
                             Input-output table tt-erro,
                             input YES).
    
    IF CAN-FIND (FIRST tt-erro)  THEN DO:
    
        FOR EACH tt-erro:
            MESSAGE SKIP(2) "    " "ABERTURA ORDEM PRODUCAO"              "    "  SKIP
                             "    " "tt-erro.i-sequen = " tt-erro.i-sequen "    "  SKIP        
                            "    " "tt-erro.cd-erro  = " tt-erro.cd-erro  "    "  SKIP
                            "    " "tt-erro.mensagem = " tt-erro.mensagem "    "  SKIP(2)
                            VIEW-AS ALERT-BOX.
            RETURN "OK".
        END.
    END.
    
    
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Já verificou nas reservas atuais qual conta contábil está "setada" ?
  3. reissobr

    reissobr Membro Participativo

    Pessoal, achei o motivo do erro.

    Não sei bem porque, mas a ordem de produção esta com o campo Conta Ordem em branco.
    Peguei uma outra ordem para testar e o programa foi até o fim.

    Mas não consegui forçar a recriação das reservas.
    Pelo que entendi, regerar as reservas somente vai acontecer quando alterar a quantidade das ordens, fora isto, não tem outra forma de forçar regerar.

    Temos alguns semi acabados que consumem tubos.
    Hoje na estrutura, tem o componente barra, com a dimensão da barra inteira, e um componente com quantidade negativa, que seria o item tubo retalho, para devolução ao estoque.
    Mas vamos mudar isto, vamos deixar na estrutura somente o componente barra, na quantidade usada.

    E preciso mudar as ordens em aberto.
    As ordens em aberto, possuem os dois itens na reserva, a tubo barra e o tubo retalho.
    Vou precisar excluir o tubo retalho e acertar quantidade da reserva com base na estrutura.

    E como a CPAPI301 nao funcionou, acho que a solução vai ser excluir as reservas existentes, e recriar a reserva do item tubo barra via CPAPI002.

    E o meu problema agora, é que pela CPAPI002, eu consigo incluir uma reserva, mas não consigo nem alterar nem excluir.

    Voces sabem como posso fazer uma alteração ou exclusão de uma reserva de uma ordem de produção ?

    Att;
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Meu caro, eu mexo direto na tabela reservas, eu tenho aqui também alguns casos que eu deveria ter o item com reserva -1, pra depois na digitação, o usuario substituir pela quantidade de co-produto, esse tipo reporte negativo gera um movimento ripo SOB na ordem de produção, meu caso é que na saida da maquina, dependendo do que sai de sobra, pode gerar um co-produto diferente, então, minha solução foi, deixar na estrutura os itens de MP somente, e em tempo de reporte, é informado as sobras e qual item que deve ficar, e eu acerto a ordem e os movimentos dos mesmos na mão.
    Fiz uma analise das tabelas associadas a ord-prod, fiz os ajustes necessarios e pro datasul é como se ele tivesse processado tudo.
    reissobr curtiu isso.

Compartilhe esta Página