Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > SDK
SDK Forum d'entraide pour la programmation des outils BO par des API (VBA, ASP, Java)
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 23/10/2006, 12h20   #1
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Par défaut [VBA] BCA et Macro VB

Bonjour à tous

Je suis confronté au problème suivant:

J'ai programmé l'action "Macro personnalisée" via le scheduler BCA mais cela n'a aucun effet. J'ai l'impression que ma macro n'est pas déclenchée.

J'ai bien entendu vérifié auparavant que celle ci fonctionnait en local avant de l'envoyer au serveur BCA.

Si parmis vous une personne a déjà utilisé cette commande, je serais ravi de partager son expérince.

Par avance merci

PS: je suis en 6.5 SP2

Cyril
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 14h38   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Je confirme que normalement ça marche.

Es-tu sûr qu'une erreur ne se produit pas sur le BCA, qui interrompt le rafraichissement ? Du genre répertoire non défini, ou autre.

De plus il y a peut-être des interdictions sur ton BCA d'exécuter une macro ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 15h06   #3
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Je suis rassuré dans ce cas là mais je ne vois pas alors d'où viens mon erreur dans ma façon de faire.

Lorsque je regarde sur BCA Console la requete, celle-ci reste bloquée avec l'état "en cours d'exécution" mais sans message d'erreur.
Je suis obligé de l'interrompre car elle peut restée comme ça pendant des heures.

Y a t'il des contraintes sur du code VB que l'on ne pourrait exécuter via une Macro ?
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 15h10   #4
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Je viens de vérifier dans "Administration Console", la seule option que j'ai trouvée (Activer Macros pour utilisateurs intéractifs) est active
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 17h25   #5
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Tu pourrais me dire ce que fais ta macro en substance (télécharger un rapport, le rafraichir puis le sauver en pdf par exemple) et mettre un squelette de ton code (avec les éventuelles boucles, import/export de données, etc.).

Ou même ta macro si elle n'est ni confidentielle ni trop grosse.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 17h37   #6
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
C'est sympas d'y consacrer du temps

En fait je suis arrivée à faire fonctionner ma macro en désactivant l'appel à des fonctions qui j'ai capitalisé dans une DLL.

Ces fonctions sont testées et fonctionnent déjà sur une cinquantaine d'état BO scédulés via BCA mais utilisé lors de l'événement AfterRefresh par ex

En subtence voila le code qui permet de boucler sur les matricules des salariés présents et de générer un rapport au format pdf pour chacun d'eux

si je désactif le code faisant référence à FctUti cela marche

Private Function lov2(param1, param2)
Dim cl As Class

Set cl = ThisDocument.DataProviders.Item(1).Universe.Classes(param1)
Set lov2 = cl.Objects.Item(param2).ListOfValues

End Function

Sub BoucleSurMatricule()
Dim FctUti As FonctionsUtiles
Dim Parametres As String
Dim liste As ListOfValues 'Objet servant à stocker une liste d'éléments d'une entité.
Dim Matricule As Variant
Dim j As Integer

On Error GoTo Document_BoucleSurMatricule_Err

Set FctUti = New FonctionsUtiles
FctUti.WriteInfo (FctUti.GetPathFileSaveComplex("DOC_RH", "FICHE_INDIV"))

Set liste = lov2("SIRH_Rémunération", "MatriculePrésentAS") Application.Interactive = False 'Le programme VB prend la main

'Ecriture de l'heure de début et des paramètres
Parametres = ActiveDocument.Name & " / [" & Date & " - " & Time & "] / " & _
"Date de situation = " & FctUti.LastDayOfMonth(Date) & " / " & _
"Date début historique imputation YYYYMM = 199901 / " & _
"Date fin historique imputation YYYYMM = 209901 / " & _
"Société = 001 / "

ActiveDocument.Variables.Item("Date de situation").Value = FctUti.LastDayOfMonth(Date)
'ActiveDocument.Variables.Item("Date de situation").Value = "31/10/2006"
ActiveDocument.Variables.Item("Date début historique imputation YYYYMM").Value = "199901"
ActiveDocument.Variables.Item("Date fin historique imputation YYYYMM").Value = "209901"
ActiveDocument.Variables.Item("Société").Value = "001"

'Pour chaque valeur contenu dans l'objet liste, on itére
Matricule = liste.Values
For j = 1 To UBound(Matricule)

'Complète le paramètrage
ActiveDocument.Variables.Item("Matricule").Value = Matricule(j)

'On rafraichit tout les reports
ActiveDocument.Refresh

ActiveDocument.ExportAsPDF (FctUti.GetPathFileSaveComplex("DOC_RH", "FICHE_INDIV") & "_" & Matricule(j) & ".pdf")
'ActiveDocument.ExportAsPDF ("\\M-asp\DocRH\REPORTING\FI_" & Matricule(j) & ".pdf")
Next j

'Ecriture de l'heure de fin de l'exécution
FctUti.WriteInfo (Parametres)

Document_BoucleSurMatricule_Exit:
Application.Interactive = True
Set FctUti = Nothing

On Error GoTo 0
Exit Sub

Document_BoucleSurMatricule_Err:
FctUti.GestErreur ThisDocument.Name
Resume Document_BoucleSurMatricule_Exit

End Sub
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 17h47   #7
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Hum. Donc ça serait un problème d'appel à une fonction un peu... exotique non ?

Est-ce que tu as moyen de faire tourner cette macro en mode manuel mais sur le serveur Webi pour voir ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 17h54   #8
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Je l'ai déjà déclenchée en exécutant la macro en local (ok ça marche)
par contre je ne sais pas comment faire pour tester cette macro comme tu me le demande. En fait je ne suis sûr de comprendre
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 18h04   #9
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Ben normalement c'est ton serveur Webi qui fait tourner le BCA. Donc il faudrait aller sur le serveur Webi (ouvrir une session windows quoi), accéder au rapport sous cette session et regarder si ça tourne. C'est peut-être seulement la version du VBA du serveur Webi qui n'est pas la bonne, ou alors il lui manque des librairies par rapport à ton poste.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 19h46   #10
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Voilà pourquoi je n'avais pas percuter tout de suite.

Je n'ai pas de BO d'installer sur la même machine que le serveur BCA car déconseillé (source BO).

Je vais quand même l'insatller temporairement juste pour le test

Cyril
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 23h54   #11
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Euh va pas tout planter non plus hein, mais c'est vrai que ça serait une base pour résoudre le problème...
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 09h04   #12
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Certes, la fin mois approche et le reporting mensuel également.
Je vais donc avancer sur des oeufs

Je te tiens informé.

Cyril
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 15h53   #13
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
C'est à rien y comprendre

Le problème survient dès que j'utilise les fonction de date !!!!
Du style DateAdd, Day ou encore Date.

Je m'en suis rendu compte en recopiant ma fonction LastDayOfMonth de ma Dll directement dans le corps de la macro.

Je suis dessus depuis Lundi et je vais finir par abandonner.
C'est pas mon style mais là je perds trop de temps
cyfranco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 16h27   #14
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Je pense qu'effectivement le gain du rafraichissement automatique par BCA par rapport au rafraichissement manuel (lancement de la macro sur un poste).

Personnellement j'ai abandonné le BCA pour les rafraichissement via macro, pas parce que ça ne marchait pas bien mais parce que je trouvais que c'était plus pratique...
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 16h28   #15
Invité régulier
 
Inscription : octobre 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 14
Points : 6
Points : 6
Je crois que je vais adopter la même philo.

Encore merci pour t'on aide
cyfranco 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 06h36.


 
 
 
 
Partenaires

Hébergement Web