Error con Command=generatesymbolreference – Server not available

por | 8 marzo, 2018

Estoy haciendo un Upgrade de NAV2009R2 Classic a NAV2018 (Cumulative Update 2).

Todos los desarrollos del cliente los hemos pasado a extensiones, por lo que tenemos que ser capaces de instalarlas. También tenemos que dejar la base de datos en un estado en el que podamos desarrollar nuevas extensiones, por si es necesario hacer mantenimientos o evolutivos en el cliente.

Estamos siguiendo la documentación oficial: Upgrading the Data to Microsoft Dynamics NAV 2018.

En el paso 19 (Task 19: Publish and install/upgrade extensions), hay que instalar tres paquetes de símbolos. 2 se encuentran en el DVD y 1 hay que generarlo.

Al generar los símbolos, me ha salido el siguiente error:

[0] The Server Instance specified in the Options window is not available for this database. You must choose an instance to use before performing this activity. Do you want to do this now?

 

En este artículo vamos a hacer un repaso a los pasos que hemos seguido, veremos el momento en el que se ha producido el error y como solucionarlo.

Instalar los Símbolos System.App y Test.app

  1. Publicar la extensión System.app, que se encuentra en el DVD de NAV2018 (carpeta ModernDev)
    Lo hacemos desde PowerShell con esta instrucción:

    $NavService ‘NAV2018CU2_CLIENTE’
    $AppPath = (“D:\<Ruta al DVD NAV2018>\ModernDev\program files\Microsoft Dynamics NAV\110\Modern Development Environment\System.app”)
    Publish-NAVApp -ServerInstance $NavService -Path $AppPath -PackageType SymbolsOnly

  2. Publicar la extensión Test.app, que se encuentra en el DVD de NAV2018 (carpeta ModernDev)
    Lo hacemos desde PowerShell con esta instrucción:

    $AppPath = (“D:\<Ruta al DVD NAV2018>\ModernDev\program files\Microsoft Dynamics NAV\110\Modern Development Environment\Test.app”)
    Publish-NAVApp -ServerInstance $NavService -Path $AppPath -PackageType SymbolsOnly

  3. Comprobamos que efectivamente, se han instalado los Símbolos.
    Desde PowerShell ejecutamos esta instrucción, y obtenemos el siguiente resultado (correcto).
     Get-NavAppInfo -ServerInstance $NavService -SymbolsOnly

    

Generar los Símbolos de aplicación

Los símbolos de aplicación hay que generarlos, ejecutando el finsql.exe (el entorno de desarrollo C/SIDE) con un parámetro especial.
No podemos ejecutar la instrucción desde PowerShell, pero sí desde cmd (Símbolos del sistema).

  1. Ejecutar cmd.exe como administrador.
  2. Para situarse en el directorio donde se encuentra el finsql.exe, escribir cd
    “C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client”
  3. Ejecutar la instrucción finsql.exe
    Command=generatesymbolreference, Database=NAV2018CU2_CLIENTE, ServerName=<NombreServidorSQL>, logfile=”D:\Log1.txt”

Al cabo de un rato se genera el fichero Log1.txt, que nos da el siguiente error

[0] The Server Instance specified in the Options window is not available for this database. You must choose an instance to use before performing this activity. Do you want to do this now?

Comprobando el Server Instance

Hago una serie de comprobaciones para ver que el Servicio se está ejecutando sin problemas.

  • Desde el entorno C/SIDE voy a Archivo > Base de datos > Información y veo que hay una instancia seleccionada
  • Desde el entorno C/SIDE hago Run de una página. Se abre el cliente Windows, y todo parece funcionar correctamente

Reinicio el servicio y vuelvo a intentar generar los símbolos de aplicación, pero obtengo el mismo resultado.

Modifico las propiedades del acceso directo, para habilitar también el flag generatesymbolreference.
Abro el entorno C/SIDE de esta forma, pero no parece que esté haciendo nada.

Parámetros disponibles para FinSql.exe

El problema es que al ejecutar el finsql.exe, el sistema no es capaz de reconocer a qué servicio de Dynamics NAV tiene que conectarse.

Repasando la documentación Using the Development Environment from the Command Prompt, veo que es possible forzar el Servicio con este parámetro: [navservername=<name>].

Lo añado a la instrucción, de forma que queda así:

finsql.exe Command=generatesymbolreference, Database=NAV2018CU2_CLIENTE, ServerName=<NombreServidorSQL>, navservername=NAV2018CU2_CLIENTE, logfile=”D:\Log1.txt

Estaba convencida que de esta forma podría generar los símbolos… pero el resultado ha sido el mismo. El fichero de log sigue diciendo que no ha podido conectar con el servicio de Dynamics NAV

Parar el servicio – ¡esto sí ha funcionado!

Con las múltiples pruebas que he hecho, he reiniciado el servicio unas cuantas veces y también he reiniciado la máquina.

Es una de las ocasiones he ejecutado la instrucción pero me había despistado y había dejado el servicio parado.

¡Pues esta vez ha funcionado!

Es curioso que el error diga “The Server […] is not available” , cuando SI que estaba disponible.
En cambio cuando NO está disponible (porque está parado) SI que funciona.

:-s


Salut!
Laura Nicolàs

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.