Los artículos publicados rápidamente proporcionan información directamente desde la organización de soporte técnico de Microsoft. La información contenida en este documento se crea en respuesta a temas emergentes o únicos, o está pensada para complementar otra información de knowledge base.
Este artículo se aplica a Microsoft Dynamics NAV para todos los países y todas las configuraciones regionales de idioma.
Suponga que tiene un contrato con la fecha de expiración especificada en Microsoft Dynamics NAV 5.0 Service Pack 1. Al crear una orden de servicio e intentar usar el contrato en la fecha de expiración, el contrato no se puede usar.
Síntomas
Información de revisiones
Una revisión compatible ya está disponible en Microsoft. Sin embargo, solo está pensado para corregir el problema que se describe en este artículo. Aplicarlo solo a los sistemas que experimentan este problema específico. Esta revisión puede recibir pruebas adicionales. Por lo tanto, si no se ve afectado gravemente por este problema, le recomendamos que espere al siguiente Service Pack de Microsoft Dynamics NAV 5.0 o a la siguiente versión de Microsoft Dynamics NAV que contenga esta revisión.
Nota En casos especiales, los cargos que se incurren normalmente por las llamadas de 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.
Resolució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, verifique que todos los usuarios cliente de Microsoft Navision hayan cerrado sesión en el sistema. Esto incluye a los usuarios cliente de Microsoft Navision Application Services (NAS). Usted debe ser el único usuario del cliente que ha iniciado sesión al implementar esta revisión.
Para implementar esta revisión, debe tener una licencia de desarrollador.
Le recomendamos que la cuenta de usuario en la ventana Inicios de sesión de Windows o en la ventana Inicios de sesión de base de datos tenga asignado el id. de rol "SUPER". 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 Execute para el objeto System Object ID 5210 y para el objeto System Object ID 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 aplicar las correcciones a los equipos de producción.
Para resolver este problema, siga estos pasos:
Cambie el código en el Contrato No. Función OnValidate de la tabla Encabezado de servicio (5900) de la siguiente manera:
Código existente... IF ServContract."Starting Date" > "Order Date" THEN ERROR(Text042,"Contract No."); IF (ServContract."Expiration Date" <> 0D) AND // Delete the following line. (ServContract."Expiration Date" <= "Order Date") THEN ERROR(Text043,"Contract No."); END; ...Código de reemplazo
... IF ServContract."Starting Date" > "Order Date" THEN ERROR(Text042,"Contract No."); IF (ServContract."Expiration Date" <> 0D) AND // Add the following line. (ServContract."Expiration Date" < "Order Date") THEN ERROR(Text043,"Contract No."); END; ...Cambie el código en el Contrato No. Función OnLookup en la tabla Encabezado de servicio (5900) de la siguiente manera:
Código existente... ServContract.SETRANGE("Bill-to Customer No.","Bill-to Customer No."); ServContract.SETRANGE(Status,ServContract.Status::Signed); ServContract.SETFILTER("Starting Date",'<=%1',"Order Date"); // Delete the following line. ServContract.SETFILTER("Expiration Date",'>%1 | =%2',"Order Date",0D); ServContract.FILTERGROUP(0); CLEAR(ServContractList); ServContractList.SETTABLEVIEW(ServContract); ServContractList.LOOKUPMODE(TRUE); ...Código de reemplazo
... ServContract.SETRANGE("Bill-to Customer No.","Bill-to Customer No."); ServContract.SETRANGE(Status,ServContract.Status::Signed); ServContract.SETFILTER("Starting Date",'<=%1',"Order Date"); // Add the following line. ServContract.SETFILTER("Expiration Date",'>=%1 | =%2',"Order Date",0D); ServContract.FILTERGROUP(0); CLEAR(ServContractList); ServContractList.SETTABLEVIEW(ServContract); ServContractList.LOOKUPMODE(TRUE); ...Cambie el código de la función ValidateServicePeriod de la tabla Línea de contrato de servicio (5964) de la siguiente manera:
Código existente... IF "Starting Date" > CurrentDate THEN ERROR(Text020,"Service Item No.","Contract No."); IF "Contract Expiration Date" = 0D THEN BEGIN ServContractHeader.GET(ServContractHeader."Contract Type"::Contract,"Contract No."); IF (ServContractHeader."Expiration Date" <> 0D) AND (ServContractHeader."Expiration Date" <= CurrentDate) THEN ERROR(Text021,"Service Item No.","Contract No."); END ELSE // Delete the following line. IF "Contract Expiration Date" <= CurrentDate THEN ERROR(Text021,"Service Item No.","Contract No."); ...Código de reemplazo
... IF "Starting Date" > CurrentDate THEN ERROR(Text020,"Service Item No.","Contract No."); IF "Contract Expiration Date" = 0D THEN BEGIN ServContractHeader.GET(ServContractHeader."Contract Type"::Contract,"Contract No."); IF (ServContractHeader."Expiration Date" <> 0D) AND (ServContractHeader."Expiration Date" <= CurrentDate) THEN ERROR(Text021,"Service Item No.","Contract No."); END ELSE // Add the following line. IF "Contract Expiration Date" < CurrentDate THEN ERROR(Text021,"Service Item No.","Contract No."); ...
Requisitos previos
Debe tener instalado Service Pack 1 para Microsoft Dynamics NAV 5.0 para aplicar esta revisión.
Información sobre la eliminación
No puede quitar esta revisión.
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Estado
MICROSOFT Y/O SUS PROVEEDORES NO REALIZAN DECLARACIONES NI GARANTÍAS SOBRE LA IDONEIDAD, LA CONFIABILIDAD O LA PRECISIÓN DE LA INFORMACIÓN CONTENIDA EN LOS DOCUMENTOS Y LOS GRÁFICOS RELACIONADOS PUBLICADOS EN ESTE SITIO WEB (LOS "MATERIALES") PARA CUALQUIER FIN.
LOS MATERIALES PUEDEN INCLUIR IMPRECISIONES TÉCNICAS O ERRORES TIPOGRÁFICOS Y PUEDEN REVISARSE EN CUALQUIER MOMENTO SIN PREVIO AVISO. EN LA MÁXIMA MEDIDA PERMITIDA POR LA LEGISLACIÓN APLICABLE, MICROSOFT Y/O SUS PROVEEDORES RENUNCIAN Y EXCLUYEN TODAS LAS REPRESENTACIONES, GARANTÍAS Y CONDICIONES, EXPRESAS, IMPLÍCITAS O ESTATUTARIAS, INCLUIDAS, ENTRE OTRAS, LAS REPRESENTACIONES, GARANTÍAS O CONDICIONES DE TÍTULO, AUSENCIA DE INFRACCIÓN, CONDICIÓN SATISFACTORIA O CALIDAD, COMERCIABILIDAD Y IDONEIDAD PARA UN FIN PARTICULAR, CON RESPECTO A LOS MATERIALES.