Business Objects – base de connaissances

PDF : Base de connaissances sur Business Objects (80753 téléchargements )

Ce document constitue une base de connaissances pour le progiciel Business Objects. Il contient toutes les informations amassées sur BO au cours de son utilisation, classées par catégories et par type. Loin d’être exhaustif, ce document s’enrichit chaque jour au cours de l’utilisation de BO que ce soit au niveau administration des servers ou des contenus utilisateurs (rapports, etc) notamment grâce au retour d’expérience des utilisateurs.

Architecture

BOXIR3

Planification des sauvegardes BDD sous BO XI R3

Le CMS doit être le 1er à démarrer et le dernier à être arrêté.

Il existe la commande at sous Windows

Création du script d’arrêt et de démarrage automatique de BO. Ce script bat permet de démarrer le SIA, pour l’adapter à votre installation, pensez à bien modifier Server Intelligence Agent (BOXI1) avec le nom de votre CMS (remplacer BOXI1 par le vôtre) :

REM Script pour stopper ou demarrer les SIA de BO REM action doit etre egal a start ou stop
set action=%1
REM si le parametre n’est pas bon, on sort
if NOT "%action%"=="start" (if NOT "%action%"=="stop" (exit /B))

REM On commence par le SIA BOXI contenant la CMS
net start | find "Server Intelligence Agent (BOXI)" > nul 2>&1

REM Si errorlevel superieur ou egal a 1 le programme n’est pas lance
REM Si le cms est actif et que la commande est start, on sort du programme
if ERRORLEVEL 1 ( set cmsenmarche=0 ) else ( set cmsenmarche=1 )

REM Si le cms est deja arrete et que la commande est stop, on sort du programme
if "%action%"=="stop" (if %cmsenmarche%==0 ( exit /B ) )

REM Si le cms est deja demarre et que la commande est start, on sort du programme
if "%action%"=="start" (if %cmsenmarche%==1 ( exit /B ) )

REM On demarre ou on stop le serveur, si le cms est inactif REM
if "%action%"=="stop" (net stop "Server Intelligence Agent (BOXI)")
if "%action%"=="start" (net start "Server Intelligence Agent (BOXI)")

Migration BDD

Pour la migration de la BDD BO XI 3.1

  • Arrêtez le SIA BOXI1
  • Faites un backup de l’ancienne base avant de créer la nouvelle base
  • Cataloguer la base sur le serveur BO
  • Allez dans le Central Configuration Manager
  • Spécifiez la source de données du CMS pour le SIA BOXI1 (ou par propriétés->configuration->spécifier)
  • Sélectionnez l’option « Copier les données d’une autre source »
  • Sélectionnez comme source :
    • Nom serveur : nom de la BDD source
    • ID : nom d’utilisateur ayant accès à la base
    • mdp : mdp_de_l’utilisateur
  • Copiez vers :
    • Nom serveur : nom de la BDD de destination
    • ID : nom d’utilisateur ayant accès à la base
    • mdp : mdp_de_l’utilisateur
  • Confirmez et attendre la fin du processus

Problèmes fréquents

Problème lors du redémarrage du SIA, port déjà utilisé par le système!

netstat -ab permet d’afficher les ports utilisés et l’exécutable qui les utilise (en l’occurence [system])
netstat -o permet d’afficher le PID des processus qui utilisent les ports.

Taskkill /PID XXXX /F permet de forcer l’arrêt d’un processus.

Impossible de se connecter aux serveurs BOXI3 avec les outils clients

Le problème vient du fait que les serveurs ont 2 cartes réseaux (ou du moins sont sur 2 réseaux différents), il faut donc vérifier l’affichage des cartes réseaux dans « gérer les connexions réseaux » du panneau de configuration puis « Avancé->paramètres avancés » dans l’onglet « Cartes et Liaisons », la carte publique (où les clients se connectent) doit bien apparaitre en première.

Ensuite, dans la CCM, stoppez le SIA comprenant le CMS puis allez dans « Propriétés »->Onglet « Démarrage », on sélectionne le CMS et on clique sur « Propriétés », puis dans « Port », on préfixe le numéro de port, par l’adresse IP de la carte à binder (par exemple : 192.168.1.1:6400).

BDD

Problème de date sous Informix

Les dates par défaut sous Informix sont au format « américain » (MM/DD/YYYY) ce qui crée des problèmes lorsque les utilisateurs font du SQL à la carte et qu’ils indiquent « en dur » des dates au format DD/MM/YYYY.

Pour changer ce comportement il faut modifier les clients Informix des serveurs BOXI en rajoutant ces paramètres dans la clé de registre :

[HKEY_LOCAL_MACHINE\SOFTWARE\Informix\Environment]
"INFORMIXDIR"="C:\\Program Files\\Informix\\Client-SDK\\"
"DBDATE"="DMY4/"
"DELIMIDENT"="n"

D’autre part, il a fallu modifier les fichiers informix.prm des serveurs afin de générer une date française par défaut :

<Parameter Name="USER_INPUT_DATE_FORMAT">'DD/MM/YYYY'</Parameter>

Autrement, l’erreur « Invalid month in date » survient.

D’autre part, il faut aussi penser à changer les fichiers informix.prm des clients BO qui sont, par défaut, au format américain ce qui crée des problèmes lorsque les utilisateurs font du SQL à la carte et qu’ils indiquent « en dur » des dates au format DD/MM/YYYY.

Pour changer ce comportement, il faut modifier avec un éditeur de texte type notepad des fichiers de configuration nommées informix.prm de BO qui se trouvent dans :

BusinessObjects Enterprise12.0\win32_x86\dataAccess\connectionServer\informix

et dans :

BusinessObjects Enterprise 12.0\win32_x86\dataAccess\connectionServer\jdbc

Outils clients

InfoView

Dossier : conteneur physique où sont rangés les fichiers

Catégorie : propriétés virtuelles du fichier

Les raccourcis permettent notamment de ne maintenir qu’un seul fichier (analogue aux raccourcis Windows ou ln sous Linux)

Planification

La planification peut permettre de faire des envois automatiques de documents par email par exemple.

Pour limiter le nombre d’instances : Dossier/Limites

L’heure de passage du script de suppressions des instances se trouve dans une clef de registre InstanceLimitsBatchCleanUpTime.

Problèmes rencontrés et/ou Informations utiles

Droits sur la boite de réception

Pour l’envoi de documents vers la boite de réception des utilisateurs, il faut accorder le droit « Visualiser les objets » sur les boites de réception des utilisateurs aux utilisateurs ayant le droit d’envoyer. Récapitulatif des droits à accorder pour que l’utilisateur puisse envoyer des rapports aux autres utilisateurs :

  • Pour les « boites de réception », accorder les droits suivants (avec héritage aux sous-objets) sur « Toutes les boites de réception » :
    • « Système->Boite de réception->Ajouter les objets aux dossiers »
    • « Général->Général->Visualiser les objets »
    • « Général->Général->Ajouter des objets appartenant à l’utilisateur »
    • « Général->Général->Ajouter les objets aux dossiers »
  • Pour les « Utilisateurs et groupes », accorder le droit (avec héritage aux sous-objets) :
    • « Général->Général->Visualiser les objets »

Problème de sécurité FRM008 suite à la suppression d’un document

La gestion de la sécurité sous BOXI fait que, tout document sur le référentiel accessible via InfoView, contient un entête de sécurité permettant de protéger le document. Cependant, si l’utilisateur supprime un document du référentiel via InfoView, en tout quiétude car il sait qu’il en a une copie sur son poste. Il obtiendra malheureusement à l’ouverture du document sur son poste le message : « Vous n’êtes pas autorisé à accéder à ce document (FRM008) ».

Au vu des recherches faites sur Internet, ceci est un « comportement normal de BO ». Or, il n’y a aucun moyen simple de remédier à ce problème. La seule solution à l’heure actuelle est de :

  1. Créer un nouveau document utilisant le même univers que le rapport verrouillé, ce peut être un document tout simple puis l’exporter sur le référentiel pour le rendre accessible sur InfoView dans n’importe quel dossier.
  2. Allez dans la CMC et accéder à ce document, regardez les propriétés du document et récupérer le chemin physique du document sur le FRS, par exemple :
    frs://Input/a_138/002/000/650/aspv1zmgkojaidezafajr.c.rep
  3. Se rendre dans le chemin d’accès du document, dans le répertoire parent.
  4. Une fois dans ce dossier, récupérez le nom du fichier .rep sans le supprimer, par exemple « aspv1zmgkojaidezafajr.c.rep » .
  5. Renommez le fichier verrouillé avec ce nouveau nom (ici « aspv1zmgkojaidezafajr.c.rep » ) et écrasez le .rep que vous aviez créé.
  6. Dans Deski, faites « Importez depuis le référentiel » pour importer le document. Vous devriez avoir accès au document qui était verrouillé sans aucun problème.

Designer

L’ouverture d’un .unv prend la dernière version de BO par défaut et non BO6.

Chemin des univers : « C:\Documents and Settings\tonlogin\Application Data\Business Objects\BOXX\universes\Univers » doit contenir les .unv (où XX est le numéro de version 6.0, 12.0, etc)

Apprentissage du Designer BO

Pour tester un univers :

Chaque objet doit retourner une information cohérente et validée

Tests des jointures. Par exemple pour Pays–Client-Ventes si la requête nom du pays, nom client retourne bien les clients par pays et si la requête nom client, montant des ventes retourne le bon CA par client, la relation Pays–Client–Ventes est validée.

Lancer une vérification de l’intégrité de l’univers depuis le designer

Détecter d’éventuels produits cartésiens. Dans Outils->Editeur de requêtes, insérez tous les objets dans la requête sans l’exécuter, puis cliquez sur l’icône SQL. Si le message « Risques de produits cartésiens apparait », cela signifie que l’univers n’est pas intègre et qu’il manque certains liens.

Réalisation de requêtes types utilisant les tables de volumétrie importante (analyse des requêtes, qualification des problèmes et recherche de solutions)

Pour optimiser les univers :

Essayer de ne pas utiliser de fonctions sur les colonnes indexées.

Essayer d’utiliser le moins possible l’opérateur de concaténation dans une condition ou un lien.

Utiliser les fonctions du module permettant d’améliorer les performances : les raccourcis jointures, la fonction @aggregate_Aware sur les tables d’agrégats précalculés.

Surcharge de connexions dans XI :

Dans « Outils->Gérer la sécurité->Gérer les restrictions d’accès »

Il suffit ensuite de créer une restriction et de définir la connexion pour cette restriction à un groupe d’utilisateur auquel elle s’applique.

Il faut penser à accorder les droits « Visualiser ou Visualiser à la demande » sur la connexion générique par défaut de l’univers aux utilisateurs ayant la restriction, autrement, les utilisateurs ayant la restriction en place ne pourront pas utiliser cet univers. Ensuite, lors de l’ouverture du rapport, InfoView vérifie que l’utilisateur a bien accès à la connexion globale, si c’est le cas, il vérifie si l’utilisateur a une surcharge de connexions en place auquel cas il applique cette surcharge de manière à ce que l’utilisateur n’ait accès qu’à celle-ci. Il faut donc bien s’assurer que l’ensemble des utilisateurs ayant accès à la connexion générique ont bien une restriction en place sous peine qu’ils aient accès à des informations auxquelles ils ne devraient pas.

Problèmes rencontrés et/ou Informations utiles

Problème dans le designer pour créer des conditions (filtrage) sur les alias

En fait c’était à cause du nom de l’alias qui contenait des caractères incorrects (qui créaient des erreurs SQL) tel que : « ,)

Pb connexion référentiel pour utiliser le Designer BOXIR3 :

Solution trouvée sur : http://forums.sdn.sap.com/thread.jspa?threadID=1363081

DeskI

Pour être sûr des totaux : possibilité d’utiliser plier/déplier dans DeskI (puisque ça cache les données élémentaires à l’utilisateur, les totaux affichés sont forcément bons).
Prompts ou alerteurs permet d’afficher des informations, des avertissements, etc.

Problèmes rencontrés et/ou Informations utiles

SQL à la carte

Le SQL à la carte utilise des connexions « spéciales » appelées « connexions partagées ». C’est pourquoi, si vous utilisez le cluster @nomcluster dans le nom du système, vous n’aurez pas accès au SQL à la carte car les connexions partagées sont rattachées à une machine et non pas à un cluster. Il faut donc accéder directement aux serveurs en indiquant leur nom dns.

Perte du menu principal

En cas de perte du menu principal de BO, voici comment le restaurer :

  • Enfoncez les touches Alt + F11 pour activer la fenêtre VBA
  • Enfoncez les touches CTRL + G pour activer la fenêtre Immediate Window
  • Copiez-y la ligne de code suivante : application.cmdbars.activemenubar.visible = true
  • Et la touche « Entrée » pour valider.

WebI

Pour modifier la mise en page :

  • Afficher la structure
  • Clic sur « Page »
  • Puis propriétés de la page
  • Insérer 1 invite de requête :
  • Modèles puis « Cellules individuelles->Cellule vide »
  • Pensez à modifier les bordures des cellules (dans « Propriétés->Apparence->Bordure »)
  • Clic dans la cellule puis « Fonctions » (fx) et « Réponse Utilisateur » y mettre un fournisseur de données (fd([city]) par exemple), la question à poser à l’utilisateur puis valider.

Les alerteurs sont des conditions très intéressantes afin de mettre en exergue les données d’un rapport, alertes spécifiques à une donnée ou généraux (données ou contenu cellule)

Les ruptures servent à la mise en forme en séparant les données (hiérarchie).

Référentiel : BDD + FRS
Il y a un mode brouillon (pratique pour la création) et un mode page (pour l’impression)

Attention aux contextes dans WebI qui peuvent modifier ou rendre incohérent un résultat.

Conseils sur les rapports :

  • Ajouter la date de rafraichissement des requêtes
  • Gérer un numéro de version du document
  • Etudier la possibilité d’établir une mise en forme standard des Etats (modèles, feuilles de style)
    • Utiliser Formats et données exportables

Problèmes rencontrés et/ou Informations utiles

Problème pour la création des variables. On peut les créer dans le rapport (éditeur de variables) plutôt que sous l’éditeur de requêtes contrairement à DeskI où il existe les « objets personnalisés » au sein de l’éditeur de requêtes.

Pour remettre à 0 une somme cumulative lorsqu’il y a des ruptures, il faut l’indiquer dans la fonction SommeCumulative([Objetàcumuler], [Paramdereinitialisation])

Problème pour le contrôle de saisie (contrôle d’entrée) -> peut disparaitre. Dans ce cas, il faut dupliquer le rapport et refaire le contrôle de saisie.

Pour qu’un utilisateur ait le droit de créer un document WebI dans son dossier personnel, il faut qu’il ait le droit « Contrôle Total » sur l’application WebI (de même pour DeskI).

Message « Impossible de rétablir la connexion au CMS BOXI2 : session expirée » apparait parfois -> paramètre de timeout au niveau des serveurs proxy et au niveau des serveurs « Intelligence Cache Server » par exemple.

Administration

Java et TomCat

Sous TomCat, il y a 2 types de mémoire: heapspace->espace dynamique (Xms et Xmx) et PermGen Space-> statique (PermSize et MaxPermSize)

Authentification LDAP

La mise à  jour du LDAP n’est pas nativement automatique. Elle est cependant automatisable en utilisant un script java (SyncUsers.jar) qui est planifié via InfoView : http://forums.sdn.sap.com/message.jspa?messageID=8448131

Import des utilisateurs via une liste

On peut importer les utilisateurs dans BO XI R3 (grâce à l’outil d’importation), en utilisant un fichier texte ou csv avec 6 champs, pour l’utilisateur :

  • Nom de groupe
  • Nom d’utilisateur
  • Nom d’utilisateur complet
  • Adresse électronique de l’utilisateur
  • Nom du profil
  • Valeur du profil

Pour les groupes :

  • Nom de groupe
  • Null (c’est à dire rien)
  • Description du group
  • Null
  • Nom du profil
  • Valeur du profil

Ensuite suivre le guide d’importation qui indique toutes les étapes nécessaires.

Audit

Nécessaire pour le Report Conversion Tool.

  • Création de la base d’audit
  • Création des tables d’audit, modification du SIA pour auditer dans les tables (Spécifier la base de données d’audit puis la création se fait automatiquement dès que l’audit est activé)
  • Création de la connexion audit dans le Designer
  • Modification de l’univers (Fichier->Paramètres) pour utiliser cette nouvelle connexion
  • Modification du rapport Web de conversion pour utiliser ce nouvel univers

Pour récupérer les univers et rapports d’audit

  1. If the older Auditing reports are present in CMC/Infoview, delete the folder.
  2. Open the Enterprise installation folder and navigate to SetUp\Package\…
  3. Open the audit_bi.cab file using any unzip utility.
  4. Extract the following files: For Auditing Universe, depending on the type of database server, extract auditing_db_DatabaseName.biar.EC96EADD_9CD7_439E_BA9A_B0C1066E411E. For Auditing reports, extract auditing_rpt_enbiar.EC96EADD_9CD7_439E_BA9A_B0C1066E411E.
  5. From both the file, remove the random extension after ‘.biar’ in the filename.
  6. Run the Import Wizard to extract the Universe to the Enterprise from first file.
  7. Open the Universe Designer and Import the « Activity » Universe to local disk.
  8. Open the Universe connection parameter and make the appropriate connection to the Auditing database.
  9. Save the Universe and Export it back to the Enterprise.
  10. Run the Import Wizard again to import the preconfigured sample reports from the second file. Make sure not to overwrite existing Universe.
  11. If the Universe is replaced, then we need to perform Step 6 through Step 8 once again.
  12. Login to the Infoview or Central Management Console (CMC) to run the reports.

Installation outils clients BOXI R3

Lors de l’installation -> message d’erreur, solution trouvée sur : http://support.microsoft.com/kb/925336

Un script d’installation automatique de boxi3 a été réalisé.

Il contient notamment le script vbscript permettant d’installer automatiquement les outils clients boxi3 et les mises à jour, l’installation pour les gestionnaires n’installera que les outils clients nécessaire sans le designer, une installation normale installe l’ensemble des outils :

'Install.vbs - Installe les outils clients pour BOXI3 et les MAJ (SP2 + FP)
'© Pascal MIETLICKI - [email protected] - 25/05/2010 14:50
'Ce script doit tourner sous Windows 2000 et Windows XP
'Fonction GetAddRemove based on script posted by Torgeir Bakken
Dim num : num = GetAddRemove
'Set WshShell = WScript.CreateObject("WScript.Shell")
If num<0 Then
    'Pas de client tools, on installe tout
    'On demande quel est le profil à installer
    strMbox = MsgBox("Installation pour un gestionnaire?",4)
    If strMbox=6 then
    strini = "gestionnaire_install.ini"
    Else
    strini = "default_install.ini"
    End if
    Return = WScript.CreateObject("WScript.Shell").Run("boxi_clienttools\setup.exe -r " & strini, 10, true)
    if Return<>0 then MsgBox "Probleme à l'installation du client !"
        Else Return = WScript.CreateObject("WScript.Shell").Run("regedit.exe /s policyscope_actif.reg", 10, true)
        If Return<>0 then MsgBox "Probleme lors du changement de la clé de registre, vous n'avez sans doute pas les droits suffisants."
            Else Return = WScript.CreateObject("WScript.Shell").Run("boxi_clienttools_s p2\setup.exe -r default_install.ini", 10, true)
                if Return<>0 then MsgBox "Probleme lors de l'installation du SP2!"
                Else Return = WScript.CreateObject("WScript.Shell").Run("boxi_clienttools_fp26\setup.exe -r default_install.ini", 10, true)
                    if Return<>0 then  MsgBox "Probleme lors de l'installation du FP 26 !"
                end if
            end if
        end if
    end if
    Return = WScript.CreateObject("WScript.Shell").Run("regedit.exe /s policyscope_inactif.reg", 10, true)
    if Return<>0 then MsgBox "Probleme clé de registre policyscope_inactif!"
    end if
End if

If num=0 Then
'Il y a le client tools, on installe le sp2
    Return = WScript.CreateObject("WScript.Shell").Run("regedit.exe /s policyscope_actif.reg", 10, true)
    if Return<>0 then  MsgBox "Probleme lors du changement de la clé de registre, vous n'avez sans doute pas les droits suffisants !"
        Else Return = WScript.CreateObject("WScript.Shell").Run("boxi_clienttools_sp2\setup.exe -r default_install.ini", 10, true)
            if Return<>0 then MsgBox "Probleme lors de l'installation du SP2!"
            Else Return = WScript.CreateObject("WScript.Shell").Run("boxi_clienttools_fp26\setup.exe -r default_install.ini", 10, true)
                if Return<>0 then MsgBox "Probleme lors de l'installation du FP 26 !"
                end if
        end if
    end if
 Return = WScript.CreateObject("WScript.Shell").Run("regedit.exe /spolicyscope_inactif.reg", 10, true)
 if Return<>0 then MsgBox "Probleme clé de registre policyscope_inactif!" 
 end if
end if

If num=1 Then
    'Il y a le client tools et le SP2, on installe le fp 2.6
    Return = WScript.CreateObject("WScript.Shell").Run("boxi_clienttools_fp26\setup.exe -r default_install.ini", 10, true)
    if Return<>0 then MsgBox "Probleme lors de l'installation du FP 26 !"
    end if
end if

if num=2 then
    MsgBox "Rien à installer, vous avez déjà la derniere version des outils clients."
Else if Return=0 then  MsgBox "Tout s'est installé correctement."

Optimisation des serveurs de la CMC pour BOXI R3

CMS

Connexion à la BDD systèmes : de 14 (valeur par défaut) à 50.

Pour le CMS, on peut rajouter  l’option « -ipv4 @ip_du_server »

Deski Cache Server

Délai d’expiration de la connexion inactive -> voir si on modifie ou non

Deski Processing Server

Nombre maximal de travaux simultanés : de 10 à 0 (automatique)

WebI Processing Server

Délai d’expiration pour inactivité de documents : de 300s à 3600s

Pensez à mettre la taille maximale du cache d’univers au nb d’univers existant sous BO XI R3 (une fois les univers migrés)

Modification du délai d’expiration de session WebI (trop court pour travailler convenablement….) :

Délai d’expiration pour inactivité de document (secondes): 3600 s (soit 1h) par défaut à 300

Délai d’expiration pour inactivité de la connexion (minutes): 480 min (soit 8h) à 20 min par défaut

Délai d’expiration avant recyclage (secondes) : 6000s par défaut

A savoir

Problème « Error : INF »

Il peut arriver, suite à une mise à jour d’un serveur ou un redémarrage de tomcat par exemple, que les messages « c​o​m​.​b​u​s​i​n​e​s​s​o​b​j​e​c​t​s​.​w​p​.​o​m​.​O​M​R​e​p​o​r​t​E​l​e​m​e​n​t​C​o​n​t​a​i​n​e​r​ ​(​E​r​r​o​r​:​ ​I​N​F​ ​) » ou « com.businessobjects.wp.om.OMReportFail (Error:INF) » ou tout simplement « (Error:INF) » s’affiche.

Dans ce cas, il faut redémarrer tomcat. Parfois il peut être nécessaire de tuer les instances de tomcat avant de le démarrer (réinitialisation complète).

Problème « Communication Failure » lors de l’utilisation des outils clients

Un problème est survenu suite à une panne de boxi1. Le basculement a généré une erreur sur les produits clients lorsque les utilisateurs souhaitaient se connecter. Le message « Communication failure » survenait systématiquement.

La solution est de modifier le CMS de chaque SIA en indiquant bien le FQDN de chaque serveur.