Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OUVERTURE D'UN REPORT BUSINESS OBJECTS 5 VIA SCRIPT WINDOWS/VBA


Information sur la source

Catégorie :VBScript Niveau : Initié Date de création : 03/06/2003 Date de mise à jour : 26/10/2004 17:08:22 Vu : 16 275

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • ' ---------------------------------------------------------------------------------------------------------------
  • ' 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
' ---------------------------------------------------------------------------------------------------------------
' 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

Historique

26 octobre 2004 17:08:22 :
Explication dans le code ' 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

Commentaires et avis

signaler à un administrateur
Commentaire de MLocht le 10/09/2003 14:40:59

Je travaille depuis un certain temps avec BO et ne connaissant pas VB, j'essaie de trouver des exemples pour pouvoir commencer quelque part. C'est difficile d'en trouver et ce code est vraiment le bienvenu pour m'aider à comprendre comment aborder BO avec VB.
Il me reste un énorme chemin à faire et je ne désespère pas de trouver d'autres exemples.
Merci...

signaler à un administrateur
Commentaire de francky57 le 02/02/2004 18:39:48

Bonjour,

Super cool pour ce code
Coome je ne comprends rien au VBS, serait il possible d'ajouter à ce code un supplément pour qu'il y ai un enregistrement au format PDF ?

Merci
Francky57

signaler à un administrateur
Commentaire de demiebruce le 19/02/2004 13:15:29

Bonjour,

Je cherche à faire la même chose mais à partir d'access 97. J'utilise le code suivant (c'est la maniere utilisée pour ouvrir Word avec un fichier) mais cela ne semble pas fonctionner pour BO... Peut-être faut-il un ActiveX, une DLL peux tu m'aider stp?

Dim MonDoc As Object
Dim MonFichier As String

    MonFichier = "C:\Projet_BO\3.3 - Closed InOrders for OT 53 to 55.rep"
    Set MonDoc = CreateObject("BusinessObjects.application")

MonDoc.Documents.Open FileName:=MonFichier
MonDoc.Application.Visible = True


Demiebruce

signaler à un administrateur
Commentaire de NOHAM le 01/02/2005 22:37:57

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

signaler à un administrateur
Commentaire de ftmike le 09/02/2005 11:52:46

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 ...

signaler à un administrateur
Commentaire de wondertof le 15/04/2005 17:33:10

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

signaler à un administrateur
Commentaire de wondertof le 18/04/2005 09:52:51

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&#8217;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&#8217;installation du poste client (ou administrateur). On peut retrouver l&#8217;emplacement du fichier BoMain.key en appelant le SETUP de BO, et en cliquant sur le bouton [Modifier&#8230;]. Il y a alors visualisation du chemin marqué "SharedData")".

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.