Page 1 sur 1

GETITEMVALUE

MessagePublié: 04 Juin 2010 à 14:26
par marin101
bonjour

j'arrive par script à récupérer les différents champs d'un e-mail lotus comme suit :
expediteurs = document.GETITEMVALUE("from")
suject = document.GETITEMVALUE("subject")
..._... etc, etc
route = document.GETITEMVALUE("Received")

le problème est que l'e-mail peut passer par plusieurs serveurs par conséquent, on peut retrouver plusieurs champs Received

Comment peut on faire une boucle pour lire tous les champs Received d'un même e-mail?

Merci bcp

MessagePublié: 04 Juin 2010 à 15:01
par LSong
le plus simple est de parcourrir les champs

Code : Tout sélectionner
   Forall item In doc.items
      If item.name = "Received" Then
         ' traite ton truc
      End If
   End Forall


attention tu vas avoir les champs dans un ordre ... ben je ne sais pas trop

tu peu aussi faire un

set item = document.getFirstItem ("Received")

puis

call item.remove ()

pour apres charger le suivant

set item = document.getFirstItem ("Received")

etc jusqu'a qu'il y en ai plus (évite de sauver apres ca :D)

MessagePublié: 05 Juin 2010 à 20:39
par roubech
voir stringArray = notesDocument.GetReceivedItemText( ) dans l'aide
http://publib.boulder.ibm.com/infocente ... D_DOC.html
aide a écrit:[syntax="LotusScript"]Sub Initialize
On Error Goto errh
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim count As Integer
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument()
receivedItemText = doc.GetReceivedItemText()
If receivedItemText(0) = "" Then
Messagebox "No Received items in document",, "No Received items"
Else
count = 0
Forall received In receivedItemText
count = count + 1
Messagebox received,, "Received item " & count
End Forall
End If
Exit Sub
errh:
Messagebox Error(),, "Error # " & Err()
If Err() = lsERR_NOTES_INVALID_RECEIVEDITEM Then
receivedItemText = doc.GetItemValue("Received")
count = 0
Forall received In receivedItemText
count = count + 1
Messagebox received,, "Received item " & count
End Forall
End If
Exit Sub
End Sub[/syntax]

GETITEMVALUE

MessagePublié: 07 Juin 2010 à 10:50
par marin101
Bonjour

j'ai utilisé la solution

boucle
set item = document.getFirstItem ("Received") ....
...
call item.remove ()
loop

A la fin du traitement j'ai rajouté la ligne
Call document.SAVE(False, False)
pour ne pas sauvegarder, mais lorsque je regarde la propriété du mail, je n'ai plus les champs received. pourriez vous m'aider à ne pas sauvegarder

merci bcp

MessagePublié: 07 Juin 2010 à 10:50
par Michael DELIQUE
salut

Call document.SAVE(False, False) va faire un save !

GETITEMVALUE

MessagePublié: 07 Juin 2010 à 11:29
par marin101
Désolé

j'ai raconté une connerie

Call document.SAVE(False, False) ne sauvegarde et je retrouve bien mes champs received

Promis, je porterai prochainement de grosse lunettes

merci bcp à vous tous

MessagePublié: 07 Juin 2010 à 12:08
par LSong
heu pour le save ...

le premier arguemnt est : froced ca veus dire que tu veux forcer le save meme s'il y a quelqu'un d'autre dessus
et le deuxieme est CreateResponse : demande de crée un document reponse en cas de conflit

ton save en temps normal va enregistrer
si tu ne veux pas enregistrer ... ne fait pas sde save :D
tu peu le bloquer avec un doc.Saveoptions = 0