Autor Thema: aktuelles Dokument des Agenten bekommen  (Gelesen 2815 mal)

Offline dia

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • |_ |\|
aktuelles Dokument des Agenten bekommen
« am: 14.01.04 - 09:35:03 »
Also ich habe einen Agenten, der nach Eingang neuer Mail startet. Nun will ich in diesem Agenten aus der Mail die den Agenten zum starten gebracht hat etwas auslesen. Wie komme ich nun aber am einfachsten an dieses Dokument. Ich könnte mir von allen Dokumenten das neueste raussuchen. Aber gibt es da nicht eine elegantere Möglichkeit?

Danke

Glombi

  • Gast
Re:aktuelles Dokument des Agenten bekommen
« Antwort #1 am: 14.01.04 - 09:47:16 »
Das geht mit Script:

dim session as New NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
set db = session.CurrentDatabase
set dc = db.UnprocessedDocuments

Dann stehen in dc alle NotesDocumente drin. Du kannst dann mit einer Schleife über die Docs iterieren.

Andreas

Offline dia

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • |_ |\|
DocumentCollection?
« Antwort #2 am: 14.01.04 - 10:08:13 »
Kann ich denn davon ausgehen, dass in der DocumentCollection dann nur das eine Dokument drin ist, dass den Agenten ausgelöst hat? Dieses Dokument würde dann abgearbeitet werden. Und wenn dann eine weitere Mail eingeht startet der Agent ja erneut und erstellt wieder eine Collection in der wiederum nur das eine Dokument enthalten ist, das den Agenten praktisch gestartet hat. Oder ist es auch irgendwie möglich, dass mehrer Dokumente in die Collection geraten?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:aktuelles Dokument des Agenten bekommen
« Antwort #3 am: 14.01.04 - 10:12:43 »
Da diese Agenten von Domino bewusst mit Abstand gestartet werden (lässt sich in der ini einstellen), und da ja mails innerhalb von Bruchteilen von Sekunden ankommen können, ist es durchaus möglich, dass da ein ganzes Büschel von neuen Mails ankommt. Das sollte aber nicht wirklich ein Problem sein, Du kannst ja die Collection durchlaufen.

Noch was, wenn man so einen Agenten deaktiviert und wieder neu aktiviert oder irgend eine Aenderung daran vornimmt, kommt es vor, dass bereits abgearbeitete Mails noch einmal als geliefert werden. Es muss also zusätzlich noch ein Mechanismus eingebaut werden, der verhindert, das Mails mehr als einmal verarbeitet werden.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:DocumentCollection?
« Antwort #4 am: 14.01.04 - 10:14:25 »
Kann ich denn davon ausgehen, dass in der DocumentCollection dann nur das eine Dokument drin ist, dass den Agenten ausgelöst hat? Dieses Dokument würde dann abgearbeitet werden. Und wenn dann eine weitere Mail eingeht startet der Agent ja erneut und erstellt wieder eine Collection in der wiederum nur das eine Dokument enthalten ist, das den Agenten praktisch gestartet hat.
Das ist korrekt, also geht es so:
dim session as New NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
dim doc as NotesDocument
set db = session.CurrentDatabase
set dc = db.UnprocessedDocuments
set doc = dc.GetFirstDocument

Ich hatte das mit Paste-In verwechselt, da kann man ja auch mehrere einfügen. Um sicher zu gehen und Code nicht mehrfach zu entwickeln, arbeite ich aber immer nur mit Collections und einer Schleife.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:aktuelles Dokument des Agenten bekommen
« Antwort #5 am: 14.01.04 - 10:16:01 »
Um die abgearbeiteten Dokumente von einer erneuten Bearbeitung durch diesen Agent zu schützen, verwendet man am besten die Notes-Bordmittel:
Call notesDocumentCollection.UpdateAll

HTH,
Bernhard

Glombi

  • Gast
Re:aktuelles Dokument des Agenten bekommen
« Antwort #6 am: 14.01.04 - 10:16:57 »
@Jens:
"Noch was, wenn man so einen Agenten deaktiviert und wieder neu aktiviert oder irgend eine Aenderung daran vornimmt, kommt es vor, dass bereits abgearbeitete Mails noch einmal als geliefert werden. Es muss also zusätzlich noch ein Mechanismus eingebaut werden, der verhindert, das Mails mehr als einmal verarbeitet werden."

Bist Du sicher, dass das auch für Mail-In Agenten so ist? Ich bin davon ausgegangen, dass das den Trigger "Alle noch nicht bearbeiten Dokumente" gilt. Dann muss man in der Tat immer noch
Call notesSession.UpdateProcessedDoc( notesDocument )
aufrufen.

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:aktuelles Dokument des Agenten bekommen
« Antwort #7 am: 14.01.04 - 10:20:02 »
Leider ist das so. Schlechte Erfahrungen haben mich das gelehrt. Gemäss Julie Kasadevich ("Misses Agent") sind die AfterNewMail nichts anderes als spezialisierte "Modified" Agenten. Ich kann Dir aber nicht mehr genau sagen, in welchen Situationen genau die Mails ein weiteres Mal kommen. Ich hab jedenfalls schon Berge von Notifikationen bekommen, wenn ich in einer Mail-In-DB den entsprechenden Warn-Agenten neu aufgeheheitzt hatte.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:aktuelles Dokument des Agenten bekommen
« Antwort #8 am: 14.01.04 - 10:27:04 »
Gut zu wissen, danke für die Info!

Ein Fall für die Best Practices? Ich denke mal.

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:aktuelles Dokument des Agenten bekommen
« Antwort #9 am: 14.01.04 - 10:28:46 »
Denke ich auch, in dem Bereich gibt es noch vieles, das man in die Best Practices reinsetzen könnte.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:aktuelles Dokument des Agenten bekommen
« Antwort #10 am: 14.01.04 - 10:29:08 »
Noch was: Wenn ich einen Agenten deaktiviere und dann wieder aktiviere, ist es ja so, als ob ich den neu gemacht hätte. Also sind von dem Agenten noch keine Dokumente bearbeitet worden.
Deckt sich das mit Deinen Erfahrungen?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:aktuelles Dokument des Agenten bekommen
« Antwort #11 am: 14.01.04 - 11:10:40 »
Ja, ist glaube ich auch irgendwo dokumentiert (oder dann hat es Julie irgendwo in einem Forum fallen lassen, ist also "as designed"). Für Modified macht das irgendwo auch Sinn, denn schliesslich verändert sich ja möglicherweise die Logik, wenn man einen James Bond bearbeitet.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz