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