La meilleure façon de sauvegarder le référentiel BO est par la génération de fichiers BIAR. En effet, l’outil d’importation permet d’importer facilement et rapidement le contenu d’un fichier BIAR. Un BIAR n’est ni plus ni moins qu’un fichier zip contenant des informations spécifiques interprétable par l’outil d’importation.
Un programme java (biarengine.jar) permet de générer automatiquement des fichiers BIAR. Je l’ai donc inclus dans un script vbs afin de générer périodiquement des fichiers BIAR pour avoir une sauvegarde simple à récupérer de notre référentiel (en cas de problème).
Ce script génère un fichier « export.properties » (dans le même endroit où se trouve le script) et lance le biarengine pour la génération du biar qu’il dépose dans un répertoire indiqué grâce aux variables d’entrées sDiskSauv et sRepSauv. Il permet de ne garder que les 7 derniers biar générés afin de ne pas surcharger le disque. Vous pouvez modifier ce chiffre afin de l’adapter à vos besoins.
N’oubliez pas non plus de modifier la partie :
objFile.WriteLine("password=password")
En y indiquant le mot de passe de l’utilisateur « Administrator » de votre référentiel. En effet, un accès administrateur est obligatoire pour générer un biar. Le script se trouve sur : Script pour la génération automatique de BIAR (3259 téléchargements ) .
Ci-dessous, le code source, à toutes fins utiles :
'export_biar.vbs – Exporte le référentiel BO dans un fichier biar '© Pascal MIETLICKI – 02/02/2011 16:04 '@Param : 'sRepLib : repertoire des librairies java de BO 'sDiskSauv : disque de sauvegarde des BIAR 'sRepSauv : repertoire du disque de sauvegarde ou mettre les BIAR generes Set oShell = CreateObject(« WScript.Shell ») Set oProcEnv = oShell.Environment(« PROCESS ») 'Pour recuperer le chemin de ProgramFiles sProgramFiles = oProcEnv(« ProgramFiles ») 'Le repertoire ou se trouve les librairies java de BO et notamment biarengine.jar sRepLib = « \Business Objects\common\4.0\java\lib » 'Le disque de sauvegarde sDiskSauv = « S: » 'Le repertoire ou exporter les sauvegardes sur le disque de sauvegarde 'Ce repertoire doit deja etre present sur le disque il ne sera pas cree si il n existe pas deja sRepSauv = « BIAR » today = year(Date) & _ right(« 0 » & month(date), 2) & _ right(« 0 » & day(date), 2) strFile = « export.properties » 'Create the File System Object Set objFSO = CreateObject(« Scripting.FileSystemObject ») Set objFile = objFSO.CreateTextFile(strFile) objFile.WriteLine(« #Pour exporter un biar de tous les fichiers du serveur ») objFile.WriteLine(« exportBiarLocation= » & sDiskSauv & « / » & sRepSauv & « / » & today & »_SAUVEGARDE_REFERENTIEL.biar ») objFile.WriteLine(« action=exportXML ») objFile.WriteLine(« userName=Administrator ») 'Il faut mettre votre mot de passe administrateur ci-dessous et les informations de votre CMS objFile.WriteLine(« password=password ») objFile.WriteLine(« CMS=@cluster ») objFile.WriteLine(« authentication=secEnterprise ») objFile.WriteLine(« exportDependencies=true ») objFile.WriteLine(« includeSecurity=true ») objFile.WriteLine(« exportQuery1=select TOP 1000000 * from ci_Infoobjects ») objFile.WriteLine(« exportQuery2=select TOP 1000000 * from ci_Appobjects ») objFile.WriteLine(« exportQuery3=select * from ci_Systemobjects ») objFile.WriteLine(« exportQueriesTotal=3 ») objFile.Close if sDiskSauv = « » then wscript.quit(0) if sRepSauv = « » then wscript.quit(0) set oFSO = CreateObject(« Scripting.FileSystemObject ») 'Cette partie du code permet de ne garder que les 7 dernieres sauvegarde (sur une semaine) 'Vous pouvez changer le chiffre si vous souhaitez garder moins (ou plus) de sauvegardes If oFSO.FolderExists(sDiskSauv & « \ » & sRepSauv) Then For each oFile in oFSO.GetFolder(sDiskSauv & « \ » & sRepSauv).Files if datediff(« d »,oFile.DateCreated, Now()) > 7 Then oFile.Delete end if next end if 'MsgBox « java.exe -jar » & chr(34) & sProgramFiles &sRepLib & « \biarengine.jar » & chr(34) Set objShell = CreateObject(« WScript.Shell ») Set objWshScriptExec = objShell.Exec(« java.exe -jar » & chr(34) & sProgramFiles & sRepLib & « \biarengine.jar » & chr(34) & » export.properties ») Set objStdOut = objWshScriptExec.StdOut strOutput = objStdOut.ReadAll ‘WScript.Echo strOutput Set objFS = CreateObject(« Scripting.FileSystemObject ») Set objFileOutput = objFS.CreateTextFile(sDiskSauv & « \ » & sRepSauv & « \ » & today & « _logs.txt ») objFileOutput.WriteLine(strOutput) objFileOutput.Close set oShell = nothing set oProcEnv = nothing set sProgramFiles = nothing set sRepLib = nothing set sDiskSauv = nothing set sRepSauv = nothing set strFile = nothing set objFSO = nothing set objFile = nothing set oFSO = nothing set objShell = nothing set objWshScriptExec = nothing