Il backup di Navision è molto flessibile, consente infatti di salvare in modo indipendente i dati di una o più società, gli oggetti applicativi e i dati comuni a tutte le società e quindi può tornare utile anche se il database è su SQL Server che è provvisto di un suo backup che però non può ovviamente soddisfare questo tipo di esigente legate esclusivamente all'uso di Navision. Va precisato però che se sta utilizzando SQL Server è consigliato utilizzare il suo backup per le seguenti ragioni:
- Il backup di SQL Server è eseguito lato server mentre il backup di Navision che è eseguito lato client.
- Il backup di SQL server non blocca i dati al contrario del backup di Navision che blocca i dati nel momento in cui sono salvati sino al termine del processo.
- Il restore di un backup eseguito col client di Navision su un database in SQL Server aumenta il log delle transazioni, occorre quindi eseguire un backup completo del database tramite il tool di SQL Server al termine.
Non esiste però la possibilità di schedulare il backup di Navision, l'unica alternativa fornita dal prodotto è quella di utilizzare tramite le Operazioni Pianificate di Windows il tool a riga di comando HotCopy che viene installato insieme al Navision Application Server, va però precisato che HotCopy viene eseguito dal server ma esegue soltanto una copia del file del database.
E' però possibile schedulare il backup di Navsion avviando tramite le Operazioni Pianificate di Windows uno script WSH che apra il client di Navsion, invii i comandi necessari per avviare il backup, attenda il termine del backup e quindi chiuda il client.
Sommario
Un modo per avviare il backup di Navision è quello di creare uno script WSH che simuli le operazione via interfaccia grafica necessarie per avviare processo:
OpenWaitTime = 3000
SendKeysWaitTime = 500
BackupWaitTime = 90000
'Avvio client Navision
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.CurrentDirectory="C:\Programmi\Microsoft Business Solutions-Navision\Client"
oShell.Run("Fin.exe")
WScript.Sleep OpenWaitTime
'Invio Enter per confermare messaggio licenze
oShell.SendKeys "{ENTER}"
'Apertura Voce Strumenti/Backup
WScript.Sleep SendKeysWaitTime
oShell.SendKeys "%TB"
'Inserimento descrizione backup
WScript.Sleep SendKeysWaitTime
oShell.SendKeys "Descrizione"
WScript.Sleep SendKeysWaitTime
oShell.SendKeys "{TAB}"
'Inserimento file backup
WScript.Sleep 500
oShell.SendKeys "F:\BkpNavision"
oShell.SendKeys "-" & Mid(FormatDateTime(Now, 2),7,4)
oShell.SendKeys "-" & Mid(FormatDateTime(Now, 2),4,2)
oShell.SendKeys "-" & Mid(FormatDateTime(Now, 2),1,2)
oShell.SendKeys "-" & Mid(FormatDateTime(Now, 3),1,2)
oShell.SendKeys "-" & Mid(FormatDateTime(Now, 3),4,2)
oShell.SendKeys "-" & Mid(FormatDateTime(Now, 3),7,2)
oShell.SendKeys ".fbk"
WScript.Sleep SendKeysWaitTime
oShell.SendKeys "{TAB}"
'Avvio Backup
WScript.Sleep SendKeysWaitTime
oShell.SendKeys "{ENTER}"
'Attesa termine Backup
WScript.Sleep BackupWaitTime
'Invio Enter per confermare messaggio Backup
oShell.SendKeys "{ENTER}"
'Chiusura client Navisio
WScript.Sleep SendKeysWaitTime
oShell.SendKeys "%FE"
Occorre utilizzare il metodo Sleep perchè l'interfaccia può non rispondere immediatamente, inoltre occorre anche stimare il tempo in cui il backup verrà ultimato per inviare i comandi di chiusura del client (il tempo può essere determinato provando a fare un backup e tenendo conto che crescerà con l'aumentare dei dati).
Se si decide di utilizzare questo metodo è consigliabile utilizzare la Windows Authentication per accedere a Navision invece di inviare tramite SendKeys l'utente e la password perchè queste rimarrebbero in chiaro all'interno dello script.