Question sur les agents planifiés[RESOLU]

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

Question sur les agents planifiés[RESOLU]

Messagepar Benimius » 04 Mars 2013 à 11:05

Bonjour à tous,

Je suis nouveau dans l'univers Lotus, ce forum m'aide beaucoup dans la découverte, mais pour une fois, en lisant / recherchant, je n'ai pas trouvé la solution.

J'ai développé une application, qui recensie la liste des applications Lotus de mon entreprise présentent sur différents serveurs domino, avec cette liste, j'ai créé un agent "Statistique" qui se connecte sur chaque base pour extraire les données (la taille, le nombre de document, si elle est indexée ou pas, la date de dernière modification, ect...) l'agent tourne parfaitement dés que je l'exécute manuellement, j'arrive à me connecter sans soucis sur chaque base sur n'importe quel serveur, mais une fois que je planifie l'agent, il ne fonctionne qu'avec les bases qui sont sur le même serveur.

Pour essayer de contourner ce problème, j'ai créé un petit agent "Sniffer" a mettre dans chaque base, qui envoi à la base de recensement les informations, mais une fois encore, je reçois uniquement les informations des bases se trouvant sur le même serveur que la base qui reçoit les informations.

En bref, quand je l’exécute manuellement de n'importe quel base située sur n'importe quel serveur, ça fonctionne, mais quand il est planifié il bloque quelque part dés que c'est un serveur différent...

Tout les serveurs sont sur le même domaine.
J'ai essayé en faisant signer la base par le serveur, mais toujours le même soucis !

Si quelqu'un a une idée de la provenance du problème... !

Et j'en profite de ce post pour une deuxième question, est il possible d'avoir un agent partagé dans chaque base, sur différent serveur, qui me permettrait d'appliquer les modifications une seule fois pour toute.

Voici le code de l'agent qui envoi les informations de la base:
Code : Tout sélectionner

Sub Initialize
   'Declaration de base
   Dim session As New NotesSession
   Dim db As NotesDatabase

   'Declaration de la base GestionBaseEgov
   Dim dbEgov As new NotesDatabase("", "")   
   Dim form As NotesForm
   Dim doc As NotesDocument
   
   'Declaration pour les rôles
   Dim uidoc As NotesUIDocument
   Dim acl As NotesACL
   Dim entry As NotesACLEntry

   'Declaration pour l'heure
   Dim dateTime As New NotesDateTime( "" )
   dateTime.LSLocalTime = Now
   
   Set db = session.CurrentDatabase
   Set acl = db.ACL   
   Set entry = acl.GetFirstEntry
   
   'Déclaration des variables
   Dim varNomCbase As String
   Dim varTailleCbase As String
   Dim varNbrDocCbase As String
   Dim varAclCbase As String
   Dim varServCbase As String
   Dim varIndexCbase As String
   Dim varLastModifCbase As String
   Dim arrayAclCbase(0 To 10) As String
   
   'Déclaration des variables 
   Dim cpt As Integer
   cpt = 0
   Dim tempServ As String
   Dim tempNsf As String

   varNomCbase = db.Title
   varTailleCbase = db.Size / 1024 / 1024
   varNbrDocCbase = db.Alldocuments.Count
   varServCbase = db.Server
   varIndexCbase = db.Isftindexed
   varLastModifCbase = db.Lastmodified
   
      While Not ( entry Is Nothing )
      If entry.Level = 6 Then
         arrayAclCbase(cpt) = entry.Name + ";"
         cpt = cpt+1   
      End If
         Set entry = acl.GetNextEntry( entry )
      Wend   
   
   tempNsf = "gestionBasesEgov\GestionbaseEgov.nsf"
   tempServ = "Dominodv"

   If dbEgov.Open(tempServ,tempNsf) Then
         
         Set doc = dbEgov.CreateDocument
      With doc
         .form = "AfrmStatistique"
         .fldStatistiqueNomProjet = varNomCbase
         .fldStatistiqueNomServeur = varServCbase
         .fldStatistiqueNombreDoc = varNbrDocCbase
         .fldStatistiqueTaille = varTailleCbase
         .fldStatistiqueGestionnaire = arrayAclCbase   
         .fldStatistiqueCurrentDate = dateTime.Dateonly
         .fldStatistiqueLastModif = varLastModifCbase
         .fldStatistiqueIndex = varIndexCbase
               
      End With   
      Call doc.save(False, False)   
   End If

End Sub

Merci d'avoir pris le temps de me lire,
Bonne journée
Dernière édition par Benimius le 07 Mars 2013 à 10:54, édité 1 fois.
Avatar de l’utilisateur
Benimius
Premier posts
Premier posts
 
Message(s) : 10
Inscrit(e) le : 22 Fév 2013 à 10:42

Re: Question sur les agents planifiés

Messagepar Michael DELIQUE » 04 Mars 2013 à 12:58

salut

déjà c'est bien tu n'as pas mis d'objet en NotesUI c'est imcompatible avec les agent schedulé ou lancé via un run on server.
moins bien, ya pas de gestion des erreurs en cas de bug tu aura le strict minimum d'info.

pour ton souci, je pense que ça dois venir des droit, essais de passer ton agent au nivreau de sécurité supérieur. regarde aussi si le signataire/id qui lance l'agent (le server par exemple) à le droit d'accéder au bases...
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Question sur les agents planifiés

Messagepar Michael DELIQUE » 04 Mars 2013 à 13:00

je retire ce que j'ai dis...

c'est pas bien du tout ! ya un

Dim uidoc As NotesUIDocument

qui traine dans ton code
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Question sur les agents planifiés

Messagepar Benimius » 04 Mars 2013 à 14:21

Bonjour,
Merci de ta réponse,

Je viens de faire les modifications en fonction de tes conseils, je n'étais pas au courant avec les objet de type UIDocument.

Je vais tester avec les modifications ainsi que tester avec les trois types de droits
Avatar de l’utilisateur
Benimius
Premier posts
Premier posts
 
Message(s) : 10
Inscrit(e) le : 22 Fév 2013 à 10:42

Re: Question sur les agents planifiés

Messagepar Benimius » 04 Mars 2013 à 15:53

Après modification du code :

Code : Tout sélectionner
Sub Initialize
   On Error GoTo Erreur
   'Declaration de base
   Dim session As New NotesSession
   Dim db As NotesDatabase

   'Declaration de la base GestionBaseEgov
   Dim dbEgov As new NotesDatabase("", "")   
   Dim form As NotesForm
   Dim doc As NotesDocument
   
   'Declaration pour les rôles

   Dim acl As NotesACL
   Dim entry As NotesACLEntry

   'Declaration pour l'heure
   Dim dateTime As New NotesDateTime( "" )
   dateTime.LSLocalTime = Now
   
   Set db = session.CurrentDatabase
   Set acl = db.ACL   
   Set entry = acl.GetFirstEntry
   
   'Declaration pour les mails
   Dim MailDoc As NotesDocument
   Dim richStyle As NotesRichTextStyle
   Dim memoBody As Variant
   
   'Déclaration des variables
   Dim varNomCbase As String
   Dim varTailleCbase As String
   Dim varNbrDocCbase As String
   Dim varAclCbase As String
   Dim varServCbase As String
   Dim varIndexCbase As String
   Dim varLastModifCbase As String
   Dim arrayAclCbase(0 To 10) As String

   'Déclaration des variables 
   Dim cpt As Integer
   cpt = 0
   Dim tempServ As String
   Dim tempNsf As String

   varNomCbase = db.Title
   varTailleCbase = db.Size / 1024 / 1024
   varNbrDocCbase = db.Alldocuments.Count
   varServCbase = db.Server
   varIndexCbase = db.Isftindexed
   varLastModifCbase = db.Lastmodified
   
   While Not ( entry Is Nothing )
      If entry.Level = 6 Then
         arrayAclCbase(cpt) = entry.Name + ";"
         cpt = cpt+1   
      End If
      Set entry = acl.GetNextEntry( entry )
   Wend   
   
   tempNsf = "gestionBasesEgov\GestionbaseEgov.nsf"
   tempServ = "Dominodv"

   call dbEgov.Open(tempServ,tempNsf)
      Set doc = dbEgov.CreateDocument
      With doc
         .form = "AfrmStatistique"
         .fldStatistiqueNomProjet = varNomCbase
         .fldStatistiqueNomServeur = varServCbase
         .fldStatistiqueNombreDoc = varNbrDocCbase
         .fldStatistiqueTaille = varTailleCbase
         .fldStatistiqueGestionnaire = arrayAclCbase   
         .fldStatistiqueCurrentDate = dateTime.Dateonly
         .fldStatistiqueLastModif = varLastModifCbase
         .fldStatistiqueIndex = varIndexCbase
         
      End With   
      Call doc.save(False, False)   
   
Exit Sub



Erreur:
   Set Maildoc = New NotesDocument(db)
   MailDoc.Form = "Memo"
   Set memoBody = MailDoc.CreateRichTextItem("Body")
   Call memoBody.AppendText("Erreur n° :" +CStr(Err)_
                     + "Description : "+ Error(Err)_
                     + "Ligne n° : "+ CStr(Erl))
   MailDoc.Subject = "Rapport d'erreur - calcul stat"
   MailDoc.SendTo = "admin@mail.be"
   Call MailDoc.Send( False)
End Sub


Le rapport d'erreur donne :

Erreur n° :4063
Description : User-defined error
Ligne n° : 67


(Testé avec les 3 niveaux de sécurité)

Le code bloque à la connexion de la deuxième database : "call dbEgov.Open(tempServ,tempNsf) "


Pensez vous que ce code est correct et que le problème est au niveau des options des serveurs ?
Avatar de l’utilisateur
Benimius
Premier posts
Premier posts
 
Message(s) : 10
Inscrit(e) le : 22 Fév 2013 à 10:42

Re: Question sur les agents planifiés

Messagepar roubech » 04 Mars 2013 à 20:11

Bonjour et bienvenue
J'ai pas regardé le code mais au niveau droits il fzut que le serveur sur lequel l'agent est planifié soit autorisé sur les autres serveurs : doc serveur, onglet securite, en bas à droite de memoire ("trusted servers")
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Question sur les agents planifiés

Messagepar Benimius » 07 Mars 2013 à 10:54

Bonjour,
Le problème est réglé, c'était bien un problème de "Trusted serveurs"

Merci à vous, pour votre aide et vos conseils.
Avatar de l’utilisateur
Benimius
Premier posts
Premier posts
 
Message(s) : 10
Inscrit(e) le : 22 Fév 2013 à 10:42


Retour vers Développement