Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: renele am 09.12.04 - 09:39:44
Titel: JavaAgent - Probleme
Beitrag von: renele am 09.12.04 - 09:39:44
Hallo,
Java kann ich programmieren, aber wenn dann noch Notes hinzu kommt, tauchen Probleme auf.....
1.Wenn ich in einem Agent eine Ausgabe ansteuer (System.out.println(...)), wo wird diese angezeigt?
2. Mittels View kann ich ja einen Sicht auf eine Maildatenbank bekommen - nimmt man hier die englische oder deutsche Bezeichnung für die Sicht (also "All Documents" oder "Alle Dokumente")?
3. Ich möchte eine Agent beim Eintreffen einer neuen Mail starten. Dieser soll prüfen, ob "Betreff" in der Form "Info xyz" besteht, wenn ja, soll er die Information "xyz" holen (Java greift hier auf einen externe Datenbank zu und holt Infos) und an "From", den Sender der Mail also, zurückschicken. Wenn das erledigt ist, soll er die Mail in einen Ordner verschieben (demnach dürfte man nicht "All documents" als View nehmen.....)!
Ich habe eine deutsche Version von Notes (hier im Geschäft)!
Gruß René
Titel: Re: JavaAgent - Probleme
Beitrag von: Marinero Atlántico am 09.12.04 - 09:45:57
zu 1: Datei\Extras Java Debug Konsole anzeigen. zu 2: Alias der View in Domino Designer. Wenn kein Alias, dann normaler Name. In Domino Menü Element der DB Ansichten anklicken. zu 3: als Forums-Frage für meinen Geschmack zu wenig fokussiert/zu grobgranular.
Gruß Axel
Titel: Re: JavaAgent - Probleme
Beitrag von: Semeaphoros am 09.12.04 - 09:53:27
Uebersetzung von Axels Antwort zu 3:
Das ist ein realisierbares Konzept, was ist eigentlich Deine Frage?
Genau, das möchte ich auch wissen.
Titel: Re: JavaAgent - Probleme
Beitrag von: renele am 09.12.04 - 10:05:09
Hallo,
wow - bin überrascht, wie schnell eine Antwort kam.
zu 3.: Ich weiß nicht, wie ich an die Felder (an die Mail an sich und an Betreff/Thema, Von,...) der ankommenden Mail herankomme..... Der Agent soll keine komplette Sicht "durchwühlen", sondern nur das angekomme Dokument. Wie macht man das?
Wenn ich den Betreff/Thema in einen String speichern kann, kann ich auch meine Java-Klasse starten, die die Daten "besorgt".
Hab mal ein wenig getestet und folgenden Code erstelllt. Wie man sieht, habe ich Probleme mit den "Benamsungen" der Mail-Felder, da ich hier nur einen Client habe.......
Wenn man die Klasse durchschaut, habe ich bereits ein Gerüst, aber das funktioniert nicht so richtig..... leider! Warum?
import lotus.domino.*;
public class JavaAgent extends AgentBase{ public void NotesMail(){ try{ Session session = getSession(); AgentContext agentContext = session.getAgentContext(); DbDirectory dir = session.getDbDirectory(null); Database db = dir.openMailDatabase(); View view = db.getView("All"); Document doc = view.getFirstDocument(); while(doc!=null) { String von = doc.getItemValueString(("From")); String betreff = doc.getItemValueString(("Betreff"));
// if(betreff.startsWith("Info")){
//externe Klasse starten //hier wird dann die Klasse aufgerufen, die die Infos besrorgt
Titel: Re: JavaAgent - Probleme
Beitrag von: Marinero Atlántico am 09.12.04 - 10:33:58
s. Attachments für Agenteneinstellung. Smarticon gelbe Raute ganz links gibt dir eine Eigenschaftenbox. Dort Dokument/2. Reiter werden die Feldnamen + Wert des Feldes angezeigt. Solltest aber wirklich darüber nachdenken, eine Domino/LotusScript Einführung lesen (kenne jetzt keine).
Titel: Re: JavaAgent - Probleme
Beitrag von: Semeaphoros am 09.12.04 - 10:37:11
Die Designer-Hilfe ist dazu bestens geeignet für jemanden, der Erfahrung hat.
Titel: Re: JavaAgent - Probleme
Beitrag von: renele am 09.12.04 - 11:06:09
Hat man eine Konsole, wird das schon etwas durchsichtiger....
aber das will trotzdem nicht so recht!!!!
Habe über die Agent-Ansicht den Agent gestartet und mir Daten in der Console ausgeben lassen.
Bei der Zeile
Document doc = view.getFirstDocument();
steigt er mit einer NullPointerException aus! (neue Emails sind definitiv vorhanden...!!!!)
Folgende Meldung:
java.lang.NullPointerException at JavaAgent.NotesMain(JavaAgent.java;15) at lotus.domino.AgentBase.runNotes(Unknown Source) at lotus.domino.NotesThread.run(Notes Thread.java:208)
Titel: Re: JavaAgent - Probleme
Beitrag von: Marinero Atlántico am 09.12.04 - 11:49:22
view ist null.
Code
View view = db.getView("($All)");
// so heisst die nicht: View view = db.getView("All");
Mit einem Designer kannst du das sehr einfach sehen wie die views heissen.
Titel: Re: JavaAgent - Probleme
Beitrag von: Marinero Atlántico am 09.12.04 - 11:55:12
Les dir auf jeden Fall zumindest Teile von: http://www-128.ibm.com/developerworks/lotus/library/ls-Java_access_2/index.html (und ggbfls Teil 1) Da gibt es ein Kapitel "Recycling", das definitiv kein Spass ist. Unbedingt benutzen.
Titel: Re: JavaAgent - Probleme
Beitrag von: renele am 09.12.04 - 12:19:11
Danke für die vielen Infos, irgendwie hats dann mit
db.getView("$All") geklappt.
Die Views habe ich mir mit
System.out.println(db.getViews()) in der Konsole ausgeben lassen.