Ouverture d'un report business objects 5 via script windows/vba

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 078 fois - Téléchargée 42 fois

Contenu du snippet

Ce script permet d'ouvrir un report Business Objects 5 par l'intermédiaire d'un fichier de paramètres. Pour lancer le script avec comme paramètre le fichier de variables utiliser l'option Exécuter.

C:\Temp\BOScript.vbs C:\Temp\BOVar.var

Pour mes test le report que j'ai créé utilise un SQL à la carte avec une variable en paramètres sur le centre. Pour éviter de mettre le login et le password dans un fichier de variables vous pouvez également passer ces variables en argument, mais dans ce cas il faudra faire quelques modification dans le script sur la récupération des variables.

C:\Temp\BOScript.vbs C:\Temp\BOVar.var LOGIN PASSWORD

- Modification Enregistrement du fichier au format PDf
- Ajout de la fermeture de BO après enregistrement

Source / Exemple :


' ---------------------------------------------------------------------------------------------------------------
' Windows Script Host Ouverture d'une édition Business Objects
' Date de création le 02/06/2003
'     Modification : 03/01/2004 - Enregistrement du fichier *.rep sous le format *.pdf
'                               - Ajout d'une nouvelle variable Nom de 'Fichier.pdf' dans le fichier de variable
'     Modification : 08/01/2004 - Suppression du fichier de variables à la fin du script
'     Modification : 16/04/2004 - Ajout de l'option ouverture de la fenêtre BO au maximum et non plus par défault 
'     Modification : 21/10/2004 - Gestion de l'utilisation du fichier BOMainxxx.key
' ----------------------------------------------------------------------------------------------------------------

     ' Lecture du fichier de paramètres 'BOVar.var'
     ' Exemple sur le contenu du fichier de paramètres
     ' LOGIN,PASSWORD,C:\Temp\BOReport.rep,C:\Temp\BOReport.pdf,APERCU,CENTRE,E%
     ' -------------------------------------------------------------------------
         Const ForReading = 1, ForWriting = 2, ForAppending = 8
         Dim Fichier,FichierParam
         Set Fichier = CreateObject("Scripting.FileSystemObject")
         Set FichierParam = Fichier.OpenTextFile(WScript.Arguments.Unnamed.Item(0), ForReading)
         FichierLigne = FichierParam.ReadLine
         FichierParam.Close

     ' Permet de définir le nombre de paramètres
     ' ------------------------------------------
        Counter = 0
        NbreParam = 0                                       ' Taille du tableau
        While Counter < Len(FichierLigne)          	    ' Teste la valeur du compteur.
            Counter = Counter + 1                           ' Incrémente le compteur.
            If (Mid(FichierLigne,Counter,1) = ",") Then
                    NbreParam = NbreParam + 1
            End If
        Wend                            		    ' Fin de la boucle While
                
     ' Permet l'ouverture d'un fichier BO avec des paramètres
     ' -------------------------------------------------------
        Set AppBO = Wscript.CreateObject("BusinessObjects.Application")

     ' Gestion du fichier BOMainxxx.key (Modif. 21/10/2004)
     ' ----------------------------------------------------
        Dim RepBoLocData, RepBo, FichRepBo, Fich
        Dim BoKey, BoKeyB, BoKeyC, BoKeySelect
        RepBoLocData = AppBO.GetInstallDirectory(boLocDataDirectory) & "\LocData\"	' Récupération du répertoire d'installation de BO
        Set RepBo = Fichier.GetFolder(RepBoLocData)
        Set FichRepBo = RepBo.Files

        For Each Fich in FichRepBo
           If (InStr(1, Fich.name, ".key") > 0) Then 					
	      BoKey = Mid(Fich.name, 1, Len(Fich.name) - 4)	 ' Calcul de la longueur du fichier moins l'extension du fichier (.key)
              Select Case LCase(BoKey)				 ' Récupération de la caste du fichier (.key), car BO est très pointilleux
                     Case "bomain_a"  	
                        BoKeySelect = BoKey			 ' La version la plus récente
                        Exit For
      		     Case "bomain_b"   	
      		        BoKeyB = BoKey
      		     Case "bomain_c"   		
      		        BoKeyC = BoKey
	      End Select
           End If
        Next

        If (Len(BoKeySelect)=0 and Len(BoKeyB)>0) Then 		 ' Permet de gérer les priorités sur les anciennes versions (.key)
           BoKeySelect = BoKeyB
        ElseIf (Len(BoKeySelect)=0 and Len(BoKeyC)>0) Then 
           BoKeySelect = BoKeyC
        End If

        ' Fin de la gestion du Bomain.Key
        ' -------------------------------
        
        If (Len(BoKeySelect)>0) Then
        	
           Dim Parametres
           Parametres = Split(FichierLigne,",",-1,1)                  ' Création du tableau - La valeur de l'indice commence à 0

           AppBO.LoginAs Parametres(0),Parametres(1),False    	      ' Le Parametres(0) correspond au Login User et le Parametre(1) correspond au Password
           AppBO.Documents.Open Parametres(2),True,True 	      ' Le Parametres(2) correspond au fichier report

           Set Variables = AppBO.Variables

           Counter = 5
           While Counter <= NbreParam                                                    ' Teste la valeur du compteur.
              Variables.Item(Parametres(Counter)).value = Parametres(Counter+1)  	 ' Counter représente le champ et Counter+1 représente la valeur
              Counter = Counter + 2                                                      ' Incrémente le compteur.
           Wend                                                                          ' Fin de la boucle While

           AppBO.ActiveDocument.Refresh

          If Parametres(4) = "IMPRESSION" Then    		    ' Le Parametres(4) correspond au type d'ouverture Aperçu ou Impression
             AppBO.ActiveDocument.PrintOut
             AppBO.ActiveDocument.Close  
             AppBO.Quit
          ElseIf Parametres(4) = "APERCU" Then
             AppBO.Visible = True                           	    ' Affiche l'application.
             AppBO.Window.State = 3				    ' 1=boNormal, 2=boMnimized, 3=boMaximized (Modif. 16/04/2004)
             AppBO.Interactive = True
          ElseIf Parametres(4) = "FICHIER" Then         	    ' Parametres(3) correspond au nom du fichier 
             AppBO.ActiveDocument.SaveAs Parametres(3) , 1	    ' Enregistre dans un fichier PDF (Modif. 03/01/2004)
             AppBO.ActiveDocument.Close  
             AppBO.Quit
          End If

        Else
           MsgBox "Il manque le fichier BoMain_xxx.key sur votre poste"
        End If								' Fin Ctrl BoKeySelect
        
       Set AppBO = Nothing                 		   	        ' Libère la variable objet.
                    
      ' Supression du fichier paramètres xxx.var (Modif. 08/01/2004)
      ' ------------------------------------------------------------
      If (Fichier.FileExists(WScript.Arguments.Item(0))) Then
         Fichier.DeleteFile(WScript.Arguments.Item(0))
      End If

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
19 janvier 2009

je travail avec Business Object 6.5
mais j'ai un problème sur l'édition des état de report. est ce que vous pouvez me porter
soutien pour me montrer comment concevoir des états de reporting BO.

Merci
Messages postés
5
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
12 mai 2005

En réponse à ma question le fichier BOmain.key se situe sur une disquette fournie avec les CD d'install. Ce fichier est copié sur le servuer dans le dossier C:\Program Files\Business Objects\BusinessObjects 5.0\LocData (ou en local), c'est un fichier commun aux utilisateurs de B.O.

"The security domain field appears if there is more than one .key file. The standard key file to be used is called BOMain.key. Once there is more than one .key file in C:\Program Files\Business Objects\BusinessObjects 5.0\LocData then the security domain field appears to give you a choice of .key to access
When you use the Administration Setup Wizard, you can select one of three radio buttons to specify the physical destination of the BOmain.key file: on the installation kit (you provide a diskette), in a default shared folder, or locally so the supervisor can distribute the file manually from the LocData folder of the Supervisor folder.
L’adresse du domaine sécurité se trouve dans le fichier:
BOMain.key
créé en même temps que le domaine sécurité. Ce fichier peut être distribué à tous les utilisateurs autorisés.
Lecture du fichier partagé BoMain.Key qui a été déclaré à l’installation du poste client (ou administrateur). On peut retrouver l’emplacement du fichier BoMain.key en appelant le SETUP de BO, et en cliquant sur le bouton [Modifier…]. Il y a alors visualisation du chemin marqué "SharedData")".
Messages postés
5
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
12 mai 2005

Bonjour,
c'est vendredi soir et j'ai des lenteurs de cerveau... il se trouve ou le fichier BOMainxxx.key , que contient t il et à quoi il sert ? Car quand je lance le vbs il m'indique "Il manque le fichier BoMain_xxx.key sur votre poste"
merci par avance pour la réponse
Totof
Messages postés
6
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
20 septembre 2005

Bonjour, je suis très intérressé par ces codes mais ils ne fonctionnent pas dans ma base :
"Erreur 424" et c'est à partir de "Set FichierParam = Fichier.OpenTextFile(WScript.Arguments.Unnamed.Item(0), ForReading)" que cela bug.

Help, je suis sous Access 2000, je ne comprends pas ce qui se passe !!!

J'ai vraiment besoin d'aide, je me lance dans le développement VBA ...
Messages postés
4
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
1 février 2005

bonjour

Cette source m'offre des possibilités d'automation très intéressante
pourtant, mon poste informatique a une configuration spécifique :
BO est lancé à partir d'un raccourci pointant vers un .cmd qui exécute BO sur serveur spécifique.
l'objet que vous utilisez ("createobject"... pointe sur bo à partir de mon poste de travail mais ne permet pas de prendre la main sur le BO Réseau:
j'ai une erreur de BO qui me signal une erreur serveur.

Comment puis-je faire pour lancer BO à partir de ce serveur ?

merci
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.