Autor Thema: agent email zeitintervall  (Gelesen 5084 mal)

Offline Dadum

  • Frischling
  • *
  • Beiträge: 11
agent email zeitintervall
« am: 26.02.08 - 15:52:47 »
Hallo zusammen

ich habe einen agenten geschrieben, der eine komplette datenbank der dokumente nach bedingungen absucht, und mir bei einem treffer eine email generiert.

da der agent täglich läuft und ich so mit email überschüttet werden, möchte ich wissen, ob es da nicht eine lösung gibt, damit ich nur pro dokument alle 30 tage eine email bekomme...

vllt weiß jemand rat...
Danke
Gruß

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: agent email zeitintervall
« Antwort #1 am: 26.02.08 - 16:00:53 »
Du kannst im Zeitplan des Agenten einstellen, dass er nur einmal im Monat läuft.


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

Offline Dadum

  • Frischling
  • *
  • Beiträge: 11
Re: agent email zeitintervall
« Antwort #2 am: 26.02.08 - 16:10:50 »
Hallo
Danke für die Antwort, aber ich glaube ich habe meine frage nicht ganz so genau gestellt

Ich habe in der Datenbank viele Dokumente, diese haben alle ein unterschiedliches Datum (z.B. wann sie ablaufen...)
Wenn ich nun den Agenten nur einmal im Monat laufen lasse, dann könnte es sein, der ich so nicht rechtzeitig gewarnt werde

Gruß Michi
« Letzte Änderung: 26.02.08 - 16:12:50 von Dadum »

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: agent email zeitintervall
« Antwort #3 am: 26.02.08 - 16:16:43 »
Heißt das, dass du pro Agentenausführung nur ein Mail bekommen willst, auch wenn z.B. 10 Dokumente abgelaufen sind?


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

klaussal

  • Gast
Re: agent email zeitintervall
« Antwort #4 am: 26.02.08 - 16:26:06 »
Ich denke mal, dass sich der Agent jeden Tag die Dokumente schnappt, die in ein gewisses Zeitfenster fallen und dann das Mail/die Mails verschickt. Das macht er natürlich jeden Tag, bis dass die Bedingung nicht mehr erfüllt ist.

Also: Flag setzen, dass für dieses Doc schon ein Mail verschickt worden ist.

Offline Dadum

  • Frischling
  • *
  • Beiträge: 11
Re: agent email zeitintervall
« Antwort #5 am: 26.02.08 - 16:29:40 »
Heißt das, dass du pro Agentenausführung nur ein Mail bekommen willst, auch wenn z.B. 10 Dokumente abgelaufen sind?

Nein

Ich versuche es anhand eines Beispiels zu erklären:

Ich habe in die Datenbank 2 Dokumente (es geht um Verträge) eingetragen
Dokument 1: Der früheste Kündigungstermin ist der 25.04.08
Dokument 2: Der früheste Kündigungstermin ist der 25.03.08

Der Agent läuft nun jeden Tag, er soll mir nun eine Email generieren, wenn das Datum des frühesten Kündigungstermins sich in folgendem Zeitraum befindet:
Heute + 90 Tage
Da der Agent aber jeden Tag läuft, so wird er mir bei dem Beispiel jeden Tag 2 Emails schreiben.

Jetzt ist meine Frage, ob ich im Agenten nicht definieren kann, das er mir nicht jeden Tag eine Email schreibt, sondern nur alle 30 Tage

Er muss vom Datum des frühesten Kündigungsdatum ausgehen
frühester Kündigungstermin +30 Tage = Email
frühester Kündigungstermin + 35 Tage = keine Email
frühester Kündigungstermin + 60 Tage = Email

Gruß Michi

Also: Flag setzen, dass für dieses Doc schon ein Mail verschickt worden ist.

Wie setze ich das?

klaussal

  • Gast
Re: agent email zeitintervall
« Antwort #6 am: 26.02.08 - 16:31:24 »
Verstecktes Feld einbauen und befüllen.

Offline Dadum

  • Frischling
  • *
  • Beiträge: 11
Re: agent email zeitintervall
« Antwort #7 am: 26.02.08 - 16:45:18 »
Verstecktes Feld einbauen und befüllen.

okay, das werde ich machen

Gruß Michi

Offline Jensi

  • Senior Mitglied
  • ****
  • Beiträge: 273
  • Geschlecht: Männlich
Re: agent email zeitintervall
« Antwort #8 am: 27.02.08 - 08:00:28 »
Verstecktes Feld einbauen und befüllen.

Hallo,

mich würde inetressieren womit ich das befüllen muss?

Geuß
Gruß Jens

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: agent email zeitintervall
« Antwort #9 am: 27.02.08 - 08:01:35 »
Mit irgendeinem Kennzeichen, dass der Agent beachtet bei seiner Auswahl, um die schon abgearbeiteten Dokumente auszuschließen.

Offline Jensi

  • Senior Mitglied
  • ****
  • Beiträge: 273
  • Geschlecht: Männlich
Re: agent email zeitintervall
« Antwort #10 am: 27.02.08 - 13:41:49 »
Hallo... mein Agent sollte nun mit folgender Logik befüllt werden siehe Bild), ich weiß wo ich das einfügen muss, aber nicht wie ich dies bewerkstelligen soll...

Sub Initialize
   
   Dim s As notessession
   Dim db As notesdatabase
   Dim view As notesview
   Dim doc, memo, ProfileDoc As notesdocument
   Dim Item As NotesItem
   Dim body As notesrichtextitem
   Dim dtthen As notesdatetime, dtnow As notesdatetime
   Dim dateTime As New NotesDateTime( "Today" )
   Dim dateTime_ As Variant
   Dim maxdiff, difference As Long
   Set s = New notessession
   Set db=s.currentdatabase
   ' Profildokument
   Set ProfileDoc = db.GetProfileDocument("PRFdoc_defaultVertrag")
   Set Item = ProfileDoc.getfirstitem("prfdoc_default_warnen")
   maxdiff =item.values(0)
   ' Einzelne Vertragsdokumente werden geprüft
   Set view = db.getview("($AllDocID)")
   Set doc = view.getfirstdocument
   ' Schleife   
   Do While Not (doc Is Nothing)
      Set dtthen = doc.getfirstitem("ver_fruehesterkuentermin").DateTimeValue
      If Not (dtthen Is Nothing) Then
         HIER SOLLTE DIE LOGIK REIN
         Call dtthen.setAnyTime
         Set dtnow= New notesdatetime("Today")
         Call dtnow.setAnyTime         
         ' Differenzberechnung - Liefert einen negativen Wert zurück(?), deswegen wird am Ende mit -1 multipliziert
         difference = dtnow.TimeDifference(dtthen) / 86400 *(-1)
         ' Bedingung
         If ( (difference > 0) And (difference <= maxdiff)) Then
            Set memo = db.createdocument
            With memo
               Call .replaceitemvalue("Form", "Memo")
               Call .replaceitemvalue("Subject","Auslaufender Vertrag - " & doc.ver_firma(0))
               Set body = .createrichtextitem("Body")
               With body
                  Call .appendtext("Der "& doc.ver_art(0) &" für "& doc.ver_gegenstand(0) &" läuft demnächst aus. Hier ist das Dokument:  ")
                  Call .appenddoclink(doc,"Bitte hier klicken","")
               End With
               Call .send(False, ProfileDoc.GetFirstItem("prfdoc_default_email"))
            End With
         End If
      End If
      Set doc = view.getnextdocument(doc)
   Loop
End Sub
Gruß Jens

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: agent email zeitintervall
« Antwort #11 am: 27.02.08 - 14:30:11 »
Hm... Das ganze lässt sich doch noch einfacher bewerkstelligen. Warum fragst du an der Stelle, wo du die Differenz prüfst, nicht auf Gleichheit ab? Dann fällt ein Dokument nur genau einmal in dein Schema und du brauchst auch kein Flag setzen, das du zusätzlich überprüfen musst. Ein Nachteil könnte hier aber sein, dass du die Nachricht nicht bekommst, wenn für Dokumente an einem Stichtag der Agent nicht läuft.

klaussal

  • Gast
Re: agent email zeitintervall
« Antwort #12 am: 27.02.08 - 14:33:08 »
Mal eine Frage: hast Du keinen Ausbilder, etc ?

Wenn der Agent wirklich von dir stammt, dann müsstest du den Rest aber auch alleine
hinbekommen.

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: agent email zeitintervall
« Antwort #13 am: 01.03.08 - 17:30:12 »
   Dim doc, memo, ProfileDoc As notesdocument

Mal nur als kleiner Hinweis: Obenstehender Code ist gleichbedeutend mit
Dim doc As Variant
Dim memo As Variant
Dim ProfileDoc As NotesDocument

So schreibt man "Gruselcode" ...

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz