Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: markus_mgd am 29.06.11 - 10:11:51

Titel: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: markus_mgd am 29.06.11 - 10:11:51
Liebe Gemeinde,

ich verzweifele daran eine Mail zu schließen ohne das Fenster "Mail senden" zu erhalten. Ich hoffe es gibt da eine Lösung.

Worum geht es?

Es soll mittels Agent alle markierten Mails im Eingang einer DB beantwortet werden, wobei alle den gleichen Antworttext (Standardantwort) erhalten sollen. Die Auswahl dieses Texts erfolgt über eine Liste von Memo-Vorlagen (Stationery). Am Ende wird das Feld ZuVersenden auf 1 gesetzt, dessen Exisitenz ein zweiter Agent in regelmäßigen Abständen prüft und ggf. die aufgelaufenen Mails verschickt. Das klappt auch alles soweit ganz perfekt, jedoch bleibt am Ende immer noch eine Mail geöffnet, welche noch nicht den Text aus der Vorlage enthält. Ich habe versucht diese Mail über das NotesUIDocument newdoc zu schließen, doch dabei bekomme ich immer das Fenster "Mail senden" mit den Buttons "Senden und Speichern", "Nur Senden" usw.  angezeigt.

Und genau diese Fenster soll nicht auftauchen. Bitte um Hilfestellung.

Beste Grüße
Markus

Der Code folgt:

Sub Initialize
   Dim uiws As New NotesUIWorkspace
   Dim replytodoc As NotesUIDocument
   Dim newdoc As NotesUIDocument
   Dim Vorlage As NotesDocumentCollection
   Dim doc2 As NotesDocument
   Dim db As NotesDatabase
   Dim session As New NotesSession
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   
   Set db = session.CurrentDatabase
   Set noteCursorDoc = session.currentdatabase.createdocument
   Set Vorlage = uiws.Picklistcollection(PICKLIST_CUSTOM, False, db.server, db.filepath, "Stationery", "Auswahl der Mailvorlage", "Bitte Vorlage aus Liste auswählen")
   Set noteCursorDoc = Vorlage.getfirstdocument
   Set StandardAntwort = noteCursorDoc.getfirstitem("Body")
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()
   
   While Not(doc Is Nothing)
      Set replytodoc = uiws.editdocument(False,doc)
      Set newdoc = uiws.ComposeDocument("","","Reply with history")
      Call newdoc.save
      Call replytodoc.Close(True)
      
      Set doc2 = newdoc.document
      Set OriginalMail = doc2.getfirstitem("Body")
      Set body2 = New NotesRichTextItem(doc2,"Body2")
      Call body2.appendrtitem(OriginalMail)
      Call doc2.removeitem("body")
      
      Set rt = New NotesRichTextItem(doc2,"Body")
      Call rt.appendrtitem(StandardAntwort)
      Call rt.appendrtitem(body2)
      Call doc2.removeitem("body2")
      doc2.ZuVersenden="1"
      doc2.save True, True
      doc2.saveoptions="0"
      
   'Bis hierhin OK
      ' Das Problem ist die Mail, welche manuell geschlossen werden muss
      Call newdoc.Close(True)
      
      Call session.UpdateProcessedDoc(doc)
      Set doc = collection.GetNextDocument(doc)
   Wend
End Sub
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: koehlerbv am 29.06.11 - 11:02:35
Warum machst Du das über das Frontend und nicht über das Backend?

Bernhard
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: markus_mgd am 29.06.11 - 11:13:11
An der Umsetzung von Frontend in Backend hatte ich mir schon vorher mal die Zähne ausgebissen. Meine Kenntnisse sind leider ziemlich schlecht was Frontend / Backend angeht. Mein Code ist aus verschiedenen Codes zusammenkopiert.

Vielleicht kannst du mir sagen, was ich dann genau umstellen muss. Ich wäre dir sehr dankbar.

Markus
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: markus_mgd am 29.06.11 - 11:46:02
@Bernhard

Also vielleicht noch mal deutlicher gefragt.
Wie kann ich denn
     Set newdoc = uiws.ComposeDocument("","","Reply with history")
von Frontend auf Backend umstellen?

Markus
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: koehlerbv am 29.06.11 - 11:50:29
Das wäre eine Kombination aus
- NotesDatabase.CreateDocument
- erforderliche Items belegen
- Rückantworttext im Body erzeugen (NotesRichtextItem.AppendText etc.)
- "Ankleben" des Ursprungs-Mailbodys (NotesRichtextItem.AppendRTItem)

HTH,
Bernhard
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: markus_mgd am 29.06.11 - 11:52:16
Danke für deine Antwort. Ich werde mal mein Glück versuchen.

Bis dann
Markus
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: Tode am 29.06.11 - 12:01:23
im Frontend hat das wirklich nichts zu suchen... Aber wenn Du das mal wirklich brauchst, dann experimentier mal mit den Feldern SaveOptions = "0" bzw. MailOptions = "0"...

Gruss
Titel: Re: Mail schließen ohne das Fenster "Mail senden" zu erhalten
Beitrag von: markus_mgd am 29.06.11 - 12:52:47
 :) Danke Tode!

Ich habe doch über Frontend lösen müssen und einfach nur
    doc2.MailOptions="0"
und
    Call newuidoc.Refresh
eingebaut.

Ist sicherlich nicht schön, aber genau das was ich brauche.

Markus