Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
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 19/10/2007, 14h46   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
Par défaut Pbme BO XI Deski : Serveur Occupé

Bonjour,

J'ai une requête sous XI que je lance dans une première fenêtre, contenant une macro qui ouvre une seconde fenêtre BO appelant une requête qui me permet de rappatrier puis de faire un export des données en *.txt.

la macro est une boucle qui me permet de faire un rappatriement puis export par pays.

mon problème est qu'entre deux rafraîchissement de données, la première fenêtre m'affiche un message de serveur occupé (cf PJ) et tant que je ne clique pas sur cette fenêtre pour la ramener au premier plan, la macro s'arrête là, je n'ai pas forcément besoin de cliquer sur réessayer pour que l'execution de la macro continue.

avec du VB classique je pourrais utiliser la commande "DisplayAlerts = False", mais cette commande est inconnue du VB BO.

Petite précision : cette macro a été créée sous V5 et fonctionnait très bien, sans affichage du pop-up "serveur occupé".

Auriez-vous une idée ?
Images attachées
Type de fichier : jpg PbmeServeurOccupé.jpg (140,0 Ko, 9 affichages)
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 11h28   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 183
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 183
Points : 2 720
Points : 2 720
Salut,
Difficile de te répondre sans voir le code et difficile de visualiser ces histoires de fenêtre ...
Mais deux questions
utilises tu le ForceCompute ?
ta fenêtre est un objet que tu peux activer
tu peux aussi faire cliquer dessus avec ton code
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 11h47   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
Merci de ton aide,

je ne connais pas cette commande ForceCompute, à quoi sert-elle ?

ci-dessous le code de ma requête :
___________________________________________________
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
Sub macro_refresh_par_pays()
 
'déclaration de mes deux fenêtres BO qui servent à rafraîchir le rapport'
Dim BOApp0, BOApp AS busobj.Application
Dim BODoc AS busobj.Document
Dim chemin_ouverture, chemin_sauvegarde AS String
Dim moisdep, pays, appath AS String
Dim tableau_pays AS Variant
Dim i, nb_pays AS Long
 
'déclaration du chemin d ouverture du fichier contenant la macro et qui est le même que le fichier d extraction'
appath = ThisDocument.Path & "\" "
 
SET BOApp1 = ThisDocument
 
'invite sur le mois de dépense, que je reprends pour paramétrer mon extraction'
moisdep = InputBox("Format : (aaaamm)", "Mois de mise à jour ?")
 
'création d une nouvelle fenêtre BO'
SET BOApp0 = New busobj.Application
BOApp0.Interactive = True
BOApp0.Visible = True
 
'création d une seconde nouvelle fenêtre (je ne sais pas pourquoi mais avec une seule fenêtre, ça ne fonctionne pas)'
SET BOApp = New busobj.Application
BOApp.Interactive = False
BOApp.Visible = True
 
 
'Saisir IPN et le mot de passe ARCA de l opérateur'
BOApp.Logon "identifiant", "MDP", "@boxi", "secldap", False, False
 
SET BODoc = BOApp.Documents.Open(appath & "Export_IGM_XI.rep")
 
'création d une table contenant les valeurs pays (en code ISO 2 caractères) sur lequel boucle ma requête d extraction'
tableau_pays = Array("BE", "FI", "AT", "CO", "BR", "CH", "CZ", "DA", "DE", "DK", "ES", "AR", "FR", "GB", "GF", "GP", "GR", "HR", "HU", "IE", "IL", "IS", "IT", "MQ", "MX", "NL", "NO", "PL", "PT", "RE", "RO", "SE", "SI", "SK", "TR", "ZA")
nb_pays = 35
 
 
'déclaration de mes variables qui servent de paramètres d extraction'
BODoc.VARIABLES.Item(3).Value = "*"
BODoc.VARIABLES.Item(1).Value = moisdep
 
 
 
'début de la boucle sur les pays'
FOR i = 0 TO nb_pays
 
 
    pays = tableau_pays(i)
    BODoc.VARIABLES.Item(2).Value = pays
    BODoc.Refresh
 
 
 
   BODoc.AfterRefresh
 
'conversion des caractères=> ASCII et du séparateur de données=> Tab'
 Call BODoc.DataProviders("Req").ConvertTo(boExpAsciiTab, 1, appath & "SRC\Export_" & pays)
 
    ' C est ici que la macro bloque et attends que je ramène au premier plan, la fenêtre contenant la macro  '
 
 
'enregistrement des données sous fichier *.txt'
BODoc.SaveAs (appath & "SRC\Export_" & pays & ".txt")
 
 
Next i
'fin de la boucle pays'
 
 
'fermeture des différentes fenêtres BO'
BODoc.Close
BOApp.Quit
BOApp0.Quit
End Sub
_____________________________________________

merci encore,

Xavier
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 13h20   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 183
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 183
Points : 2 720
Points : 2 720
ForceCompute provoque le recalcul du document

J'ai bien peur de ne pouvoir t'aider car je suis habitué au VB de 6.5.1 et je pense qu'en XIR2 c'est différent
par exemple je n'utilise pas le Call BODoc.DataProviders("Req").ConvertTo(boExpAsciiTab, 1, appath & "SRC\Export_" & pays)

moi je fais une boucle sur les dataproviders et quand je suis sur le bon j'exporte

Code :
1
2
3
4
5
6
7
8
9
exemple
FOR nidp = 1 TO nbdps
        SET dp = dps.Item(nidp)
        SELECT Case dp.Name
        Case "BOAX_RECETTE_UF"
            dp.ExportToRDBMS "AXYTANT", boSharedConnection 
...
 
>>export vers ma base Oracle
Je vais brancher Ayana sur ton problème C'est un poisson poëte et rêveur ... dans XIR2
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 13h47   #5
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
merci encore pour le temps que tu passes sur mon problème.

effectivement, n'ayant qu'un seul fournisseur de données, je n'ai pas l'utilité de la boucle, mais c'est toujours bon à prendre ;-).

Je vais changer l'eau du bocal en attendant Ayana...
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 14h44   #6
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Rhalalala, à l'heure du déjeuner, ben le poisson, il cherche de quoi manger .

Bon, je t'avouerais que la macro n'est pas ce que j'ai le plus utilisé en BO mais bon, je vais y réfléchir. C'est un problème de lien entre les pages, mais la question c'est comment le régler .

Il faut trouver le moyen de réactiver ta 1e page.
Peut-être avec :
Code :
1
2
3
4
5
6
BODoc.AfterRefresh
Call BODoc.DataProviders("Req").ConvertTo(boExpAsciiTab, 1, appath & "SRC\Export_" & pays)
 
BOApp.Visible=False
 
BODoc.SaveAs (appath & "SRC\Export_" & pays & ".txt")
Si la 2e fenêtre est cachée, cela repassera la 1e devant ... mais là c'est de la bidouille à tester, faute de trouver mieux de suite.



NB : s'il te plaît M'sieur Xavier bibolo, mets ton code entre les balises [CODE][/CODE], ça sera plus lisible
NB 2 : dans ton code, tu as des lignes double (BOApp0.Interactive = True). C'est en commentaire je te l'accorde, mais ça ne sert à rien de surcharger ton code
NB 3 : un peu plus de commentaires sur la signification des variables, en particulier BOApp1, BOApp0 et BOApp. Elles sont importantes, si quelqu'un veut reprendre le code, ça sera plus simple avec les commentaires, même pour toi si tu le reprends avec 2 semaines de vacances, je peux te l'assurer, je parle en connaissance de cause .
D'ailleurs il faudra m'expliquer à quoi sert BOApp1 ....
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 16h48   #7
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
Merci Ayana pour ton conseil, malheureusement j'ai essayé l'ajout du BOApp.Visible=False et ça ne fonctionne pas.

Ce qui m'intrigue le plus c'est que je n'ai jamais eu ce message sous V5, uniquement depuis que je suis passé à XI.

NB: j'ai mis le code entre balise

NB3: j'ai ajouté des commentaires à mon code
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 17h39   #8
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 183
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 183
Points : 2 720
Points : 2 720
J'essaierais Activate qui s'applique en version 6 à :
Dataprovider
Document
Report
WIndow
rien que ça ...
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 17h50   #9
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Le moteur de calcul de BO a changé entre le v6 et la XI, d'où le changement de nom radical aussi .
Il y a aussi des problèmes avec les prompts, dus à ces modifications sur le moteur ... (ça c'est pour tes révisions Bruno ).


Peux-tu me dire ce que cela a fait avec le BOApp.Visible=False ? Cela ne faisait rien du tout ou cela provoquait une autre erreur ?

Je vais y réfléchir, peut-être que la nuit porte conseil. Mais je t'avoue que 3 fenêtres pour faire un export au format txt de toutes les combinaisons de fichiers possibles (mois x pays) me semble bizarre ...

Ce que tu avais, c'était une invite pour choisir le mois. Et une fois que tu as le mois, tu fais un export pour tous les pays de ta liste. C'est bien ça ?
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 17h52   #10
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Citation:
Envoyé par BRUNO2R Voir le message
J'essaierais Activate qui s'applique en version 6 à :
Dataprovider
Document
Report
WIndow
rien que ça ...
.Activate() ou .Activate=True ???
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 19h14   #11
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 183
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 183
Points : 2 720
Points : 2 720
Sub Activate() bien sûr
Code :
Method, NOT Propertie my dear

Ta remarque était pertinente pour quelqu'un qui découvre
Pas précis le garçon
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 12h28   #12
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
Je reprends, comme je n'avais pas l'air d'être très clair dans mes explications.

J'ai trois paramètres pour mon extraction dont deux variables : le mois de mise à jour, le pays et la devise (qui est toujours * pour la monnaie locale d'où le codage en dur dans la macro BODoc.VARIABLES.Item(3).Value = "*")

1-la macro demande le mois de mise à jour

2-elle va chercher le premier pays de la liste que j'ai déclaré

3-elle lance la première extraction pour le premier pays de la liste

4-elle convertit les données en ASCII séparées par des tabulations

5-elle enregistre en fichier *.txt les données rappatriées pour le premier pays en le nommant Export_"pays".txt

6-elle reboucle sur le 2- avec le second pays


NB : si je n'ouvre pas une deuxième fenêtre intermédiaire, la requête d'extraction se lance dès son ouverture, avant que la macro n'ait enregistré le paramètre pays.


7-après la dernière valeur pays elle ferme les fenêtres et quitte l'application.

concernant le BoApp.visible = false, ça ne changeait rien au problème, la fenêtre disparaît mais il faut vraiment une action sur la fenêtre principale pour déclencher la souvegarde en fichier *.txt
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 14h22   #13
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Oui, donc je pense qu'on avait bien compris le problème
Mais c'est beaucoup plus clair comme ça .

Tu as essayé avec BOApp0.Activate() ?
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 14h30   #14
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
oui j'ai essayé mais ça ne lui plait pas non plus, il me renvoie le message "Erreur de compilation - objet attendu : ="
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 16h50   #15
Invité de passage
 
Inscription : octobre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 8
Points : 2
Points : 2
J'ai enfin trouvé la solution, le principe est simple, éviter l'interaction entre les fenêtres pour ne pas avoir de message d'erreur.

Il faut donc lancer la macro et la requête d'extraction dans la même fenêtre.

ça donne le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
Sub export_TRT()
 
Dim BOApp AS busobj.Application
Dim BODoc AS busobj.Document
Dim moisdep, pays, appath AS String
Dim tableau_pays AS Variant
Dim i, nb_pays AS Long
 
 
 
appath = ThisDocument.Path & "\""
 
SET BOApp = busobj.Application
 
 
'demande du mois de rafraîchissement'
moisdep = InputBox("Format : (aaaamm)", "Mois de mise à jour ?")
 
 
SET BODoc = BOApp.Documents.Open(appath & "Export_IGM_XI.rep")
 
'définition des valeurs pays sur lesquelles on boucle'
tableau_pays = Array("BE", "FI", "AT", "CO", "BR", "CH", "CZ", "DA", "DE", "DK", "ES", "AR", "FR", "GB", "GF", "GP", "GR", "HR", "HU", "IE", "IL", "IS", "IT", "MQ", "MX", "NL", "NO", "PL", "PT", "RE", "RO", "SE", "SI", "SK", "TR", "ZA")
nb_pays = 35
 
 
'définition des variables "mois de dépenses" et "devise" pour le rafraichissement'
BODoc.VARIABLES.Item(3).Value = "*"
BODoc.VARIABLES.Item(1).Value = moisdep
 
FOR i = 0 TO nb_pays
 
 
 
    pays = tableau_pays(i)
 
    'définition de la variable "pays"'
    BODoc.VARIABLES.Item(2).Value = pays
 
    'arrêt de l interactivité de la fenêtre pour éviter le prompt de confirmation au rafraichîssement'
    BOApp.Interactive = False
 
    BODoc.Refresh
  BOApp.Interactive = True
 
   'conversion des données reçues au format souhaité'
   Call BODoc.DataProviders("Req").ConvertTo(boExpAsciiTab, 1, appath & "SRC\Export_" & pays)
 
   'export des données en fichier *.txt'
   BODoc.SaveAs (appath & "SRC\Export_" & pays & ".txt")
 
 
Next i
 
BODoc.Close
ThisDocument.Close
 
BOApp.Quit
 
End Sub
Merci pour votre aide et le temps que vous m'avez consacrés.

@+ pour de nouveaux problèmes

Xavier
bibolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h41.


 
 
 
 
Partenaires

Hébergement Web