Domino 9 und frühere Versionen > Entwicklung
Datumszuweisung im Agent erzeugt Fehlermeldung auf Server
(1/1)
Marshuhn:
Hallo,
ich habe mal wieder ein Problem. Wir haben aus der Raumreservierung einen Agenten individuell angepasst. Wir haben drei Server-Ebenen. Entwicklung, Test und Produktion.
Der Agent läuft in der Entwicklungsumgebung problemslos durch und ändert Werte in der Maske.
Das Template haben wir auf die Raumreservierungsdatenbank in der Test-Umgebung eingespielt. Hier erzeugte der Agent die Fehlermeldung:
AMgr: Agent (Wert ersetzen(Automat.)' in 'Apps\raumres.nsf') error message: Date value not initialized
Wir hatten dann in der Zeile
Dim purgedate As New NotesDateTime ("Heute")
dann geändert auf
Dim purgedate As New NotesDateTime ("Today")
Danach lief der Agent ordnungsgemäß durch.
Hier ist das Script:
--- Code: ---Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim nextdoc As Notesdocument
Dim tmpdt As New NotesDateTime("")
Dim purgedate As New NotesDateTime ("Heute")
Dim n As Integer
Dim StartDate As Variant
Dim EndDate As Variant
Dim OkToPurge As Integer
Dim item As NotesItem
Dim newItem As NotesItem
Set db=s.CurrentDatabase
Set dc=db.UnprocessedSearch("@Contains(Form;""Reservation"")", tmpdt,0)
Call purgedate.AdjustDay (-2)
Set doc=dc.GetFirstDocument
While Not (doc Is Nothing)
If doc.HasItem("$NoPurge") Then
StartDate=doc.GetitemValue("$NoPurge")
Else
StartDate=doc.GetitemValue("StartDateTime")
End If
Forall eachstartdate In StartDate
Dim tmpstartdate As New NotesDateTime(eachstartdate)
If purgedate.TimeDifference(tmpstartdate)>0 Then
OkToPurge=True
Else
OkToPurge=False
Goto DoNextDocument
End If
End Forall
If OkToPurge Then
Set nextdoc=dc.GetNextDocument (doc)
Zwischenwert2 = doc.GetitemValue("Form")
If Zwischenwert2(0) ="Reservation" Then
doc.Datum_Abgelaufen ="Ja"
Call doc.Save(True, False)
End If
Else
Call s.UpdateprocessedDoc(doc)
End If
DoNextDocument:
If doc Is Nothing Then
Set doc=nextdoc
Else
Set doc=dc.GetNextDocument (doc)
End If
Wend
End Sub
--- Ende Code ---
Gibt es eine Möglichkeit das ganze mit
today()
zu lösen??
Gruß + Danke
Marshuhn
dirk_2909:
Hallo
Warum verwendest Du nicht Date() , Format$( Date , "dd.mm.yyyy" ) , etc.
Dirk
koehlerbv:
Format$ sehe ich in diesem Zusammenhang immer sehr kritisch, da diese von den OS settings abhängig sind. Ärger ist da faktisch vorprogrammiert.
Ebensowenig verstehe ich aber die weit verbreitete masochistische Ader, in LS DT-Operationen immer über die NotesDateTime class abfackeln zu wollen.
Dim vDT As Variant
vDT = Now (oder von mir aus auch Date oder Today)
Vorgestern ist jetzt simpel vDT - 2, denn vDT speichert in dieem Beispiel Datumsseriennummern, mit denen einfachst umgegangen werden kann und die zudem noch direkt und ohne Umwege in NotesItems gekippt werden können:
NotesDocument.TheDayBeforeYesterday = Today - 2
HTH,
Bernhard
Marshuhn:
Hallo Dirk, hallo Bernhard,
vielen Dank für die Tipps.
@Bernhard: Besonders Deinen Tipp konnte ich nicht ganz nachvollziehen.
Habe daher selber noch ein bisschen getestet und habe die Variante
Dim purgedate As New NotesDateTime (Today())
entscheiden.
Damit läuft alles.
Aber trotzdem noch einmal. Vielen Dank für EURE Hilfen.
Gruß
Marshuhn
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln