Das Notes Forum
Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: jor am 01.02.06 - 11:36:13
-
Hallo zusammen,
ich möchte per Java-Agent, Laufzeit: Nach Eingang neuer Mail, das grade eingegangene
Dokument in ein Neues kopieren und dann an eine zweite Adresse des Benutzers ver-
schicken. Hat jemand dazu einen Vorschlag?
Ansonsten möchte ich das per Java-Agent realisieren, bin mir aber im Moment nicht sicher,
wie ich die gerade aktuell eingegangene EMail heranziehe (also doc = ....)
Wichtig ist natürlich, dass das einmal bearbeitete Dokument kein zweites Mal mit verschickt wird,
aber wenn zwei Dokumente "annähernd" zeitgleich reinkommen, auch diese beiden Doks
abgearbeitet werden.
Die Notes eigene Weiterleitungsadresse, konfiguriert im DD, kann ich nicht einsetzen!
Danke schonmal!
-
Und warum mit Java?
Auf jeden Fall mal das Dokument zum "AgentContext" anschauen in der Designerhelp (getUnprocessedDocuments)
:-)
und dann gleich wie mit LS getFirst... und getNext...
-
Hi umi,
eigentlich weil .... nun ich möchte noch ein wenig mit Java proggen, ginge natürlich auch mit
Lotus Script. Wo bei die Hilfe unter LS noch ein wenig besser ist, zumal wenn man die
automatische Vervollständigung mit einbezieht!
-
Jep,
aber mit "getUnprocessedDocuments" bekomme ich dann beim zweiten Durchlauf wirklich nur die Dokumente, die "Neu" sind? Ich bin mir nicht sicher, da ich meine gelesen zu haben, das neu und
geänderte Dokumente angezogen werden???....
-
ich denke schon, wenn der Agent via "updateProcessedDocs" die geänderten markiert hat.
-
Ich versuche es mal, danke Urs!
-
Hi Urs,
wenn Du im Backend Dokumente veränderst und speicherst kannst du als Parameter für die save()-Funktion auch angeben, ob die Ungelesen-Markierung wieder gesetzt werden soll.
UnprocessedDocuments geht meines Wissens nach wirklich auf alle Dokumente, die die Ungelesen-Markierung haben.
Thomas
Edit: Das ist in LS und in der Java-API gleich
-
Unprocessed Documents hängt davon ab was für ein Typ Agent es ist. (Agent runs on)
siehe DesignerHelp.
-
Stimmt auffallend. Da war ich aber völlig daneben!*erröt* :-[
-
Bin nochmal da, jep, der Code funzt, das mit dem get... ist prima. Der Agent hat auch nur die
Dok's bearbeitet, die wirklich neu sind.
Aber... leider mault mich das Notes beim Öffnen der Weitergeleiteten Memos wie folgt an:
"Eine gespeicherte Maske darf keine berechneten Teilmasken enthalten."
Ich nutze folgenden Script, aus der Hilfe, nur etwas angepasst:
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
String Empfänger = "Gustav Gans/Vertrieb/xxxxxxxxx";
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
while (doc != null)
{
//System.out.println(doc.getItemValueString("Subject"));
Document memo = db.createDocument();
memo.appendItemValue("Form","Memo");
memo.appendItemValue("Subject", doc.getItemValueString("Subject"));
memo.replaceItemValue("SendTo",Empfänger);
RichTextItem rti = memo.createRichTextItem("Body");
doc.renderToRTItem(rti);
Vector v = new Vector();
v.addElement(Empfänger);
memo.setEncryptOnSend(false);
memo.setSaveMessageOnSend(false);
memo.setSignOnSend(false);
memo.send(true, v);
agentContext.updateProcessedDoc(doc);
doc = dc.getNextDocument();
}
}
Hat jemand von euch noch eine Idee?
-
Hi auf den ersten Blick würde ich mal auf das
memo.send(true,v); tippen.
Da wird doch das Form mitgeschickt, wenn Du den 1. Parameter auf true setzt.
Versuch doch mal
memo.send(v);
-
Hi Urs,
aaahhh hhhaa, das werde ich direkt morgenfrüh ausprobieren!
Vielen Dank!