El campo Fecha de envío se calcula incorrectamente después de establecer el campo Fecha de entrega solicitada en un pedido de venta en Microsoft Dynamics NAV

Se aplica a
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

Este artículo se aplica a Microsoft Dynamics NAV para todos los países o regiones y todas las configuraciones regionales.

Síntomas

Tenga en cuenta el siguiente escenario en Microsoft Dynamics NAV:

  • Tiene un calendario de semana laboral especificado, por ejemplo, de lunes a viernes.
  • Tiene el campo Tiempo de envío y el campo Código de agente de envío especificados en un pedido de venta.
  • Establezca el campo Fecha de entrega solicitada en el pedido de venta.

En este escenario, el campo Fecha de envío del pedido de venta se calcula incorrectamente. 
Este problema se produce en los productos siguientes:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

      

Resolución

Información de la revisión

Microsoft ya dispone de una revisión compatible. Sin embargo, solo está pensada para corregir el problema que se describe en este artículo. Aplíquelo solo a los sistemas que experimenten este problema específico. Es posible que esta revisión se someta a pruebas adicionales. Por consiguiente, si no se ve gravemente afectado por este problema, le recomendamos que espere al siguiente Service Pack de Microsoft Dynamics NAV 2009 o a la siguiente versión de Microsoft Dynamics NAV que contenga esta revisión.

Nota: En casos especiales, los costes derivados de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft Dynamics y productos relacionados determina que una actualización específica resolverá el problema. Se aplicarán los costos habituales de soporte técnico a las consultas y cuestiones de soporte técnico adicionales que no guarden relación con la actualización en cuestión.

            
          

Información de instalación

Microsoft proporciona ejemplos de programación solo para ilustración, sin garantía expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad o idoneidad para un propósito determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se usan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

Nota: Antes de instalar esta revisión, compruebe que todos los usuarios del cliente de Microsoft Navision hayan cerrado sesión en el sistema. Esto incluye a los usuarios cliente de Microsoft Navision Application Services (NAS). Debe ser el único usuario cliente que ha iniciado sesión al implementar esta revisión.

Para implementar esta revisión, debe tener una licencia de desarrollador.

Se recomienda asignar el ID de rol "SUPER" a la cuenta de usuario de la ventana Inicios de sesión de Windows o de la ventana Inicios de sesión de la base de datos. Si no se puede asignar a la cuenta de usuario el id. de rol "SUPER", debe comprobar que la cuenta de usuario tiene los permisos siguientes:

  • El permiso Modificar para el objeto que va a cambiar.
  • El permiso de ejecución para el objeto de id. de objeto de sistema 5210 y para el objeto de id. de objeto de sistema 9015.

                
Nota: No es necesario tener derechos sobre los almacenes de datos, a menos que tenga que realizar una reparación de datos.

Cambios de código

Nota: pruebe siempre las correcciones de código en un entorno controlado antes de aplicarlas a los equipos de producción.
Para resolver este problema, siga estos pasos:

  1. Agregue una variable global en la tabla Sales Line (37) y, a continuación, especifique la variable de la siguiente manera:

    • Nombre: RequestedPromisedDateCalulated
    • DataType: Boolean
  2. Cambie el código en el desencadenador Fecha de entrega solicitada: OnValidate en la tabla Sales Line (37) de la siguiente manera:
    Código existente

    ...
    IF ("Requested Delivery Date" <> xRec."Requested Delivery Date") AND
    ("Promised Delivery Date" <> 0D)
    THEN
    ERROR(
    Text028, 
    FIELDCAPTION("Requested Delivery Date"),
    FIELDCAPTION("Promised Delivery Date"));
    IF "Requested Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Requested Delivery Date")
    ELSE BEGIN
    GetSalesHeader;
    VALIDATE("Shipment Date",SalesHeader."Shipment Date");
    END;
    END;
    }
    { 5791;   ;Promised Delivery Date;Date        ;OnValidate=BEGIN
    TestStatusOpen;
    IF "Promised Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Promised Delivery Date")
    ELSE
    ...
    

    Código de reemplazo

    ...
    IF ("Requested Delivery Date" <> xRec."Requested Delivery Date") AND
    ("Promised Delivery Date" <> 0D)
    THEN
    ERROR(
    Text028,
    FIELDCAPTION("Requested Delivery Date"),
    FIELDCAPTION("Promised Delivery Date"));
    
    RequestedPromisedDateCalulated := "Requested Delivery Date" <> 0D;
    IF "Requested Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Requested Delivery Date")
    ELSE BEGIN
    GetSalesHeader;
    VALIDATE("Shipment Date",SalesHeader."Shipment Date");
    END;
    END;
    }
    { 5791; ;Promised Delivery Date;Date ;OnValidate=BEGIN
    TestStatusOpen;
    RequestedPromisedDateCalulated := "Promised Delivery Date" <> 0D;
    IF "Promised Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Promised Delivery Date")
    ELSE
    ...
    
  3. Cambie el código en el desencadenador Fecha de entrega planificada: OnValidate en la tabla Sales Line (37) como sigue:
    Código existente

    ...
    IF FORMAT("Shipping Time") <> '' THEN
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC2(
    FORMAT("Shipping Time"),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    TRUE))
    ELSE
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC(
    FORMAT(''),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    TRUE));
    
    IF "Planned Shipment Date" > "Planned Delivery Date" THEN
    ...
    

    Código de reemplazo

    ...
    IF FORMAT("Shipping Time") <> '' THEN
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC2(
    FORMAT("Shipping Time"),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    NOT RequestedPromisedDateCalulated))
    ELSE
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC(
    FORMAT(''),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    NOT RequestedPromisedDateCalulated));
    
    IF "Planned Shipment Date" > "Planned Delivery Date" THEN
    ...
    

Requisitos previos

Debe tener uno de los siguientes productos instalados para aplicar esta revisión:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

              

Información sobre la eliminación

No puede quitar esta revisión.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Nota Esto es un artículo "PUBLICACIÓN RÁPIDA" creado directamente desde la organización de soporte técnico de Microsoft. La información contenida se proporciona tal cual en respuesta a nuevos problemas. Como resultado de la rapidez en la publicación, es posible que los materiales incluyan errores tipográficos. Además, se pueden revisar en cualquier momento sin previo aviso. Consulte los Términos de uso para otras consideraciones.