lunes, 25 de enero de 2021

                               

                                    Migración de  Dynamics NAV2018  a  Business Central


Como migrar una base de datos de + 300 Gigas  de la versión NAV 2018 y además con una vertical integrada  casi 5000 Personalizaciones en objetos para actualizar a Business Central on Premises 

para  la migración de datos. Analicemos esos pasos.


La actualización directa a Microsoft Dynamics 365 Business Central (local) de la siguientes versión:

1. NAV 2018.




Pasos a seguir


Pre-requisitos

Ejecutar  de la base del cliente los objetos XML9171 y XML9172 y exportarlos


Paso 1: Crear copia de seguridad completa de la base de datos SQL de la base de datos antigua.

Cree una copia de seguridad completa de la base de datos anterior en SQL Server. Alternativamente, puede hacer una copia de la base de datos antigua y realizar las tareas de actualización en la copia.



Paso 2: Desinstale todas las extensiones de la base de datos anterior.

Para obtener una lista de las extensiones que están instaladas, ejecute este comando:

Get-NAVAppInfo -ServerInstance <ServerInstanceName> -Tenant default

para este cliente no hay extensiones instaladas



se muestra los pasos en caso de que si hay extensiones instaladas se procederá de esta manera

Para cada extensión, ejecute este comando para desinstalarlo:

Uninstall-NAVApp -ServerInstance <ServerInstanceName> -Name <Name> -Version <xxxxxx>


Para todas las  extensión, ejecute este comando para desinstalarlas:

Get-NAVAppInfo -ServerInstance <ServerInstanceName> -Tenant default | % { Uninstall-NAVApp -ServerInstance <ServerInstanceName> -Name $_.Name -Version $_.Version }


Reemplace <ServerInstanceName> con el nombre de la instancia de Dynamics NAV Server a la que se conecta la base de datos.





Paso 3: Cargue la licencia de socio de Business Central en la base de datos anterior

muy importante ya que hay objetos nuevos en la versión BC y no se podrán ejecutar por los permisos



 Paso 4: Elimine todos los objetos excepto las tablas de la base de datos anterior. 

En la versión del entorno de desarrollo que coincide con la base de datos, abra la base de datos anterior, abra el Diseñador de objetos, seleccione todos los objetos excepto las tablas y luego elija Eliminar.

  1. Seleccione Todo en el diseñador de objetos y marque todo. (Edición Marcar/Desmarcar).
   
 se marcan todos los objetos 






      2.-Seleccione Tablas del Diseñador de objetos y elimine la marca (Edición Marcar/Desmarcar)
      

      3.-Seleccione Todo y Solo marcado. (Ver: solo marcados).




y eliminamos



Paso 5: Borre la instancia del servidor y los registros de puntos de interrupción del depurador de la base de datos anterior.

   DELETE FROM [<Nombre de mi base de datos>].[dbo].[Server Instance]

   DELETE FROM [<Nombre de mi base de datos>].[dbo].[Debugger Breakpoint]




Paso 6: convierta la base de datos anterior al formato Business Central.

Configure el permiso de usuario como db_owner en SQL Server como se muestra a continuación.



Ejecute el entorno de desarrollo central de negocios (BC)  como administrador . No ejecute la sincronización del esquema en este momento. Elija ejecutarlo más tarde. 






abrir la base anterior NAV2018  del cliente 


aceptamos





Paso 7: importe los objetos de la aplicación actualizados.

Con el entorno de desarrollo de Dynamics NAV para Business Central, importe los objetos de la aplicación que desee en la base de datos. (Resultado de la combinación de objetos).

este paso es el mas complejo y mas si tiene muchas personalizaciones como esta base del cliente ya que  aquí en este punto se debe de exportar  los objetos del cliente la base  nativa de nav2018 y la base nativa de BC,  les mostrare   los comandos sin entrar en detalles es un tema nuevo  para exportar y las bases y hacer los merges ya que se tiene que instalar las bases  nativas 

//cliente 2018

PS C:\Windows\system32> Export-NAVApplicationObject C:\MigrarNAV2018ToBC\Export\Custom\AllObjectsClient.txt -DatabaseServer 'SVR-CEN-PBL' -DatabaseName 'test'|Split-NAVApplicationObjectFile -Destination C:\MigrarNAV2018ToBC\Export\Custom\split\  

/// nativa 2018

PS C:\Windows\system32> Export-NAVApplicationObject C:\MigrarNAV2018ToBC\Export\Original\AllObjectsNativa.txt -DatabaseServer 'SVR-CEN-PBL\NAVDEMO' -DatabaseName 'Demo Database NAV (11-0)' -exportTxtSkipUnlicensed -ExportToNewSyntax  

// nav BC 14 

Export-NAVApplicationObject C:\MigrarNAV2018ToBC\Export\Original\AllObjectsBC14.txt -DatabaseServer 'SVR-CEN-PBL\BCDEMO' -DatabaseName 'Demo Database BC (14-0)'  -exportTxtSkipUnlicensed -ExportToNewSyntax


merge-NAVApplicationObject -OriginalPath "c:\MigrarNAV2018ToBC\merge\Original" -ModifiedPath "c:\MigrarNAV2018ToBC\merge\modified" -TargetPath "c:\MigrarNAV2018ToBC\merge\Target" -ResultPath "c:\MigrarNAV2018ToBC\merge\Result"


***join 

Join-NAVApplicationObjectFile -source "c:\MigrarNAV2018ToBC\merge\Result\*.txt" -destination "c:\MigrarNAV2018ToBC\merge\Result\fusionado.txt"

el resultado debe de ser es mas algo parecido a  esto







es mas facil crear una base de datos nueva  y vacíar e importar los objetos fusionados y en esta fase corregir todo los posibles errores





por ejemplo lo que se puede presentar








una vez corregidos los errores  ahora si exportamos los objetos  e impórtalos en nuestra base convertidas del cliente donde nada mas tenemos las tablas 




compilamos la base y seleccionamos   Sincronización de esquema para más tarde.




8.-con el entorno de desarrollo de Dynamics NAV para Business Central, importe la unidad de código de actualización adecuada. (Desde el DVD del producto)


la que nos interesa es la 110014x.FOB que corresponde a NAV2018 uso la de carpeta  data conversión tools ya que esta tiene los objetos  de la base  W1


importamos


Seleccione Aceptar para abrir la hoja de trabajo de importación.





Seleccione Reemplazar todo.



Seleccione Sincronización de esquema para más tarde.



Paso 9: conecte una instancia de Business Central Server a la base de datos convertida.

Asigne a un nivel de servicio NAV o use el cmdlet Set-NAVServerConfiguration en el Shell de administración de Business Central para conectar una instancia de Business Central Server a la base de datos convertida.



La cuenta de servicio que usa la instancia de Business Central Server debe ser miembro del rol db_owner en la base de datos de Business Central en SQL Server o Azure SQL Database.



Al actualizar una base de datos grande, debe aumentar la configuración de Tiempo de espera del comando SQL para la instancia de Business Central Server, para evitar tiempos de espera durante la sincronización del esquema. La configuración predeterminada es de 30 minutos.





Paso 10: compila todos los objetos

Utilice el entorno de desarrollo de Dynamics NAV o finsql.exe para compilar todos los objetos. 

Esto incluye los objetos de aplicación importados, las tablas de datos y las tablas del sistema. 

Elija ejecutar la sincronización del esquema más tarde. 




Paso 11: eliminar objetos, ya no son necesarios nuestra versión no aplica pero quiero mencionarlo por si se ocupa y quede como referencia

Si obtiene errores en los siguientes objetos de la tabla, utilice el Diseñador de objetos para eliminar los objetos porque ya no se utilizan. (Aplica solo para NAV 2015 y NAV 2016)


Filtro de las tablas:  470 | 824 | 825 | 827 | 828 | 829 | 1510


Cuando elimine un objeto de tabla, en el cuadro de diálogo de confirmación Eliminar que aparece, configure la opción Sincronizar esquema en Forzar.


Paso 12: aumente la versión de la aplicación de la base de datos  (se aplica si se actualiza desde NAV 2018)


Si está actualizando desde Microsoft Dynamics NAV 2018, debe aumentar la versión de la aplicación que está asignada a la base de datos.

Use el cmdlet Set-NAVApplication del Shell de administración central de negocios para aumentar el número de versión de la aplicación de la base de datos desde su versión actual.

Para ver la versión actual, use el siguiente comando:

Get-NAVApplication -ServerInstance <ServerInstanceName

Para cambiar la versión, use el siguiente comando:

Set-NAVApplication -ServerInstance <ServerInstanceName> -ApplicationVersion <xxxxxx> -Force

<xxxxxx> colocar la versión  a actualizar


Por ejemplo, si la versión anterior era 11.0.19394.0, entonces podría cambiar la versión a 14.0.29530.


quedando así:





Paso 12: ejecutar la sincronización del esquema en los objetos importados

Ejecutar - Sync-NAVTenant -ServerInstance <ServerInstanceName>




Paso 13: Ejecutar la sincronización de los objetos importados.


Una actualización de datos ejecuta los objetos del kit de herramientas de actualización, como las unidades de código de actualización y las tablas de actualización, para migrar los datos comerciales de la estructura de la tabla anterior a la estructura de la nueva. 

Puede iniciar la actualización de datos desde Dynamics NAV Development Environment o Business Central Administration Shell.



*nota este proceso puede haber errores en objetos  se deben corregir y un punto mas  es un proceso que se hace muy largo dependiendo del tamaño de  la base de datos  en mi caso lo ejecute como las 7:00 pm y termino  las 9:a.m


Paso 13: ejecutar el proceso de actualización de datos





con este comando podemos ver el estado





cada vez que termina el  proceso en este punto me hace feliz


Paso 14: importar permisos y conjuntos de permisos actualizados.


Importe los conjuntos de permisos y los archivos XML de permisos que exportó de la base de datos anterior de la siguiente manera:

1. Elimine todos los conjuntos de permisos de la base de datos excepto el conjunto de permisos SUPER.

2. En el Diseñador de objetos, ejecute la página 9802 Conjuntos de permisos y luego elimine los conjuntos de permisos excepto SUPER.

3. Ejecute XMLport 9171 y XMLport 9172 para importar los conjuntos de permisos y los archivos XML de permisos.





Paso 15:  eliminar los objetos de actualización

En este punto, ha actualizado la base de datos a Business Central. Ahora, puede eliminar las unidades de código de actualización y los objetos de tabla de actualización que importó en la tarea 9. Esta tarea es recomendada pero no obligatoria. 

Cuando elimine tablas, en el cuadro de diálogo Eliminar, establezca la opción Sincronizar esquema en Forzar.


Filtrar objetos con etiqueta de versión      @ * UPG

Elimine todos los objetos del filtro con Sync Schema Force .






Con esto terminamos la migración lo que resta es reinstalar las extensiones para usar Al developement