Page 1 sur 1
Agent planifié d'extraction d'une vue

Publié:
19 Juil 2011 à 15:30
par clementbp
Bonjour
Je viens de créer un agent qui extrait une vue d'une base lotus située sur le serveur et je voudrais enregistrer au format excel cette extraction sur un autre serveur du domaine.
Quand j'exécute maunuellement cet agent, aucun soucis le fichier est bien enregistré au bon endroit.
Par contre je voudrais planifier cette agent pour qu'il s'éxecute chaque nuit, mais là problème, l'agent me renvoit une erreur.
L'erreur se situe au moment de l'enregistrement du fichier.
Merci de votre aide

Publié:
19 Juil 2011 à 15:39
par Raziel
DEux choses :
1. Dans les propriété de l'agent tu dois avoir "3. Autorisé opérations à accès limité avec droits d'administration complet".
2. Comme tu écrit sur un autre seveur, il faut que le serveur sur lequel tourne l'agent ai les droits sur le serveur cible. Pour cela, dans le doc serveur cible, onglet sécurité, mettre le serveur source comme serveur accrédité.

Publié:
19 Juil 2011 à 16:14
par clementbp
Merci pour ta réponse
Pour le 1er point, j'ai fais la modification et rien n'a changer.
Pour le point 2, j'ai essayé de modifier l'adresse de destination du fichier en mettant le nom du serveur mais apparement ça ne fonctionne pas.
Comment faire pour être sur de la validité de l'adresse que je mets dans le code?
Peut on savoir si c'est un problème de droit ou un problème d'adresse ?

Publié:
19 Juil 2011 à 16:16
par Raziel
Si lorsque tu le lance en manuel le fichier se crée bien sur le serveur cible alors c'est plus un pb de droit.
As tu vérifié le paramétrage du serveur cible ? As tu une erreur dans la log du serveur exécutant l'agent ?

Publié:
19 Juil 2011 à 22:53
par roubech
le serveur Domino A est lancé en tant que service windows sur la machine A et essaye d'écrire sur un partage situé sur la machine B
c'est un pb de droit windows
le compte utilisé pour lancer le service est par défaut un compte admin local, qui ne peux pas accéder aux ressources reseau
une solution consiste à lancer le service avec un compte du domaine qui a les droits necessaires

Publié:
20 Juil 2011 à 08:12
par Raziel
roubech a écrit:le serveur Domino A est lancé en tant que service windows sur la machine A et essaye d'écrire sur un partage situé sur la machine B
c'est un pb de droit windows
le compte utilisé pour lancer le service est par défaut un compte admin local, qui ne peux pas accéder aux ressources reseau
une solution consiste à lancer le service avec un compte du domaine qui a les droits necessaires
Je n'y avais pas pensé...


Publié:
31 Août 2011 à 17:05
par clementbp
Bonjour à tous
Je me suis remis dans mon agent que je voudrais planifier et exécuter sur mon serveur.
Le problème viens du moment ou il doit enregistrer en direct sur le serveur il ne trouve pas le chemin.
Je ne pense pas que cela vienne des droits car c'est sur le meme serveur.
Si quelqu'un à une idée !!!
Sub Initialize
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim dataview As NotesView
Dim vwNav As NotesViewNavigator
Dim XLApp As Variant
Dim XLWorkBook As Variant
Dim ActiveWorkBook As Variant
Dim Sheet As Variant
Dim ligne As Long
Dim colonne As Long
Dim K As Variant
Dim Nbcolonne As Integer
Dim c As NotesViewColumn
Dim XlSheet As Variant
Dim entry As NotesViewEntry
Dim colvals As Variant
Dim scope As String
Dim doc As NotesDocument
On Error Goto Erreur
' Initialisation de la session, base actuelle et vue
Set session = New NotesSession
Set db = session.CurrentDatabase
Set dataview = db.GetView("CBP-vExtractionDAC Planning") 'SPECIFIER ICI LE NOM DE LA VUE
Set vwNav=dataview.CreateViewNav
Print "PASSAGE 1 OK"
' initialisation de l'objet OLE ou Instance OLE
' ouverture de l'application Excel sans ouverture de classeur
Set XLApp = CreateObject("Excel.Application")
XLApp.Visible = True
XLApp.DisplayAlerts = False
Set XLWorkBook=XLApp.Workbooks.Add
Set ActiveWorkBook=XLApp.ActiveWorkBook
Set Sheet=ActiveWorkBook.ActiveSheet
Sheet.Name = "DAC" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''NOM DE LA FEUILLE
Print "PASSAGE 2 OK"
'1. Ecriture du titre des colonnes
Nbcolonne=dataview.ColumnCount ' Récupère le nombre de colonne de la vue
ligne=1 ' On se place sur la première ligne
colonne=1
Set XlSheet=CreateObject("Excel.Sheet")
For K=1 To Nbcolonne
Set c=dataview.columns(K-1)
Sheet.Cells(ligne,colonne) = c.title
colonne = colonne + 1
Next K
Set entry=vwnav.GetFirstDocument
'Stop
Print "PASSAGE 3 OK"
'2. Renseigne les valeures des champs du document
ligne=2 ' On se place sur la deuxième ligne
colonne=1 'On se remet sur la premiere colonne
Do While Not (entry Is Nothing)
For colonne=1 To Nbcolonne
colvals=entry.ColumnValues(colonne-1)
scope=Typename(colvals)
Select Case scope
Case "EMPTY"
Sheet.Cells(ligne,colonne) =""
Case "STRING( )"
Sheet.Cells(ligne,colonne) =""
Case Else
Sheet.Cells(ligne,colonne) ="" + colvals
End Select
Next colonne
ligne=ligne+1
Set entry = vwnav.getnextdocument(entry)
'Stop
Loop ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''COPIE TOUTS LES VALEURS DE LA VUE
Print "PASSAGE 4 OK"
On Error GoTo Erreur2
''''''''''''''''''''''''''''' MISE EN FORME ''''''''''''''''''''''''''''''
XLApp.Range("A1:IV1").Select 'selectionne les cellules de B2 à IV2
XLApp.Selection.FONT.Bold = True 'mets la selection en gras
XLApp.Selection.Font.Size = 11 'mets la selection en police 11
Sheet.Columns.AutoFit 'calcul automatiquement la largeure des colonnes
'Aligne les cellules horizontalement et verticalement
XLApp.Range("A1:IV" & ligne).Select
Const xlCenter = -4108 'défini la constante qui permet de centré le texte
XLApp.selection.HorizontalAlignment = xlCenter
XLApp.selection.VerticalAlignment = xlCenter
Print "PASSAGE 5 OK"
'MISE A JOUR DES FICHIERS DAC SAVE ET DAC
'Sauvegarde le fichier avec la date du jour dans
'DateDuJour = Right(Date, 4) & "-" & Mid(Date, 4, 2) & "-" & Left(Date, 2)
'On Error GoTo Erreur3
XlApp.ActiveWorkBook.SaveAs "C:\Temp\Workflows_DAC"
On Error GoTo Erreur4
'XLApp.ActiveWorkBook.Close 'Ferme le fichier
'XLApp.Quit
Exit Sub
Print "PASSAGE 6 OK"
Erreur:
'XLApp.Quit
'MsgBox "PROBLEME PENDANT L'EXTRACTION DES DAC " & "( Ligne : " & ligne-1 & " Colonne : " & colonne-1 & " )",16," ERREUR !"
'Resume Fin
Erreur2:
'Stop
'XLApp.Quit
'MsgBox "PROBLEME PENDANT L'EXTRACTION AU NIVEAU DE LA MISE EN FORME"
'Resume Fin
Erreur3:
'XLApp.Quit
MsgBox "PROBLEME DANS L'ADRESSE"
Resume Fin
Erreur4:
XLApp.Quit
MsgBox "PROBLEME A LA FIN"
Resume Fin
Fin:
End Sub

Publié:
31 Août 2011 à 17:11
par Raziel
C'est lorsque tu exécute cette commande que ton programme se plante :
XlApp.ActiveWorkBook.SaveAs "C:\Temp\Workflows_DAC"
Quel message d'erreur obtient tu ?
Tu a vérifié le niveau de sécurité d'exécution de ton agent ? Pour ce type, tu dois avoir la valeur 3 "Autoriser opérations à accès limiter avec droits d'administration complets"

Publié:
31 Août 2011 à 18:53
par roubech
Excel est installé sur le serveur pour exécuter ce code ?
Set XLApp = CreateObject("Excel.Application")

Publié:
01 Sep 2011 à 10:45
par clementbp
Oui j'ai installé Excel sur le serveur.
Quand je prend la main sur le serveur je vois bien le fichier excel se remplir
Mais comme dit Raziel c'est à la ligne XlApp.ActiveWorkBook.SaveAs "C:\Temp\Workflows_DAC" que ça plante
Au niveau des sécurité je suis bien en niveau 3
Auriez vous une idée pour faire cela éventuellement d'une autre manière !!!!

Publié:
01 Sep 2011 à 10:49
par Raziel
Pour moi c'est un problème de droit d'écriture sur le répertoire.
Dans ta gestion d'erreur, fait afficher la ligne ainsi que le code est le libellé de l'erreur afin que l'on puisse récupérer tout ça dans la log du serveur.

Publié:
01 Sep 2011 à 20:59
par roubech
+1 pour un print du grenre dans la gestion d'erreur "Erreur n°" & err & " a la ligne " & erl & " : " & error
et en plus du niveau de droit dans les propriétés de l'agent, il faut des droits pour exécutéer les agents non restrictifs au niveau du doc serveur pour le signataire de l'agent ou le serveur si planifié