Autor Thema: Wiedervorlage Agent  (Gelesen 5782 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Wiedervorlage Agent
« am: 09.10.02 - 11:44:30 »
Hallo Leute,

ich ahne schon, dass ich das Rad neu erfinde ..

Ich benötige wieder Hilfe, mein latein reicht nicht aus.

Ich habe folgendes Script als Aktions-Script realisiert, eigentlich soll daraus ein periodisch laufender Agent werden.

2 Dinge :

- Im Feld e4fldWiedervorlage steht das heutige Datum,
es wird aber nicht erkannt
- Wie mache ich hieraus einen Agenten ?

Code

     Dim ws As NotesUiWorkspace      
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Set db = session.CurrentDatabase      
     Dim user As String      
     user = session.UserName      
     Dim view As NotesView
     Dim dc As NotesDocumentCollection
     Dim doc As notesdocument       
     Set view = session.Currentdatabase.GetView( "e4vwMitarbeiter" )             
     
     
     Set dc = view.GetAllDocumentsByKey(user, True)
     Set doc  = dc.GetFirstDocument
     
     While Not doc Is Nothing
                If doc.e4fldWiedervorlage(0) = Today() Then     <- ??????????
                 Set item = doc.ReplaceItemValue( "e4fldStatus","Wiedervorlage")                        
                 Call doc.PutInFolder( "Eigene Dokumente" )
                 Call doc.Save( True, True )                  
           End If
           
           Set doc = dc.getnextdocument(doc)
     Wend
     
     Set view = session.Currentdatabase.GetView( "Eigene Dokumente" )             
     view.refresh




Vielen Dank im voraus


Don Pasquale

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Wiedervorlage Agent
« Antwort #1 am: 09.10.02 - 12:24:05 »
verwende bitte die Notesdatetime Klasse und dort die Methode TimeDifference.

Anbei auch ein Beispiel aus der Help, was Du sehr einfach an Deine Bedürfnisse anpassen kannst

This script checks to see if a document has been modified within the last seven days. If it hasn't, it mails a reminder memo to the document's authors.
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim newDoc As NotesDocument
Dim weekDateTime As NotesDateTime
Dim modifiedDateTime As NotesDateTime
Set db = session.CurrentDatabase
'...hier wird das aktuelle Datum gesetzt...
Set weekDateTime = New NotesDateTime( "Today" )
Set modifiedDateTime = New NotesDateTime( "" )
Call weekDateTime.AdjustDay( -7 )  ' set to one week ago
'und hier wird eine weitere Datumsvariable befüllt, diesmal anhand eines Feldwertes
modifiedDateTime.LSLocalTime = doc.LastModified
'und hier der Vergleich beider Datumsvariablen..in deinem Falle würde ich "=" nehmen
If weekDateTime.TimeDifference( modifiedDateTime ) > 0  Then
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re: Wiedervorlage Agent
« Antwort #2 am: 09.10.02 - 12:54:01 »
Hi Rob,

Danke für Deine Hilfe, ich habe allerdings Schwierigkeiten bei der Umsetzung,

modifiedDateTime.LSLocalTime = doc.LastModified

Hier wird ja wohl die Doc.Property genommen,
ich habe aber ein Feld.

Wie stricke ich diese Zeile um, dass es passt ?

Ciao
Don Pasquale
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Wiedervorlage Agent
« Antwort #3 am: 09.10.02 - 13:05:25 »
wie gesagt,  ;), wenn Du in der Help bei NotesDateTime nachsiehst, wirst Du genau bei dieser Klasse massig Beispiele finden.

Prinzipiell ist das Helpsystem so aufgebaut, daß zu jeder Klasse, Methode und Eigenschaft jeweils ein / mehrere Beispiele aufgeführt sind.

Wenn Dir also eine Klasse nicht klar ist, wie sie tickt, dann schau Dir zu der Klasse selbst die Beispiele an. Achte mal dort besonders auf ein "item" und "datetimevalue". ;)

Ist wirklich gut gemacht das Helpsystem.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re: Wiedervorlage Agent
« Antwort #4 am: 09.10.02 - 13:56:26 »
Hi Rob,

Das ist das was im Allgemeinen Zaunpfahl genannt wird,
stimmt´s


Das ist meine Aktuelle Lösung, diese nimmt aber nicht das heutige Datum sondern alles was älter ist als heute
(eigentlich sogar richtiger)



Code

     Dim weekDateTime As NotesDateTime
     Dim modifiedDateTime As NotesDateTime
     
     Set weekDateTime = New NotesDateTime( "Heute" )
     Set modifiedDateTime = New NotesDateTime( "" )
     Dim ws As NotesUiWorkspace      
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Set db = session.CurrentDatabase      
     Dim user As String      
     user = session.UserName      
     Dim view As NotesView
     Dim dc As NotesDocumentCollection
     Dim doc As notesdocument       
     Set view = session.Currentdatabase.GetView( "e4vwMitarbeiter" )             
     
     Set dc = view.GetAllDocumentsByKey(user, True)
     Set doc  = dc.GetFirstDocument
     
     Dim item As NotesItem
     Dim dateTime As NotesDateTime
   
     
     While Not doc Is Nothing
           If doc.e4fldWiedervorlagedatum(0) <>"" Then
                 Set item = doc.GetFirstItem("e4fldWiedervorlagedatum")
                 Set modifiedDateTime = item.DateTimeValue
           End If
           
           If weekDateTime.TimeDifference( modifiedDateTime ) > 0  Then             
                 Set item = doc.ReplaceItemValue( "e4fldStatus","Wiedervorlage")                        
                 Call doc.PutInFolder( "Eigene Dokumente" )
                 Call doc.Save( True, True )                  
           End If
           
           Set doc = dc.getnextdocument(doc)
     Wend
     
     Set view = session.Currentdatabase.GetView( "Eigene Dokumente" )             
     view.refresh


Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Wiedervorlage Agent
« Antwort #5 am: 09.10.02 - 14:24:06 »
:) :) :)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz