Domino 9 und frühere Versionen > ND6: Administration & Userprobleme

agent email zeitintervall

<< < (3/3)

Jensi:
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

MadMetzger:
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:
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.

koehlerbv:

--- Zitat von: Jensi am 27.02.08 - 13:41:49 ---   Dim doc, memo, ProfileDoc As notesdocument

--- Ende Zitat ---

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

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln