Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: jor am 01.02.06 - 11:36:13

Titel: Neue Dok-Kopie per Java-Agent versenden
Beitrag 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!
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: umi am 01.02.06 - 13:07:50
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...
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: jor am 01.02.06 - 13:50:26
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!


Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: jor am 01.02.06 - 14:09:27
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???....

Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: umi am 01.02.06 - 15:11:48
ich denke schon, wenn der Agent via "updateProcessedDocs" die geänderten markiert hat.
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: jor am 01.02.06 - 15:29:57
Ich versuche es mal, danke Urs!
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: Thomator am 01.02.06 - 15:36:03
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
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: umi am 01.02.06 - 15:46:13
Unprocessed Documents hängt davon ab was für ein Typ Agent es ist. (Agent runs on)
siehe DesignerHelp.
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: Thomator am 01.02.06 - 16:48:15
Stimmt auffallend. Da war ich aber völlig daneben!*erröt* :-[
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: jor am 01.02.06 - 17:03:07
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?
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: umi am 02.02.06 - 14:29:46
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);
Titel: Re: Neue Dok-Kopie per Java-Agent versenden
Beitrag von: jor am 02.02.06 - 18:57:53
Hi Urs,

aaahhh hhhaa, das werde ich direkt morgenfrüh ausprobieren!

Vielen Dank!