Autor Thema: Datums-Agent Benachrichtigung  (Gelesen 1873 mal)

Offline niteshift

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Datums-Agent Benachrichtigung
« am: 06.02.04 - 22:42:42 »
Hallo zusammen.
Ich habe in Formularen Datumsfelder, wo man z.B. Deadlines erfasst. Ein Agent soll nun, wenn das Datum, welches erfasst wurd, dem Autor, welches das Form erfasst hat, eine Mail-Mitteilung senden, dass das Deadline erreicht ist und er nun z.B. eine Zahlung machen muss, oder was auch immer gewünscht wird.

Hat jemand schon so einen Agent eingerichtet?

Ich bin zwar mit dieser DB schon ziemlich weit gekommen, bin aber was Agents, Formeln und Scripts angeht, noch sehr unerfahren.

Vielen Dank für die Hilfe.
« Letzte Änderung: 06.02.04 - 22:43:27 von niteshift »
Centerdesk GmbH
Digital Services

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Datums-Agent Benachrichtigung
« Antwort #1 am: 08.02.04 - 11:32:13 »
Hi,

das ist relativ einfach. Du brauchst einen getriggerten Agent, der einmal am Tag läuft, beisplielsweise um 5:00 Uhr. Der überprüft dann das Datum und sendet die Mails.

Ich hab so was ähnliches schon mal gemacht.
Der Agent könnte grob so aussehen:

Zitat
Sub Initialize
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument   
   Dim docMail As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim strSearch As String
   
   On Error Goto ErrorHandler
   
   Print "Agent ""CheckStatus"" wurde gestartet."
   
   Set db = session.CurrentDatabase
   
   'Suche alle Dokumente mit der Makse frmAufgabe und die im Feld FaelligAm das heutige Datum enthalten
   strSearch = {@Contains(xForm; "frmAufgabe") & @Today = @Date(FaelligAm)}
   
   Set collection = db.Search(strSearch, Nothing, 0)
   
'   Messagebox Str(collection.count)
   Print "Agent ""CheckStatus"" hat " & Str(collection.count) & " Dokument(e) zur Bearbeitung gefunden."
   
   If ( collection.Count > 0 ) Then
      Set docMail = New NotesDocument(db)
      docMail.Form = "Memo"
      docMail.SendTo = doc.User
      docMail.Subject = "Überfällige Aufgabe(n)"
      Set rtitem = New NotesRichTextItem(docMail, "Body")
      Call rtitem.AppendText("Folgende Aufgabe(n) wurde(n) nicht bis zum Fälligkeitsdatum abgeschlossen:")
      Call rtItem.AddNewLine(2, True)
      
      Call rtitem.AppendDocLink(docTmp,"")
      Call docMail.Send(False)
      
   End If  'If ( collection.Count > 0 ) Then
   
   
   Print "Agent ""CheckStatus"" wurde erfolgreich beendet."
   Exit Sub
   
ErrorHandler:
   Print "Agent ""CheckStatus"" wurde mit dem Fehler " & Cstr(Err) & " -> " & Error$(Err) & " beendet."
   Exit Sub
   
End Sub


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Datums-Agent Benachrichtigung
« Antwort #2 am: 08.02.04 - 12:06:05 »
Ich würde die db.Search expression so machen:
strSearch = {@Contains(xForm; "frmAufgabe") & @Today <= @Date(FaelligAm) & fSchonBearbeitet!="1"}

und unten durch die Schleife der gefundenen Dokumente iterieren und für jedes Dokument doc.fSchonBearbeitet="1"

Das erhöht die Robustheit der Anwendung, wenn der Agent einen Tag mal nicht läuft.
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Datums-Agent Benachrichtigung
« Antwort #3 am: 08.02.04 - 12:25:05 »
... und dann das Ganze nicht mit NotesDatabase.Search machen, sondern dafür eine (versteckte) Ansicht bauen, die nur die Dokumente beinhaltet, die für den Agent in Frage kommen. Das geht flotter - und kann auch besser beobachtet werden.

HTH,
Bernhard

Offline niteshift

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re:Datums-Agent Benachrichtigung
« Antwort #4 am: 08.02.04 - 20:07:45 »
 :) Ich danke Allen für die tolle Unterstützung. Werde den Agenten gleich mal aufbauen (sobald mein Notebook wieder richtig läuft - Homedrive ist weg) und dann berichten.

Gruss, Paul
Centerdesk GmbH
Digital Services

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Datums-Agent Benachrichtigung
« Antwort #5 am: 09.02.04 - 08:30:32 »
@Axel_Janssen

So was habe ich bei mir eingebaut. Der Agent stammt aus einer ToDo-Datenbank, der an Cheffe ein Mail mit überfälligen ToDos schickt. Ich hab das nur rausgelöscht um den Code allgemeingültiger zu halten.

Diesen Zusatz darf man aber nur dann einbauen, wenn die Benachrichtigung nur einmal erfolgen soll.


@Bernhard

Wenn du das mit einer Ansicht machen willst, die nur die in Frage kommenden Dokumente beinhaltet, musst du @Today in die Select-Formel aufnehmen und wir alle sollte wissen, dass @Today und @Now nicht in eine Ansichtenformel gehören.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz