Compartir a través de


Mensaje de error al intentar publicar una transacción de "problema inverso" en la ventana Entrada de transacción de componentes en Microsoft Dynamics GP: "Las cantidades de los elementos no son suficientes para esta transacción".

En este artículo se proporciona una solución a un error que se produce al publicar una transacción de "cuestión inversa" en la ventana de entrada de transacciones de componentes de Microsoft Dynamics GP.

Se aplica a: Microsoft Dynamics GP
Número de KB original: 952378

Síntomas

Al intentar publicar una transacción de "problema inverso" en la ventana Entrada de transacción de componentes en Microsoft Dynamics GP, recibirá el siguiente mensaje de error:

Las cantidades de los elementos no son suficientes para esta transacción.

Causa

Este problema puede producirse porque hay cantidades pendientes en varias tablas. Las cantidades pendientes pueden proceder de documentos seleccionados sin publicar o de tablas actualizadas incorrectamente.

Solución

Nota:

Antes de seguir las instrucciones de este artículo, asegúrese de que tiene una copia de seguridad completa de la base de datos que puede restaurar si se produce un problema.

Para resolver este problema, determine si hay cantidades pendientes en varias tablas. Si hay cantidades pendientes, debe publicar los documentos de selección pendientes o actualizar los valores incorrectos para corregir las tablas. Los pasos generales para este procedimiento son los siguientes:

  1. Compruebe que no haya cantidades pendientes en las tablas de fabricación.
  2. Compruebe que no haya documentos de preparación de pedidos sin publicar que provoquen las cantidades pendientes.
  3. Compruebe que las transacciones de inventario se han publicado para los documentos de selección problemáticos.
  4. Quite las líneas que no son válidas de las tablas de fabricación pendientes.
  5. Compruebe que la cantidad "Trabajo en proceso" (WIP) de los componentes es correcta.
  6. Compruebe que la cantidad emitida para los componentes es correcta.
  7. Intente volver a completar el problema inverso.

Paso 1: Comprobar que no hay cantidades pendientes en las tablas de fabricación

Hay varias tablas que pueden contener cantidades pendientes para un pedido de fabricación. Compruebe las siguientes tablas para ver las cantidades pendientes de un pedido de fabricación:

  • La tabla Asignación de lotes de órdenes de fabricación (MOP1020)
  • Tabla de órdenes de fabricación pendientes (MOP1025)
  • La tabla de cubos pendientes de pedido de fabricación (MOP1026)

La única excepción en la que debe tener registros en estas tablas es si tiene documentos de "recogida guardados sin publicar" en la ventana de Entrada de Transacción de Componentes. Si tiene registros en estas tablas, debe determinar con qué documento de selección o con qué recibo de "orden de fabricación" están asociadas las cantidades pendientes. Para ello, siga estos pasos:

  1. En función de la versión de Microsoft SQL Server que use, inicie SQL Server Management Studio o inicie el Analizador de consultas SQL. Para ello, siga uno de los pasos siguientes:

    • Si usa SQL Server 2005, abra SQL Server Management Studio. Para ello, haga clic en Inicio, seleccione Programas, Microsoft SQL Server 2005 y, a continuación, haga clic en SQL Server Management Studio.
    • Si usa SQL Server 2000 o SQL Server 7.0, abra el Analizador de consultas SQL. Para ello, haga clic en Inicio, seleccione Programas, Microsoft SQL Server y, a continuación, haga clic en Analizador de consultas.
  2. Siga uno de los pasos siguientes:

    • En SQL Server Management Studio, expanda Bases de datos en Explorador de objetos y, a continuación, haga clic en Dynamics. Haga clic en Nueva consulta, escriba la siguiente instrucción select en el panel de consulta y, a continuación, haga clic en Ejecutar.

      SELECT * FROM MOP1020 WHERE MANUFACTUREORDER_I= '<XXX>' 
      SELECT * FROM MOP1025 WHERE MANUFACTUREORDER_I= '<XXX>'
      SELECT * FROM MOP1026 WHERE MANUFACTUREORDER_I= '<XXX>' 
      
    • En el Analizador de consultas SQL, escriba la siguiente instrucción select en el panel Consulta y, a continuación, haga clic en Ejecutar.

      SELECT * FROM MOP1020 WHERE MANUFACTUREORDER_I= '<XXX>' 
      SELECT * FROM MOP1025 WHERE MANUFACTUREORDER_I= '<XXX>'
      SELECT * FROM MOP1026 WHERE MANUFACTUREORDER_I= '<XXX>' 
      

    Nota:

    Reemplazar <XXX> por el número de "recibo de pedido de fabricación". Para determinar el número de "documento de selección" o el número de "recibo de orden de fabricación" que está asociado a las cantidades pendientes, consulte uno de los siguientes valores:

    • Valor en la columna DOCNUMBR de la tabla MOP1020
    • Valor en la columna MOPDOCNUM de la tabla MOP1025 o en la tabla MOP1026.

Paso 2: Comprobar que no hay documentos de recogida no publicados que generen cantidades pendientes

Si hay un registro en cualquiera de estas tablas, puede haber un documento pendiente guardado en la ventana Entrada de transacción de componentes. Debe publicar este documento pendiente guardado o quitar las líneas pendientes del documento. Para ello, siga estos pasos:

  1. En el menú Transacciones, seleccione Fabricación, Órdenes de fabricación y, a continuación, haga clic en Trx de componentes.
  2. En el campo Número de selección en fabricación, escriba todos los documentos de selección que se devuelven de los scripts en el Paso 1: Verifique que no haya cantidades pendientes en las tablas de fabricación. A continuación, siga uno de los pasos siguientes:

Paso 3: Comprobar que las transacciones de inventario se han publicado para los documentos de selección problemáticos

Si el botón Publicar no está disponible, se ha publicado el documento de selección. Sin embargo, no se elimina de las tablas. Debe comprobar que las transacciones de inventario asociadas a este documento de selección se publican en Inventario en Microsoft Dynamics GP. Para ello, siga estos pasos:

  1. En el menú Consulta , seleccione Inventario y, a continuación, haga clic en Transacción de elementos.
  2. En la ventana Transacción de artículo, escriba el número de artículo en el campo Número de Artículo y, a continuación, escriba el rango de fechas en la sección Rango de Fechas del Documento.
  3. En los resultados, haga doble clic en la transacción para ver la información detallada.
  4. En el menú Consulta , seleccione Fabricación, Pedidos de fabricación y, a continuación, haga clic en Actividad mo.
  5. En el campo Número de MO, escriba el número de pedido de fabricación.
  6. Busque el número de documento del documento sobre el que desea obtener más información y, a continuación, haga doble clic en el documento.
  7. Si el documento se ha publicado correctamente, verá los componentes en la ventana Consulta de transacciones de inventario. Si no ve los componentes, póngase en contacto con el soporte técnico de Microsoft Dynamics.

Paso 4: Quitar las líneas que no son válidas de las tablas de fabricación pendientes

Si no hay documentos "selección guardada no publicada" en la ventana de Entrada de transacción de componentes y se han publicado las transacciones de inventario, debería eliminar todos los registros relacionados con este pedido de fabricación de las tablas MOP1020, MOP1025 y MOP1026. Para ello, ejecute la siguiente instrucción en SQL Server Management Studio o en el Analizador de consultas sql.

DELETE MOP1020 WHERE MANUFACTUREORDER_I= '<XXX>' 
DELETE MOP1025 WHERE MANUFACTUREORDER_I='<XXX>'
DELETE MOP1026 WHERE MANUFACTUREORDER_I='<XXX>'

Nota:

Reemplace <XXX> por el número de pedido de fabricación.

Paso 5: Comprobar que la cantidad de WIP para los componentes es correcta

Después de quitar las cantidades pendientes, debe asegurarse de que estas cantidades pendientes no afectan a las cantidades en "Trabajo en proceso" (WIP). Para ello, ejecute SmartList o use un script en SQL Server. Para ello, use uno de los métodos siguientes.

Método 1: Usar la lista inteligente "Trabajo en proceso"

  1. Busque la lista inteligente "Work in Process" (Trabajo en proceso). Para ello, use el paso adecuado:

    • En Microsoft Dynamics GP 10.0, haga clic en SmartList en el menú microsoft Dynamics GP y, a continuación, haga clic en Trabajar en proceso.
    • En Microsoft Dynamics GP 9.0, haga clic en SmartList en el menú Ver y, a continuación, haga clic en Trabajar en proceso.
  2. Compruebe el valor de la columna WIP QTY IN . Este valor es la cantidad total que se emite para los componentes.

Método 2: Uso de scripts en SQL Server

La suma de todas las transacciones de emisión menos la suma de todas las transacciones de "emisión inversa" debe coincidir con el valor en la columna QTYRECVD de la tabla MOP1000. El valor de la columna QTYSOLD debe ser la suma de todas las cantidades que se consumen en los recibos de productos terminados. Para comprobar la columna QTYRECVD de la tabla MOP1000 y comprobar la columna QTYSOLD de la tabla MOP1210, siga estos pasos:

  1. Ejecute el siguiente script en SQL Server Management Studio o en el Analizador de consultas SQL.

    SELECT QTYRECVD,* FROM MOP1000 WHERE MANUFACTUREORDER_I='<XXX>'
    

    Nota:

    Reemplace <XXX> por el número de pedido de fabricación.

    El valor en la columna QTYRECVD de la tabla MOP1000 debe ser la suma de todas las transacciones de emisión menos la suma de todas las transacciones de "reversión de emisión".

  2. Ejecute el siguiente script en SQL Server Management Studio o en el Analizador de consultas SQL.

    SELECT TRX_TYPE, TRXQTY, * FROM MOP1210 WHERE MANUFACTUREORDER_I='<XXX>'
    

    Debe agregar el valor en la columna TRXQTY para cada tipo de TRX_TYPE. El total es la cantidad recibida.

    Nota:

    Los siguientes valores se usan para TRX_TYPE:

    • 1: realizar transacción
    • 2: transacción de problema inverso

    El valor de la columna QTYSOLD debe ser la suma de todas las cantidades que se consumen en los recibos de productos terminados.

Paso 6: Comprobar que la cantidad que se emite para los componentes es correcta

Debe comprobar que las cantidades que se emiten en la tabla PK010033, en la tabla MOP1400 y en la tabla MOP1210 son correctas. Para ello, siga estos pasos:

  1. Para asegurarse de que el valor en la columna QTY_ISSUED_I sea correcto, compruebe la tabla PK010033 y la tabla MOP1400. A veces, parte de las transacciones de "problema inverso" actualiza la tabla PK010033 y la tabla MOP1400. Sin embargo, ninguna otra tabla se ve afectada. Para comprobar que el valor de la columna QTY_ISSUED_I de estas tablas es correcto, siga estos pasos:

    1. En el menú Consulta , seleccione Fabricación, Pedidos de fabricación y, a continuación, haga clic en Actividad mo.

    2. En la ventana Actividad de pedido de fabricación, escriba el número de pedido de fabricación en el campo Número de MO.

    3. Haga doble clic en el documento sobre el que desea obtener más información. Si el documento se publicó correctamente, debería ver los componentes en la ventana Consulta de transacciones de inventario.

    4. Compruebe que el valor es correcto en la columna QTY_ISSUED_I de la tabla MOP1400 y en la tabla PK010033. Para ello, ejecute el siguiente script en SQL Server Management Studio o en el Analizador de consultas SQL.

      SELECT QTY_ISSUED_I, * FROM MOP1400 WHERE MANUFACTUREORDER_I='<XXX>'
      SELECT QTY_ISSUED_I, * FROM PK010033 WHERE MANUFACTUREORDER_I='<XXX>'
      

      Nota:

      Reemplace <XXX> por el número de pedido de fabricación.

    5. Si el valor de la columna QTY_ISSUED_I es incorrecto, actualícelo mediante un script en SQL Server. Para ello, ejecute el siguiente script en SQL Server Management Studio o en el Analizador de consultas SQL.

      Update PK010033 set QTY_ISSUED_I = '<XX>' WHERE DEX_ROW_ID = '<YYYY>'
      Update MOP1400 set QTY_ISSUED_I = '<XX>' WHERE DEX_ROW_ID = '<YYYY>'
      

      Nota:

      Reemplace <XX> por el número correcto de elementos emitidos. Reemplace <YYYY> con el valor de la columna DEX_ROW_ID que fue devuelto en el paso 1d anterior en esta sección.

  2. Compruebe que los números correctos se han emitido e invertido en las tablas MOP1200 y MOP1210. Para ello, siga estos pasos:

    1. Si la transacción "problema inverso" no se procesa completamente, quítela de la tabla MOP1210 o actualícela mediante el valor correcto. Si la transacción "problema inverso" no se procesa por completo, recibirá el siguiente mensaje de error cuando realice transacciones con los elementos relacionados:

      Las cantidades no son suficientes para esta transacción.

      • Para quitar la transacción de problema inverso en la tabla MOP1210, ejecute el siguiente script en SQL Server Management Studio o en el Analizador de consultas de SQL.

        DELETE MOP1210 WHERE WHERE MANUFACTUREORDER_I='<XXX>'and DEX_ROW_ID ='<YYYY>'
        

        Nota:

        Reemplace <XXX> por el número de pedido de fabricación. Reemplace <AAAA> por el valor de DEX_ROW_ID que tiene que eliminar de un elemento.

      • Si la cantidad de un componente se ha transaccionado parcialmente, debe actualizar el registro en la tabla MOP1210. Para ello, ejecute el siguiente script en SQL Server Management Studio o en el Analizador de consultas SQL.

        UPDATE MOP1210 SET TRXQTY ='<X>' WHERE WHERE MANUFACTUREORDER_I='<YYY>'and DEX_ROW_ID ='<ZZZZ>'
        

        Nota:

        Reemplace <X> por la cantidad correcta. Reemplace <YYY> por el número de pedido de fabricación. Reemplace <ZZZZ> por el valor de DEX_ROW_ID que debes actualizar.

    2. Realice el proceso de conciliación de inventario para estos elementos. Para ello, use el paso adecuado:

      • En Microsoft Dynamics GP 10.0, seleccione Utilidades en el menú microsoft Dynamics GP , seleccione Inventario y, a continuación, haga clic en Conciliar.
      • En Microsoft Dynamics GP 9.0, apunte a Utilidades en el menú Herramientas, apunte a Inventario y luego haga clic en Reconciliar.

Después de completar estos pasos, puede procesar correctamente una transacción de "problema inverso" para los pedidos de fabricación o para los artículos que causan este problema. Para ello, siga estos pasos:

  1. En el menú Transacciones, seleccione Fabricación, apunte a Órdenes de fabricación y, a continuación, haga clic en Entrada de transacciones de componente.
  2. Escriba el intervalo de los números de pedido de fabricación en la sección Intervalos y, a continuación, haga clic en Anulación de emisión en la lista de Tipo de transacción.
  3. Haga clic en el elemento que desea emitir en reversa y, a continuación, haga clic en Agregar al documento de selección.
  4. Haga clic en Publicar.