Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects
Business Objects Forum d'entraide sur Business Objects. Avant de poster --> FAQ BO, Tutoriels BO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2007, 12h16   #1
Invité de passage
 
Inscription : juin 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1
Points : 0
Points : 0
Par défaut [BOv6.5]Scheduler pour automaiser tâches sous

Bonjour à Tous.

Je souhaite réaliser un script qui me permettra d'automatiser les tâches suivantes sous BO

1. ouvrir BO (C'est fait)
2. lancer automatiquement une macro VBA BO associé à un rapport qui me permettra de
2.1. Rafraichir le rapport
2.2. enregistrer au format pdf
2.3. puis se referme.
2.4. inscrirre dans un fichier log l'événement

J'arrive à ouvrir BO automatiquement avec le répertoire qui lui est associé
Code->"D:\BI\BO_V6.5\BusinessObjects Enterprise 6\bin\busobj.exe" -user lico -pass lico -nologo "C:\Temp\BOReport.rep"
J'ai écris également le code VBA qui me permet de faire le 2 par contre il faut que je l'éxecute manuellement pour que ça marche.
Ma question est comment faire pour exécuter automatiquement une macro VBA associée à un rapport BO du nom par exemple BOReport.rep à l'ouverture de celui-ci sous BO v6.
VOICI CODE VBA DE BOReport.rep
Private Sub Document_AutoOpen()
ThisDocument.Rafraichir_pdf
End Sub


Public Sub Rafraichir_pdf()
Dim BoApp As busobj.Application, BODoc As busobj.Document, BORep As busobj.Report
Set BoApp = CreateObject("BusinessObjects.application.6")

''Dim objExcelApp As New Excel.Application
Dim objExcel As Object
'Création de Fichier Excel
''Set objExcelApp = New Excel.Application

'Ouverture fichier
''Set objExcel = objExcelApp.Workbooks.Open("c:\Temp\booknew.xls")
''objExcelApp.Visible = True
'Do stuff here
''Set objExcel = Nothing 'clears memory
'as
BoApp.Application.Interactive = False
BoApp.Application.BreakOnVBAError = False
With BoApp
'.LoginAs "lico", "lico"
.Visible = True
.Documents.Open ("C:\Temp\BOReport.rep")

With .ActiveDocument
.Refresh
''i = 1
''For Each rpt In .Reports
''rpt.Activate
'use the copyALL function
''BoApp.CmdBars(2).Controls("&Edit").Controls(20).Execute
'paste to excel
''Sheets(i).Range("A1").PasteSpecial Paste:=xlPasteValues
''i = i + 1
''Next
End With
End With

BoApp.ActiveDocument.SaveAs ("C:\Temp\save_pdf\BOReport.pdf")
'set variables to nothing
Set BoApp = Nothing
Set BODoc = Nothing
ThisDocument.Save
MsgBox "Sauvegarder avec succès OK"
busobj.Application.Quit

BoApp.Run "Rafraichir_pdf"
End Sub
labas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 16h13   #2
Membre du Club
 
Inscription : août 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 73
Points : 57
Points : 57
Bonjour,

Je fais régulièrement en automatique toutes ces opérations sauf le 2.4.

Perso, j'utilise l'évènement "Document_Activate" pour lancer le rafraîchissement. J'utilise un code utilisateur spécifique que je teste pour ne pas lancer le rafraîchissement si j'ouvre le document en mode interactif pour le modifier :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
OPTION Explicit
 
' Variables globales
Dim V_User As String
 
Private Sub Document_Activate()
' A l'ouverture du document
On Error Resume Next
 
' Récupération code utilisateur
V_User = Application.VARIABLES.Item("BOUSER").Value
 
' Lancement du rafraîchissement du document à l'ouverture si utilisateur habilité
IF V_User = "automate" Then
    Application.ActiveDocument.Refresh
End IF
 
End Sub
Ensuite toutes les autres opérations sont déclanchées par l'évènement "Document_AfterRefresh"

N.B. : Je suis en v 5.1.8

Cordialement

Sergio
Sergio63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h36.


 
 
 
 
Partenaires

Hébergement Web