Resolviendo Errores de Dirección Ilegal en Ventanas Alternas después de la instalación de algun Service Pack en Dynamics GP

Cada vez que un Service Pack para Dynamics GP es liberado, existe la posibilidad potencial para que la instalación del service pack nos genere un error de Dirección Ilegal para algún campo en una ventana alterna o modificada. He visto suceder esto a través de los años varias veces, generalmente con la ventana de Entrada de Transacciones de Ventas (SOP_Entry) en el módulo de Procesamiento de Órdenes de Venta.

La razón para este error es usualmente que el Service Pack agrega algún campo nuevo a la ventana y realiza la actualización de scripts que utilizan este campo. Si la ventana alterna o modificada no ha sido actualizada para incluir este nuevo campo, cuando el código se ejecuta y hace referencia a este campo no disponible, es cuando se produce el error ilegal.

Illegal Address for field field name in script script name  (Dirección Ilegal para él [campo] en el script [nombre de script])

Como puedo resolver un error de Dirección Ilegal en una ventana alterna o modificada después de instalar un Service Pack?

Primero, debes de confirmar exactamente en que versión se encuentra la ventana. Utiliza las opciones de seguridad (o el ID de Reportes o Formas Modificadas o Alternas para GP 2010) para configurarle al sistema que utilice la versión original de la ventana. Cuando se utiliza la ventana original, no debería de haber error.

Nota: Si obtienes algún error en referencia a recursos no encontrados agregados a la ventana alterna, significa que el producto complemento no está verificando si la ventana alterna esta en uso antes de ejecutar el código desencadenador. La mejor práctica para manejar esto se encuentra explicada en los siguientes KB (se encuentran en Ingles).

Si el problema sucede solo con ventanas modificadas o versiones alternas modificadas, pero funciona con una ventana alterna u original, será necesario que recrees de nuevo la ventana modificada. Los siguientes pasos deberían de poder ayudarte a resolver el incidente:

  1.  
    1. Utilizando la ventana de Mantenimiento de Personalización (Herramientas >> Personalización >> Mantenimiento de Personalización) exporta la ventana como un paquete.
    2. Si existe código Visual Basic para Aplicaciones (VBA) asociado a la ventana, abre la ventana y selecciona Herramientas >> Personalización >> Remover ventana actual de Visual Basic.
    3. Después ingresa a Modificador (Herramientas >> Personalización >> Modificador), selecciona el producto apropiado, localiza la forma que contiene la ventana y bórrala.
    4. Regresa a Microsoft Dynamics GP (Archivo >> Microsoft Dynamics GP) y utiliza Mantenimiento de Personalización para importar el paquete grabado en el paso 1.
    5. Prueba.
    6. Respalda.

Este proceso recreará la ventana desde una ventana Original (o alterna) y no incluirá el campo no disponible previamente.


 

 

Si el problema ocurre con una versión alterna de la ventana, entonces la solución debe ser manejada a nivel Dexterity. La causa es la misma (no contener algún campo agregado), pero la solución es un tanto distinta. Para resolver el incidente:

  1. Carga en Dexterity tu diccionario de desarrollo.
  2. Asegúrate que tu código este verificado en tu repositorio de código fuente (usualmente Microsoft Visual Source Safe)
  3. Asegúrate que tu archivo índice este actualización. Actualízalo de nuevo si has agregado recursos adicionales desde tu última compilación.
  4. Asegúrate que tu Diccionario Original (Edición >> Opciones >> Control de Fuente) se encuentre apuntando a un diccionario nuevo de el ultimo desarrollo de Service Pack. Esto es usualmente el diccionario en la carpeta de aplicación después de haber instalado el Service Pack.
  5. Salir de Dexterity y renombrar tu Diccionario de Desarrollo.
  6. Copiar el diccionario nuevo (referenciado en el paso 4) a tu carpeta de desarrollo y renombrarlo como tu diccionario de desarrollo.
  7. Ingresar a Dexterity de nuevo y actualizar el archivo índice de nuevo (Explorador >> Control de Fuente) para subir tu personalización.
  8. Recompila el diccionario completo y salir de Dexterity.
  9. Utilizar las Utilidades de Dexterity para recrear el chunk (Usualmente utilizando una macro grabada previamente).
  10. Prueba
  11. Respalda

Nota: Si existe una versión modificada de una ventana alterna, necesitaras también realizar primera serie de pasos de la versión de actualización.

Esto es todo amigos!!! Espero esto sea de ayuda para ustedes.

David Musgrave

Enlace al artículo original (Idioma Inglés)