Autor Thema: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen  (Gelesen 5918 mal)

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Hallo zusammen,

bei uns werden Notes-Mails einzeln in einer Notes-Datenbank archiviert. Nun möchte ich die abgelegten Datenbanken nicht einzeln öffnen (dieses Vorgehen erzeugt für jede Mail eine Kachel im Workspace), sondern über ein anderes Vorgehen (welches mir leider noch nicht ganz klar ist) dem Benutzer anzeigen lassen. Dies soll (wenn möglich?) alles ohne Agenten mittels Java umgesetzt werden. Die zu öffnende Mail befindet sich zu dem Zeitpunkt nicht in einem Postfach des Benutzers.

Und zwar soll es neben den diversen Datenbanken mit jeweils einem Mail-Dokument darin eine zentrale Datenbank geben, in die die zu öffnende Mail bzw. das jeweilige Dokument kopiert wird. Über diese zentrale Datenbank soll nun das Dokument angezeigt werden. Das Holen des Dokuments und umkopieren in die zentrale Mail-Datenbank funktioniert meines Erachtens. Die Frage ist nun, wie ich das Dokument (wie gesagt mittels Java) nun in Notes angezeigt bekomme?! Was muss jeweils gesetzt werden (Form, View, Dokumententyp, ...)?

Vielen Dank im Voraus!
Es grüßt,
der Martin

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #1 am: 14.12.10 - 13:44:34 »
Wo soll "das Java" drinnen sein? In einem Agenten?

Um ein Dokument aus einer Notes-Dantenbank zu lesen, muss diese mal geöffnet werden. Ev. funktioniert das ohne Kachel anlegen, indem Du das Dokument zuerst aus der zentralen Datenbank temporör in eine lokale kopierst und von dort dann öffnest - dann hast Du nur von der lokalen DB eine Kachel am Workspace.

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #2 am: 14.12.10 - 14:01:01 »
Wo soll "das Java" drinnen sein? In einem Agenten?
Das Ganze läuft in einer eigenen Java-Anwendung (weder LotusScript-, noch Java-Agent), die im Prinzip nichts mit Notes zu tun hat... Durch ein Event wird das Öffnen der Mail ausgelöst.

Wie gesagt, öffnen und lesen der Datenbank mit dem einen Dokument funktioniert. Auch das Umkopieren der Mail in die zentrale Mail-Datenbank (unabhängig von den durch Notes angelegten Mail-Datenbanken) zum Öffnen scheint zu klappen. Lediglich der Befehl zum Öffnen des Dokuments zur Anzeige im Notes-Client fehlt mir. So wie ich das sehe (berichtigt mich), läuft das über "NotesUIWorkspace.Editdocument(...)"?!
Es grüßt,
der Martin

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #3 am: 14.12.10 - 14:19:51 »
Habe ich es doch vermutet :D

MIt Java hast Du - wie mit COM - nur Zugriff auf die so genannten Backend-Klassen von Notes, nicht auf de Frontend-Klassen (also alles mit NotesUI* am Anfang). Das sieht man auch schön in der Notes Designer-Hilfe, wo bei den NotesUI Klassen die Java-Klassen nicht aufgeführt sind, bei den Backend-Klassen jedoch schon.

Einfachste Methode wäre, wenn Du einen notes:// Link (Details in der Designer-Hilfe oder hier im Forum) zusammenbaust und anzeigst. Durch einen Klick darauf geht das Dokument dann im Notes-Client auf - allerdings mit Anlegen der entsprechenden DB-Kachel am Workspace (das ist halt so).

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #4 am: 14.12.10 - 16:16:08 »
Kacheln will ich ja gerade nicht haben... Wenn der Link auf die zentrale Mail-DB zeigt, funktioniert das ja auch. Aber wie kann ich den Link programmatisch ausführen?

Ach ja, und wie schaffe ich es nun die Mail programmatisch anzuzeigen. Darum geht es mir ja eigentlich. Muss ich dafür einen Agenten verwenden oder hab ich noch andere Möglichkeiten?

Vielen Dank schon mal für die bisherigen Antworten!
« Letzte Änderung: 14.12.10 - 16:18:48 von masher »
Es grüßt,
der Martin

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #5 am: 14.12.10 - 16:22:32 »
M3 hat dir doch die Lösung schon gesagt, du musst einen Link mit "notes://..." aufbauen und dann diesen einfach aufrufen. Wenn dein Notes richtig installiert ist, wird es die URL öffnen und die Mail anzeigen. Funktioniert bei mir einwandfrei. Wo hast du noch Probleme, bzw. Poste einfach mal deinen Code in dem du das Mail öffnest dann kann man sicher besser helfen.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #6 am: 15.12.10 - 09:40:04 »
Jetzt hab ich mir so einen Notes-Link zusammengebastelt.... bei der Ausführung wird jedoch nicht die Mail-Ansicht (die ja das Doc ist) geöffnet, sondern das gesamte Postfach. Und dabei wird auch die geöffnete Mail nicht angezeigt. Stimmt da jetzt was mit der Form oder sonstigen Einstellungen an der Datenbank nicht?
Es grüßt,
der Martin

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #7 am: 15.12.10 - 10:03:24 »
Wie wäre es wenn du mal die Notes URL postest.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #8 am: 15.12.10 - 11:17:15 »
Wenn die URL hilft, gerne:
Code
notes:///MailContainer.nsf/0/C12577F5003BE607C12577E500404908?OpenDocument

Hier der Quelltext, mit dem ich versuche das Ganze umzusetzen:
Code
			NotesThread.sinitThread();
			Session nSessLocal = NotesFactory.createSessionWithFullAccess();

			// Load database with mail which should be displayed
			Database currentMailDb = nSessLocal.getDatabase(null, unzippedMailPath, false);
			if (!currentMailDb.isOpen()) {
				currentMailDb.open();
			}
			Document mailDoc = currentMailDb.getAllDocuments().getLastDocument();
			mailDoc.replaceItemValue("LotusNotesForm", "Memo");
			mailDoc.save();
			
			// Get database where the document should be copied in
			Database showMailDb = nSessLocal.getDatabase(null, "C:\\temp\\MailContainer.nsf", true);
			if (!showMailDb.isOpen()) {
				showMailDb.open();
	        }
			// delete all previous inserted documents
			showMailDb.getAllDocuments().removeAll(true);

			mailDoc.copyToDatabase(showMailDb);
			
			String urlstring = "notes://" + showMailDb.getServer() + "/" + showMailDb.getFileName() +"/0/" + mailDoc.getUniversalID()+"?OpenDocument";
			URL url = new URL(urlstring);
			Desktop.browse(url);
			
			NotesThread.stermThread();
Es grüßt,
der Martin

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #9 am: 15.12.10 - 11:33:46 »
Ich denke mal dein Notesurl ist falsch. Du musst dir das auch gar nicht selber zusammenbauen.

ein Einfaches mailDoc.getNotesURL() sollte dir das richtige URL geben.


Wobei meiner Meinung nach hast du auch noch einen Fehler bei der mailDoc.copyToDabase(showMailDb)

Die Zeile sollte eigentlich
mailDoc=maiDoc.copyToDatabase(showMailDb); lauten.

Sonst hast du in mailDoc noch immer dein nicht kopiertes Mail. Das wird ziemlich sicher der Grund sein, warum es nicht funktioniert. Übrigens hoffe ich mal, dass du den Code nicht wirklich so laufen lässt. Den ohne Errorhandling und zuverlässigen Abschluss des NotesThread wird dein Client sicher ab und zu abstürzen.

Grüße

Ralf



Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #10 am: 15.12.10 - 11:43:28 »
Vielen Dank für die Antwort!

Aber egal wie ich es mache, das Verhalten ist das Gleiche. Anstatt das Mail-Dokument zu öffnen wird nur das Mail-Postfach geöffnet. Gibt es irgendwelche Voraussetzungen, die der MailContainer (showMailDb) hinsichtlich Views oder Launch-Einstellungen zu erfüllen hat? Oder woran könnte es sonst liegen? Sollte ich vielleicht doch einen Agenten nutzen?

Exception-Handling is da. Dargestellt sind ja nur die prägnanten Stellen.
Es grüßt,
der Martin

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #11 am: 15.12.10 - 11:51:45 »
Kannst du nochmal den aktuellen Code posten. Es muss noch irgendwo ein anderer Fehler sein.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline masher

  • Frischling
  • *
  • Beiträge: 12
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #12 am: 15.12.10 - 12:01:38 »
Klar, aber es hat sich nicht viel geändert:

Code
			NotesThread.sinitThread();
			Session nSessLocal = NotesFactory.createSessionWithFullAccess();

			// Load database with mail which should be displayed
			Database currentMailDb = nSessLocal.getDatabase(null, unzippedMailPath, false);
			if (!currentMailDb.isOpen()) {
				currentMailDb.open();
			}
			Document mailDoc = currentMailDb.getAllDocuments().getLastDocument();
			mailDoc.replaceItemValue("LotusNotesForm", "Memo");
			mailDoc.save();
			
			// Get database where the document should be copied in
			Database showMailDb = nSessLocal.getDatabase(null, "C:\\temp\\MailContainer.nsf", true);
			if (!showMailDb.isOpen()) {
				showMailDb.open();
	        }
			// delete all previous inserted documents
			showMailDb.getAllDocuments().removeAll(true);

			mailDoc = mailDoc.copyToDatabase(showMailDb);
			
			URL url = new URL(mailDoc.getNotesURL());
			Desktop.browse(url);
			
			NotesThread.stermThread();

Die Notes URL sieht jetzt wie folgt aus: notes:///__C125768200274FA8.nsf/0/C125768200274FA8C12577E500404908?OpenDocument

Ach ja, das Ganze läuft ohne Exception durch...
« Letzte Änderung: 15.12.10 - 12:05:48 von masher »
Es grüßt,
der Martin

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Notes Mail (mit Java) aus gespeicherter Datenbank öffnen
« Antwort #13 am: 15.12.10 - 12:36:51 »
Die MailContainer.nsf hat im Design eine Default-View?

Ich würde nicht maildoc nochmal verwenden, sondern eine neue Document Instanz dafür verwenden - just to be sure.

removeAll würde ich mir - vom Performancestandpunkt her - nochmal überlegen.

Leg die showMailDB mal
a) ins NotesDatenverzeichnis (also relativ addressiert)
b) auf den Server
und schau, ob der Link dann funktioniert.

Ev. Solltest Du auch vor dem Desktop.browse(url) der DB noch sagen, dass sie iher Views, ... aktualisieren soll. Ev. findet er das frisch erstellte Dokument nicht (wenn es eine Default View gibt).
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz