Agent planifié d'extraction d'une vue

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Agent planifié d'extraction d'une vue

Messagepar clementbp » 19 Juil 2011 à 15:30

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
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Raziel » 19 Juil 2011 à 15:39

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é.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar clementbp » 19 Juil 2011 à 16:14

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 ?
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Raziel » 19 Juil 2011 à 16:16

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 ?
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar roubech » 19 Juil 2011 à 22:53

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
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Raziel » 20 Juil 2011 à 08:12

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é... :lol:
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar clementbp » 31 Août 2011 à 17:05

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
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Raziel » 31 Août 2011 à 17:11

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"
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar roubech » 31 Août 2011 à 18:53

Excel est installé sur le serveur pour exécuter ce code ?
Set XLApp = CreateObject("Excel.Application")
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar clementbp » 01 Sep 2011 à 10:45

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 !!!!
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Raziel » 01 Sep 2011 à 10:49

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.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar roubech » 01 Sep 2011 à 20:59

+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é
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille


Retour vers Développement