Business Objects – génération automatique de BIAR

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 (2921 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