Compartilhar via


Erro "Esta ordem de fabricação tem uma transação de componente pendente" ao fechar uma ordem de fabricação

Este artigo fornece métodos para você resolver a mensagem de erro que ocorre quando você tenta fechar uma ordem de fabricação no Microsoft Dynamics GP.

Aplica-se a: Microsoft Dynamics GP
Número original do KB: 953438

Observação

Antes de seguir as instruções neste artigo, certifique-se de ter uma cópia de backup completa do banco de dados que possa ser restaurada se ocorrer um problema.

Sintomas

Ao tentar fechar uma ordem de fabricação completa na janela Fechamento da Ordem de Fabricação ou na janela Editar Status da Ordem de Fabricação no Microsoft Dynamics GP e no Microsoft Business Solutions – Great Plains, você recebe a seguinte mensagem de erro:

Esta Ordem de Fabricação tem uma Transação de Componente Pendente. Consulte o documento de picking XXXXX para obter mais informações.

Observação

XXXXXX é um espaço reservado para o número do documento de picking.

Causa

Esse problema pode ocorrer por um dos seguintes motivos:

  • Existem documentos de picking gravados e não lançados para a ordem de produção (MO). Consulte a Resolução 1.
  • A tabela MOP1400 (MOP_Picklist_Site_QTY) tem quantidades pendentes que não são suportadas por dados em outras tabelas de fabricação. Consulte a Resolução 2.

Resolução 1

Para resolver esse problema, use uma ferramenta de consulta SQL para localizar e lançar documentos de separação não postados. Para fazer isso, siga estas etapas:

  1. Inicie o Console do Administrador de Suporte, o Microsoft SQL Query Analyzer ou o SQL Server Management Studio. Para fazer isso, use um dos seguintes métodos, dependendo do programa que você está usando.

    • Método 1 – Para o SQL Server Desktop Engine

      Se você estiver usando o SQL Server Desktop Engine (também conhecido como MSDE 2000), inicie o Console do administrador do Support. Para fazer isso, selecione Iniciar, aponte para Todos os Programas, aponte para Console do Administrador da Microsoft e selecione Console do Administrador de Suporte.

    • Método 2 - Para SQL Server 2000

      Se você estiver usando o SQL Server 2000, inicie o SQL Query Analyzer. Para fazer isso, selecione Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server e selecione Analisador de Consultas.

    • Método 3 - Para SQL Server 2005

      Se você estiver usando o SQL Server 2005, inicie o SQL Server Management Studio. Para fazer isso, selecione Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server 2005 e selecione SQL Server Management Studio.

  2. Execute o seguinte script no banco de dados da empresa:

    Select PICKNUMBER from MOP1210 where MANUFACTUREORDER_I = 'XXXX'
    and MANUFACTUREORDER_I in (select MANUFACTUREORDER_I from MOP1400 
    where MANUFACTUREORDER_I in (select MANUFACTUREORDER_I where PENDING_REV_ISS_QTY_I > 0 
    or PENDING_ISSUE_QTY_I > 0 or PENDING_SCRAP_QTY_I > 0 or PENDING_REV_SCRAP_QTY_I > 0))
    and TRX_TYPE in (1,2,5,6) and PICKNUMBER in (select PICKNUMBER from MOP1200 where POSTED = 0)
    

    Observação

    Neste script, você deve substituir o espaço reservado XXXX pelo número da ordem de fabricação.

  3. Os resultados retornados pelo script na etapa 2 indicam que existe um documento de separação não lançado. Para lançar o documento de picking ou remover os itens do documento de picking, siga estas etapas:

    1. No menu Transações , aponte para Fabricação, aponte para Ordens de Fabricação e selecione Entrada Trx do Componente.
    2. Na lista Número de Separação de Fabricação, selecione o número do documento da etapa 2.
    3. Siga um destes passos:
      • Se você quiser postar os itens, selecione Marcar Tudo e, em seguida, selecione Postar.

      • Se você não quiser postar os itens, marque a caixa de seleção ao lado de cada número de item, selecione Editar e, em seguida, selecione Excluir Linha.

        Observação

        Se todos os itens forem removidos do documento de coleta, não será necessário publicar o documento de coleta.

Resolução 2

A tabela MOP1400 pode conter uma quantidade pendente para um documento de picking, mesmo quando não existem documentos pendentes. Para resolver esse problema, use uma ferramenta de consulta SQL para atualizar a tabela MOP1400. Para fazer isso, siga estas etapas:

  1. Inicie o Console do Administrador de Suporte, o Microsoft SQL Query Analyzer ou o SQL Server Management Studio. Para fazer isso, use um dos seguintes métodos, dependendo do programa que você está usando.

    • Método 1 – Para o SQL Server Desktop Engine

      Se você estiver usando o SQL Server Desktop Engine (também conhecido como MSDE 2000), inicie o Console do administrador do Support. Para fazer isso, selecione Iniciar, aponte para Todos os Programas, aponte para Console do Administrador da Microsoft e selecione Console do Administrador de Suporte.

    • Método 2 - Para SQL Server 2000

      Se você estiver usando o SQL Server 2000, inicie o SQL Query Analyzer. Para fazer isso, selecione Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server e selecione Analisador de Consultas.

    • Método 3 - Para SQL Server 2005

      Se você estiver usando o SQL Server 2005, inicie o SQL Server Management Studio. Para fazer isso, selecione Iniciar, aponte para Todos os Programas, aponte para Microsoft SQL Server 2005 e selecione SQL Server Management Studio.

  2. Execute os seguintes scripts no banco de dados da empresa:

    select PENDING_ISSUE_QTY_I, MANUFACTUREORDER_I from MOP1400 where PENDING_ISSUE_QTY_I > 0 and MANUFACTUREORDER_I = 'MOxxx' 
    select PENDING_REV_ISS_QTY_I, MANUFACTUREORDER_I from MOP1400 where PENDING_REV_ISS_QTY_I > 0 and MANUFACTUREORDER_I = 'MOxxx' 
    select PENDING_SCRAP_QTY_I, MANUFACTUREORDER_I from MOP1400 where PENDING_SCRAP_QTY_I > 0 and MANUFACTUREORDER_I = 'MOxxx' 
    select PENDING_REV_SCRAP_QTY_I, MANUFACTUREORDER_I from MOP1400 where PENDING_REV_SCRAP_QTY_I > 0 and MANUFACTUREORDER_I = 'MOxxx'
    

    Observação

    Neste script, você deve substituir o espaço reservado MOxxx pelo número da ordem de fabricação.

  3. Os resultados retornados do script na etapa 2 indicam que a tabela MOP1400 deve ser atualizada. Execute os seguintes scripts no banco de dados da empresa:

    update MOP1400 set PENDING_ISSUE_QTY_I = 0 where PENDING_ISSUE_QTY_I > 0 and MANUFACTUREORDER_I = 'xxxx' 
    update MOP1400 set PENDING_REV_ISS_QTY_I = 0 where PENDING_REV_ISS_QTY_I > 0 and MANUFACTUREORDER_I = 'xxxx'
    update MOP1400 set PENDING_SCRAP_QTY_I = 0 where PENDING_SCRAP_QTY_I > 0 and MANUFACTUREORDER_I = 'xxxx' 
    update MOP1400 set PENDING_REV_SCRAP_QTY_I = 0 where PENDING_REV_SCRAP_QTY_I > 0 and MANUFACTUREORDER_I = 'xxxx' 
    

    Observação

    Neste script, você deve substituir o espaço reservado xxxx pelo número da ordem de fabricação.