Domino 9 und frühere Versionen > Entwicklung

Anhänge löschen wenn vorhanden

<< < (2/2)

BradCirclepit:

--- Zitat von: koehlerbv am 19.01.09 - 16:20:03 ---Termine? In der Schablone? Was willst Du uns damit sagen? Und wie sieht Dein Code aus und wo kommt die Fehlermeldung?

Bernhard

--- Ende Zitat ---

Wenn mich jemand über die Kalender-Funktion einlädt und ich die Informationsmail bezüglich der Einladung in mein E-Mail Postfach bekomme, dann steht diese Mail ja mit dem Briefumschlag-Icon in der normalen Mail-Schablone.

Wenn ich jetzt mit folgendem Code:

Sub Initialize
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtitem As Variant
   Dim object As NotesEmbeddedObject
   
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   
   If collection.Count = 0 Then 
      Msgbox "Kein Dokument ausgewählt"   
   Else
     
      Set doc = collection.GetFirstDocument
      While Not (doc Is Nothing)
         Set rtitem = doc.GetFirstItem( "Body" )
         If ( rtitem.Type = RICHTEXT ) Then   
            If Isarray( rtitem.embeddedObjects) Then
               Forall o In rtitem.EmbeddedObjects
                  Call o.Remove
                  Call doc.Save( False, True )
               End Forall   
            Else
               Msgbox "is nicht"
            End If
         End If
         Set doc = collection.GetNextDocument(doc)
      Wend
      Msgbox "Anhang / Anhänge gelöscht"
   End If
End Sub

wie ihn MrMagoo geschrieben hat alle Mails markiere und das Script ausführe, dann werden alle Anhänge soweit gelöscht bis er bei diesen Termin-Emails hängen bleibt und diese Fehlermeldung ausgibt. Die Mails die nach der Fehlermeldung noch markiert wären werden dann nicht berücksichtigt und behalten ihren Anhang.

koehlerbv:
In der Schablone steht da immer noch nix, sondern in Deiner Datenbank  ;) Und ein ErrorHandling hast Du auch nicht eingebaut und kannst daher nicht die Zeile nennen, in der es knallt. Jetzt habe ich das extra nachbauen müssen - das macht nicht glücklich ...

Bei einer Einladung (Form = "Notice") gibt es kein Body-Item. Du musst also prüfen, ob das Item überhaupt vorhanden ist. Details gibts jetzt zur Strafe von mir auch nicht - das steht alles in der DesignerHelp unter NotesItem  ;)

Bernhard

BradCirclepit:
Habe es jetzt so gelöst, dass ich überprüfe ob überhaupt ein gültiger Wert vorhanden ist. Wenn der Wert ungültig ist soll er gar nichts machen, ist der Wert gültig macht er den Rest wie gehabt.

Vielen Dank für die Informationen.


Sub Initialize
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtitem As Variant
   Dim object As NotesEmbeddedObject
   
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   
   If collection.Count = 0 Then
      Msgbox "Kein Dokument ausgewählt"   
   Else
      
      Set doc = collection.GetFirstDocument
      While Not (doc Is Nothing)
         Set rtitem = doc.GetFirstItem( "Body" )
         If (rtitem Is Nothing) Then         
         Else
            If ( rtitem.Type = RICHTEXT ) Then   
               If Isarray( rtitem.embeddedObjects) Then
                  Forall o In rtitem.EmbeddedObjects
                     Call o.Remove
                     Call doc.Save( False, True )
                  End Forall   
               End If
            End If
         End If
         Set doc = collection.GetNextDocument(doc)
      Wend
      Msgbox "Anhang / Anhänge gelöscht"
   End If
End Sub

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln