Este manual te guiará paso a paso para copiar una empresa en Dynamics NAV utilizando PowerShell. Se recomienda realizar pruebas en un entorno de preproducción (PRE) antes de aplicar los cambios en producción.
Consideraciones Iniciales
- Modificaciones de Código o Gran Tamaño de Empresa: Si tu empresa tiene modificaciones de código o ocupa mucho espacio, la opción estándar de copiar empresa puede no funcionar. Consulta la documentación de Microsoft o busca soluciones específicas en Internet. Puedes encontrar más detalles sobre este tema en este foro.
Requisitos Previos
- Permisos: Conceder permisos totales en:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exeC:\Program Files\Microsoft Dynamics NAV\100\Service\NavAdminTool.ps1
Pasos para Copiar una Empresa en Dynamics NAV
1. Realizar un Backup de la Base de Datos
Antes de realizar cualquier cambio, es crucial hacer una copia de seguridad de la base de datos. Esto asegurará que puedes restaurar los datos en caso de que algo salga mal durante el proceso de copia.
Crear el Backup:
- Utiliza SQL Server Management Studio (SSMS) para crear un backup completo de la base de datos de Dynamics NAV.
- Selecciona la base de datos correspondiente, haz clic derecho y elige
Tasks > Back Up.... - Sigue los pasos para configurar el backup y guárdalo en un lugar seguro.
2. Conceder Permisos
Conceder permisos totales en los directorios mencionados. Asegúrate de tener privilegios de administrador.
3. Ejecutar PowerShell como Administrador
Navegar a C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe y ejecutar PowerShell como administrador.
4. Modificar la Configuración en Administración de NAV
Ruta para llegar a la Administración de NAV:
Abre el Business Central Server Administration Tool. Para más información, consulta la documentación oficial de Microsoft.
Configuraciones a Modificar:
- Database:
SQL Command Timeout: 23:30:00
- Client Services:
Keep alive interval: 23:30:00Idle client timeout: 23:30:00Reconnect Period: 23:30:00
5. Importar el Módulo de Administración de NAV
Import-Module 'C:\Program Files\Microsoft Dynamics NAV\100\Service\NavAdminTool.ps1'
6. Eliminar la Empresa Existente (si es necesario)
Remove-NAVCompany -ServerInstance 'BBDDPRO' -CompanyName 'BKUP-BBDD-231127'
7. Copiar la Empresa
Copy-NAVCompany -ServerInstance 'BBDDPRO' -SourceCompanyName 'BBDD' -DestinationCompanyName 'BKUP-BBDD-231129'
Verificar en SSMS: Asegúrate de que las tablas de ‘BKUP-BBDD-231129’ existan en SSMS.
8. Restaurar Configuración Inicial y Reiniciar la Instancia
Antes de reiniciar la instancia, restaura los valores originales de configuración para evitar problemas con las sesiones.
- Database:
SQL Command Timeout: 0:30:00
- Client Services:
Keep alive interval: 00:15:00Idle client timeout: 00:16:00Reconnect Period: 0:15:00
Nota: El tiempo de Keep alive interval debe ser inferior al de Idle client timeout, ya que de lo contrario las sesiones no se cerrarán nunca. Esto es un bug conocido de Dynamics NAV.
Reiniciar la instancia de BBDDPRO después de realizar las modificaciones.
Notas Adicionales
In Microsoft Dynamics NAV 2017, existen cinco Cmdlets para administrar empresas:
Copy-NAVCompanyGet-NAVCompanyNew-NAVCompanyRemove-NAVCompanyRename-NAVCompany
Para ejecutar estos Cmdlets, necesitamos iniciar ‘PowerShell ISE’ como Administrador. Luego, importa el módulo de administración de NAV para usar los Cmdlets de PowerShell de NAV.
Tareas a realizar:
- Mostrar todas las empresas
- Copiar una empresa
- Renombrar una empresa
- Crear una nueva empresa
- Eliminar la nueva empresa
Cmdlets utilizados:
Import-Module 'C:\Program Files\Microsoft Dynamics NAV\100\Service\NavAdminTool.ps1'
$ServerInstance = 'NST2017RTM' # Modificar con el nombre de tu instancia de servidor
Get-NAVCompany -ServerInstance $ServerInstance # Mostrar todas las empresas
Copy-NAVCompany -ServerInstance $ServerInstance -SourceCompanyName 'CRONUS Nederland BV' -DestinationCompanyName 'CRONUS International' # Copiar una empresa existente a una nueva
Rename-NAVCompany -ServerInstance $ServerInstance -CompanyName 'CRONUS International' -NewCompanyName 'CRONUS Worldwide Enterprises' # Renombrar la empresa copiada
New-NAVCompany -ServerInstance $ServerInstance -CompanyName 'CRONUS Europe' # Crear una nueva empresa
Remove-NAVCompany -ServerInstance $ServerInstance -CompanyName 'CRONUS Europe' # Eliminar una empresa
Si estás operando NAV en una configuración multi-inquilino, también debes especificar el parámetro Tenant. El parámetro ServerInstance es obligatorio para todos los Cmdlets de empresa.
Entorno de Preproducción: Siempre realiza estas operaciones en un entorno de preproducción antes de aplicarlas en producción para asegurarte de que no habrá problemas.