Gérer automatiquement pièce jointe d'un message

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

Gérer automatiquement pièce jointe d'un message

Messagepar Dawood » 04 Nov 2009 à 17:14

Bonjour,
j'ai recherché et trouvé dans les tips des éléments me permettant de créer un agent pour détacher/supprimer automatiquement les pièces jointes d'une BAL.
Sauf que rien ne marche et je suis un peu dans l'impasse. Voici le script que j'ai récupéré et éxécuté tel quel:
-------------------------------------------
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As NotesUIView
Dim docs As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim askme As Integer
Dim user As NotesName
Dim rtnav As NotesRichTextNavigator
Dim onav As NotesEmbeddedObject
On Error Goto Errors
askme = ws.Prompt (PROMPT_YESNO,"Supprimer les fichiers attachés", "Vous êtes sur le point de supprimer tous les fichiers attachés des documents sélectionnés, voulez-vous vraiment continuer ?")
If askme = 1 Then
Set db = ws.CurrentDatabase.Database
Set view = ws.CurrentView
If Not( db Is Nothing ) Then
Set docs = db.Unprocesseddocuments
If Not( docs Is Nothing ) Then
If( docs.Count > 0 ) Then
Set user = New NotesName(db.Parent.UserName)
Set doc = docs.GetFirstDocument()
While Not( doc Is Nothing )
Set rtitem = doc.GetFirstItem( "Body" )
If Not( rtitem Is Nothing ) Then
If ( rtitem.Type = RICHTEXT ) Then
If( Isarray(rtitem.EmbeddedObjects) ) Then
Set rtnav = rtitem.CreateNavigator
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Set onav = rtnav.GetFirstElement(RTELEM_TYPE_FILEATTACHMENT)
If Not( onav Is Nothing ) Then
Call rtnav.SetPosition(onav)
Call rtitem.BeginInsert(rtnav)
Call rtitem.Appendtext(|[attachement "|+onav.Name+|" supprimé par |+user.Abbreviated+|]|)
Call rtitem.EndInsert()
Call o.Remove()
Call rtitem.Update()
End If
End If
End Forall
Call doc.Save( True, True )
End If
End If
Set rtitem = Nothing
End If
Set doc = docs.GetNextDocument(doc)
Wend
If Not( view Is Nothing ) Then
Call view.DeselectAll()
End If
Call ws.ViewRefresh()
End If
End If
End If
End If

ExitSub:
Exit Sub

Errors:
Dim errmsg As String
errmsg = "(Error #: " & Str(Err) & ") " & Error$
Print errmsg
Resume Next
End Sub
------------------------------------------------------------

résultat, pas d'erreur... rien le script ne fonctionne pas. est ce que cela peut être dû à une version de notes ? (v8.5 pour moi) j'ai juste "compilation du script en cours" dans la barre des tâches..
vu mon piètre niveau de dev..
merci de votre aide
D@wOOd
Avatar de l’utilisateur
Dawood
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 148
Inscrit(e) le : 21 Jan 2005 à 14:50
Localisation : GRENOBLE

Messagepar gouff » 04 Nov 2009 à 17:37

Qu'as tu dans les propriété d'exécution de l'agent ?
regarde la cible : est ce "tous les documents sélectionnés" ?
"Si tu ne réussis rien du premier coup, alors le saut en parachute n'est pas fait pour toi"
Avatar de l’utilisateur
gouff
Posteur habitué
Posteur habitué
 
Message(s) : 277
Inscrit(e) le : 11 Fév 2008 à 16:33
Localisation : Grenoble

Messagepar Dawood » 05 Nov 2009 à 09:51

oui la cible est bien "tous les documents sélectionnés"...
en fait j'ai pas de msg d'erreur...
D@wOOd
Avatar de l’utilisateur
Dawood
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 148
Inscrit(e) le : 21 Jan 2005 à 14:50
Localisation : GRENOBLE

Messagepar gouff » 05 Nov 2009 à 11:00

As tu remplacé le "Sub Click(Source As Button) " par initialise ?
"Si tu ne réussis rien du premier coup, alors le saut en parachute n'est pas fait pour toi"
Avatar de l’utilisateur
gouff
Posteur habitué
Posteur habitué
 
Message(s) : 277
Inscrit(e) le : 11 Fév 2008 à 16:33
Localisation : Grenoble

Messagepar Dawood » 05 Nov 2009 à 12:23

merci ! suis je bête...
je souhaite détacher la pj sur un repertoire réseau avant la suppression.
j'ai modifié le script de la façon suivante:
----------------------------------------------------------
Sub Initialize

Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As NotesUIView
Dim docs As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim askme As Integer
Dim user As NotesName
Dim rtnav As NotesRichTextNavigator
Dim onav As NotesEmbeddedObject
Dim path As String

On Error Goto Errors
askme = ws.Prompt (PROMPT_YESNO,"Detacher les fichiers attachés", "Vous êtes sur le point de détacher tous les fichiers attachés des documents sélectionnés, voulez-vous vraiment continuer ?")
If askme = 1 Then
Set db = ws.CurrentDatabase.Database
Set view = ws.CurrentView
path = Inputbox ( "\\grensto1\public$\permanent\Maintenance du patrimoine et renouvellement\8-Autres docs\DPE\" ,db.Title, "")

If Trim(Path) = "" Then
path="c:\"
End If
If Right(Trim(path),1) <Then> 0 ) Then
Set user = New NotesName(db.Parent.UserName)
Set doc = docs.GetFirstDocument()
While Not( doc Is Nothing )
Set rtitem = doc.GetFirstItem( "Body" )
If Not( rtitem Is Nothing ) Then
If ( rtitem.Type = RICHTEXT ) Then
If( Isarray(rtitem.EmbeddedObjects) ) Then
Set rtnav = rtitem.CreateNavigator
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Msgbox path+onav.Name
Call o.ExtractFile(path+onav.Name)
Set onav = rtnav.GetFirstElement(RTELEM_TYPE_FILEATTACHMENT)
If Not( onav Is Nothing ) Then
Call rtnav.SetPosition(onav)
Call rtitem.BeginInsert(rtnav)
Call rtitem.Appendtext(|[attachement "|+onav.Name+|" supprimé par |+user.Abbreviated+|]|)
Call rtitem.EndInsert()
Call o.Remove()
Call rtitem.Update()
End If
End If
End Forall
Call doc.Save( True, True )
End If
End If
Set rtitem = Nothing
End If
Set doc = docs.GetNextDocument(doc)
Wend
If Not( view Is Nothing ) Then
Call view.DeselectAll()
End If
Call ws.ViewRefresh()
End If
End If
End If
End If

ExitSub:
Exit Sub

Errors:
Dim errmsg As String
errmsg = "(Error #: " & Str(Err) & ") " & Error$
Print errmsg
Resume Next
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"

End Sub
-----------------------------------------------------
il me valide bien le nom de fichier mais par contre ne réalise pas l'enregistrement du fichier sur le réseau (par contre le call.o.remove fonctionne bien...)
j'en appelle une fois de + à vos compétences....
D@wOOd
Avatar de l’utilisateur
Dawood
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 148
Inscrit(e) le : 21 Jan 2005 à 14:50
Localisation : GRENOBLE

Messagepar kochiz » 05 Nov 2009 à 12:27

Bonjour,

Tu as bien le droit d'écriture sur la ressource réseau cible ?
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Messagepar gouff » 05 Nov 2009 à 13:07

Entre Grenoblois faut bien s'aider...

;°)

A mon avis il te manque un slash dans ton path. essaie de passer le code au debbuger, tu seras fixé
"Si tu ne réussis rien du premier coup, alors le saut en parachute n'est pas fait pour toi"
Avatar de l’utilisateur
gouff
Posteur habitué
Posteur habitué
 
Message(s) : 277
Inscrit(e) le : 11 Fév 2008 à 16:33
Localisation : Grenoble

Messagepar kochiz » 05 Nov 2009 à 13:34

Et puis les espaces dans les noms de répertoire c'est pas top quand même.
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Messagepar Michael DELIQUE » 05 Nov 2009 à 13:36

salut

tu peux tester l'existence (donc la bonne syntax) de ton répertoire avec cette fonction => http://forum.dominoarea.org/tester-lexi ... 12375.html
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

Messagepar Dawood » 05 Nov 2009 à 13:43

merci pour la solidarité ;-)
le seul doute que j'ai sur le path c'est les 2 ou 3 antislash sur le nom de serveur
il me semble qu'en UNC on est bien:
\\nomdeserveur\partage\dossier
en tous cas quand je le mappe ou même exécution en DOS le dossier s'ouvre.
pour les droits y a pas de soucis non plus..
je vais tester ton lien Michael merci

PS: nom de répertoire bien indépendant de ma volonté. c'est un truc normé ISO chez nous, bref je n'ai pas le choix
D@wOOd
Avatar de l’utilisateur
Dawood
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 148
Inscrit(e) le : 21 Jan 2005 à 14:50
Localisation : GRENOBLE

Messagepar Michael DELIQUE » 05 Nov 2009 à 13:47

pour l'unc c'est bien ça

\\nomdeserveur\partage\dossier

de toute facon si tu as un doute tu tape ton unc dans l'explorer s'il ouvre le répertoire c'est bon (hormis pb de droit d'acces)
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

Messagepar oguruma » 05 Nov 2009 à 13:52

attention dans le passé... de mémoire.... sauf erreur.... Domino ne reconnaissait pas (ou pas très bien) les chemins UNC dans les codes LS... ou qq chose comme cela....
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Michael DELIQUE » 05 Nov 2009 à 13:58

peut être en v4

mais en v5, v6 v7 pas de souci.
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

Messagepar oguruma » 05 Nov 2009 à 14:03

Oui en effet c'était à cette époque... et je crois de mémoire en 4.5 (1998)
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar JYR » 05 Nov 2009 à 14:35

Avatar de l’utilisateur
JYR
Empereur des posts
Empereur des posts
 
Message(s) : 1573
Inscrit(e) le : 10 Jan 2005 à 14:47
Localisation : Quebec

Suivant

Retour vers Développement

cron