IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration-Migration Discussion :

[BOv6.5]Scheduler pour automaiser tâches sous


Sujet :

Administration-Migration

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Points : 1
    Points
    1
    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

  2. #2
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 73
    Points : 79
    Points
    79
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2017, 17h23
  2. planificateur de tâches sous NT server?
    Par mathieu_r dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 23/02/2006, 11h42
  3. Client FireBird pour un pda sous Windows CE.NET ?
    Par Skydiver dans le forum Installation
    Réponses: 1
    Dernier message: 04/02/2005, 14h21
  4. langage pour manipulation données sous MySql
    Par halina dans le forum Administration
    Réponses: 2
    Dernier message: 31/01/2005, 10h33
  5. [ETAT] problème pour centrer un sous-état
    Par tonio-lille dans le forum IHM
    Réponses: 13
    Dernier message: 11/10/2004, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo