Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: chris2212 am 26.02.07 - 12:17:37

Titel: Delete Attachment
Beitrag von: chris2212 am 26.02.07 - 12:17:37
Hallo,

dieses kleine Script soll in allen selektierten eMails das Attachment löschen.

Dim session As New NotesSession
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim msgvalue As Variant

msgvalue = Msgbox("You are about to delete all attachments from the selected eMails"_
& Chr(10) & "Continue deleting attachments?",4+32,"Delete attachments")
If msgvalue = 6 Then

Set col = session.CurrentDatabase.UnprocessedDocuments
Set doc = col.GetFirstDocument
      
While Not (doc Is Nothing)
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
If Not (Isempty (rtitem.EmbeddedObjects)) Then
Forall x In rtitem.EmbeddedObjects
If ( x.Type = EMBED_ATTACHMENT ) Then
Call x.Remove
Call doc.Save(True,False,False)
End If
End Forall
End If
End If
Set doc = col.GetNextDocument(doc)
Wend
End If

Das funktioniert auch problemlos wenn ich den Agent mit der Option Action menu selection
direkt aus dem Action Menu ausführe.

Starte ich den Agent aber über einen Dialog, der hiermit aufgerufen wird, werden die Attachments
nicht gelöscht :-(

Dim Workspace As New NotesUIWorkspace
Dim DB As NotesDatabase
Dim Doc As NotesDocument
Set DB = Workspace.CurrentDatabase.Database
Set Doc = New NotesDocument(DB)
Button = Workspace.DialogBox("(TestDialogAttachments)", True,True,True, False,False, False, "Test - Attachment Actions",doc,True,True)


Aufgerufen wird der Agent im Dialog mittels einer Schaltfläche welche diese
Formel ausführt.
@Command([FileCloseWindow]);
@Command([ToolsRunMacro];"DeleteOnly")

Ich habe im Agent an der Stelle Call x.Remove mal eine MsgBox plaziert und wollte mir
"nur" mal zum testen einen Text ausgeben lassen, aber leider kommt die MsgBox nicht :-(

Ich gehe mal davon aus, dass dem Agent nachdem ich ihn über den Dialog gestartet habe
die Collection fehlt, wie kann ich ihm diese richtig "übergeben"?


Für jeden Tipp dankbar!


Gruß
Chris
Titel: Re: Delete Attachment
Beitrag von: DerAndre am 26.02.07 - 12:53:27
Und wenn Du den ersten Code direkt in der Schaltfläche hnterlegst?
Den zweiten Teil versteh ich im Moment nicht so wirklich.
Titel: Re: Delete Attachment
Beitrag von: chris2212 am 26.02.07 - 13:14:12
Hallo André,


das habe ich noch nicht getestet.

Der "zweite Teil" ist eine Action-Schaltfläche die vorerst in der Inbox und in der Ansicht
All Documents angezeigt wird.
Der Dialog hat drei Schaltflächen

Extract only
Extract and Delete
Delete only

Die Extract und Extract and Delete Agents werden "sauber ausgeführt", Probleme habe ich
nur mit dem Delete only.

Ich werde den Delete only Code mal direkt in der Schaltfläche des Buttons hinterlegen, mal schaun
ob es dann geht.

Danke & Gruß
Chris
Titel: Re: Delete Attachment
Beitrag von: chris2212 am 26.02.07 - 13:36:47
Hallo André,

wenn ich den Code direkt in der Schaltfläche im Dialog hinterlege, tut es leider auch nicht :-(

Es kommt nicht mal die MessageBox....

Es hängt also mit der Collection zusammen die er an dieser Stelle nicht erstellen kann.
Wie kann ich von einem Dialog aus auf die in einer Ansicht selektierten Dokumente zugreifen?


Gruß
Christian