Autor Thema: Wiedervorlage Uhrzeiten  (Gelesen 5430 mal)

Offline eddie_f

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Wiedervorlage Uhrzeiten
« am: 14.11.06 - 09:20:09 »
Ich hatte es schonmal kurz in einem anderen Thread gepostet, das Problem hat sich aber leider nicht mit dem Update auf die 1.5.1 verbessert:

Zitat
Kann es sein, daß in der 1.5.0 Wiedervorlagen nur nach dem Datum verarbeitet werden? Egal was ich für eine Uhrzeit einstelle, das Ticket wird immer an dem Tag ab 0:00 Uhr wieder aktiv, bzw. es werden Mails versandt. Falls das in 1.5.1 gefixt ist werde ich es mit dem Update versuchen.
-- Der Domino Server ist noch ein 6.5.1er, ich weis das ist nicht so die tolle Version, aber vom RZ her hab ich da keine Wahl...

Also sprich: ich lege mir für morgen 11 Uhr ein Ticket auf Wiedervorlage und das Ticket randaliert dann aber schon ab morgen 0 Uhr alle 5 Minuten meinen Posteingang zu. Das Datum für die Wiedervorlage zieht er, aber die Uhrzeit scheint ihm völlig egal zu sein. Ich hoffe einfach mal, dass es nicht nur an der Domino Version liegt, denn sonst hab ich auf kurze Sicht keine Chance. (wir bekommen Version 7 wahrscheinlich dann, wenn die Version 8 oder 9 raus ist  :( )
Gruß

H. Noack

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wiedervorlage Uhrzeiten
« Antwort #1 am: 14.11.06 - 09:47:48 »
Eigentlich nicht. Der Agent geht auf die lslocaltime Eigenschaft des Feldes ResubmittedUntilDate los. Das muss ein Datumsfeld sein.
Er vergleicht über:
   If resubmissiondate.lslocaltime <= thisdate.LSLocalTime Then
mit der aktuellen Zeit.
Und das er immer wieder meckert kannst du mit
ResubmitSetToActive = Ucase(GetConfigDocByKey ("ResubmitSetToActive"))
dem Keyword ResubmitSetToActive verhindern.

Bei uns funktioniert das tadellos. Wir bekommen die Mail nur einmal.

Was du überprüfen könntest wären zum einen die Einstellungen von: ResubmitSetToActive und ResubmitDefaultStatus. Damit bekommst du das wiederholen der Banachrichtigung in den Griff. Und zum anderen das Feld ResubmittedUntilDate in den Dokumenten. Das muss Datum + Uhrzeit sein. unter umständen ist es bei dir nur das Datum. Dann müssen wir in dieser Richtung weitersuchen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline eddie_f

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Wiedervorlage Uhrzeiten
« Antwort #2 am: 14.11.06 - 11:04:27 »
OK ich hab das jetzt mal geprüft:

ResubmitDefaultStatus = 1 , was glaub ich soviel heißt wie aktiv.
ResubmitSetToActive = NO , das war notwendig, damit die Tickets nicht über Nacht in die Eskalation laufen. Die User sollen selbst die Tickets reaktivieren oder wenn es nocht nicht möglich ist auf einen späteren Zeitpunkt verlagern. Aber eben dieser Zeitpunkt ist das Problem... Ich hab mal einen Screenshot der Historie gemacht:



Er trägt Uhrzeiten einwandfrei ein. Liegt es vielleicht daran, dass er die Zeitzone in die Felder einträgt und die Funktionen deshalb nicht richtig laufen?

Was mir noch alternativ gekommen ist: ich kann das Problem insofern vermindern, indem ich die Agenten nur zu den Geschäftszeiten laufen lasse, es ändert nur leider nichts am Grundproblem.
« Letzte Änderung: 14.11.06 - 11:06:47 von eddie_f »
Gruß

H. Noack

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wiedervorlage Uhrzeiten
« Antwort #3 am: 14.11.06 - 11:34:40 »
Trag doch mal eine Wiedervorlage ein und dann schau dir über die Eigenschaften "alt-Enter" das Feld ResubmittedUntilDate an.

Mach davon einen Screenshot und stell den hier rein.

Wie gesagt das mit den alle fünf minuten liegt einfach daran das du ResubmitSetToActie auf "NO" hast und der Agent halt wirklich alle fünf Minuten läuft. Das mit der Zeit ist komisch.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wiedervorlage Uhrzeiten
« Antwort #4 am: 14.11.06 - 11:41:55 »
Ich bin ein dummer dummer dummer Bauer.

Ersetz ganz einfach den Code in der lib.notification.resubmission, ProcessReSubmission mit dem hier:
Code
Sub ProcessReSubmission()
	On Error Goto ERRHANDLE
%REM
Starting the process of resubmission. There are some base configuration documents that are used to set the path of how this piese of code should work.
ResubmitSetToActive = MANUAL/AUTOMATIC -> if manual the user itself has to set that Status back to a working one. if Automatic this Routine does so.
ResubmitSendRememberingMailSupporter = YES/NO -> send a mail to the Supporter of that particular document
ResubmitSendRememberingMailOwner = YES/NO -> send a mail to the owner of that document. Could be either the Creator (in case of Todos) or the base user
ResubmitSendMailAsSummary = YES/NO -> send each reminder as single mail or as summary mail
ResubmitSendMailBodyFieldName = FieldName -> name of the field that should be included with the body
ResubmitSendMailWithLink = YES/NO -> send a mail with doclink or not (only valid for single mails)
ResubmitDonotSendMailToDefaultSupporter = YES/NO -> if the mail is headed to the default supporter do not send it.
%END REM
	Dim session As New notessession
	Dim thisdate As New NotesDateTime("")
	Dim resubmissionitem As NotesItem
	Dim resubmissiondate As New NotesDateTime("")
	Dim resubmissiontime As New NotesDateTime("")
	Dim founddocuments As NotesDocumentCollection
	Dim founddoc As notesdocument
	Dim i As Integer
	Dim j As Integer
	Dim ok As Integer
	
	Dim userlanguage As String
	
	' get the current database
	Set me_db =session.CurrentDatabase
	' get the language document for messages
	userlanguage = findcurrentuserlanguage
	Call buildlanguagelist(userlanguage,GetLanguageItem(userlanguage,"ScriptMessages"))
	' get the config documents
	ResubmitSendMail = Ucase(GetConfigDocByKey("ResubmitSendMail"))
	ResubmitSetToActive = Ucase(GetConfigDocByKey ("ResubmitSetToActive"))
	ResubmitDefaultStatus = GetConfigDocByKey ("ResubmitDefaultStatus")
	ResubmitSendRememberingMailSupporter = Ucase(GetConfigDocByKey ("ResubmitSendRememberingMailSupporter"))
	ResubmitSendRememberingMailOwner = Ucase(GetConfigDocByKey ("ResubmitSendRememberingMailOwner"))
	ResubmitSendMailAsSummary = Ucase(GetConfigDocByKey ("ResubmitSendMailAsSummary"))
	ResubmitSendMailBodyFieldName = Ucase(GetConfigDocByKey ("ResubmitSendMailBodyFieldName"))
	ResubmitSendMailWithLink = Ucase(GetConfigDocByKey ("ResubmitSendMailWithLink"))
	ResubmitSendMailToDefaultSupporter = Ucase(GetConfigDocByKey ("ResubmitDonotSendMailToDefaultSupporter"))
	ResubmitSendMailCheckNames = Ucase(GetconfigDocByKey("ResubmitSendMailCheckNames"))
	ResubmitSendMailDefaultSupporter = Ucase(GetconfigDocByKey("DefaultSupporter"))
	
	' get the actual date
	Call thisdate.setnow	
	
	Set founddocuments = GetActiveResubmissions()
	Set founddoc = founddocuments.getfirstdocument
	
	If founddocuments.Count = 0 Then Exit Sub ' nothing to do so far
	' Build the list of the users adresses
	If Ucase(ResubmitSendMailCheckNames) = "YES" Then
  ' fetch all valid users from all addressbooks
		Call fetchvalidusers(Session)
	End If
	
	For i = 1 To founddocuments.Count 		
		Set founddoc = founddocuments.GetNthDocument ( i )
		' find if the resubmission date is lowerequal the actual date
		Set resubmissionitem = founddoc.GetFirstItem("ResubmittedUntilDate")
		Set resubmissiondate = resubmissionitem.DateTimeValue
		Set resubmissionitem = founddoc.GetFirstItem("ResubmittedUntilTime")
		Set ResubmissionTime = resubmissionitem.DateTimeValue
		If resubmissiondate.lslocaltime <= thisdate.LSLocalTime Then
			If resubmissiontime.lslocaltime <= thisdate.LSLocalTime Then
			' do anything you have to do to inform the users, change the status or what else have ya
			ok = GrabOrSendMail(founddoc)
			If Ucase(ResubmitSetToActive) = "YES" Then
				alldocumentstochangelist(founddoc.UniversalID) = founddoc.UniversalID
			End If
		End If
	End If
	Next
	' check and send the summary
	If Ucase(ResubmitSendMailAsSummary) = "YES" Then
		ok = SendResubmitSummary()
	End If
	If Ucase(ResubmitSetToActive) = "YES" Then
		ok = ChangeAllFoundDocuments()
	End If
	
EXITPOINT:
	Exit Sub
ERRHANDLE:
	
	xProc = Getthreadinfo(LSI_THREAD_PROC)
	xError = xProc  & ": " &Trim$(Str$(Err)) & " on line " & Cstr(Erl) & ": " & Error$
	If UseOpenLog Then
		Call LogError
	Elseif LogScriptErrors Then
		Call ThrowException ( xProc, xError  )
	End If
	Print xError   'In all cases
	If ResumeMethodNext Then
		Resume Next	
	Else
		Resume EXITPOINT
	End If
End Sub

und ignoriere was ich vorhin gesagt habe.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline eddie_f

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Wiedervorlage Uhrzeiten
« Antwort #5 am: 14.11.06 - 12:53:51 »
*Spaß an* Du köntescht höchschtens n Halbdackel soi, denn der Schwob sait der Dackel merkt ned wie blöd er ischt, der Halbdackel wois des abr scho *Spaß aus*  ;D

Ich werds gleich mal ausprobieren. Ein weiterer Bugfix  O0
Gruß

H. Noack

Offline eddie_f

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Wiedervorlage Uhrzeiten
« Antwort #6 am: 15.11.06 - 10:38:46 »
Zu früh gefreut... es funktioniert leider nicht...

Kann es sein, dass es daran liegt:

DATUMSFELD


ZEITFELD


Im Datumsfeld ist das richtige Datum, aber die Zeit ist 0 Uhr.
Im Zeitfeld ist die richtige Zeit aber das Datum liegt "leicht" in der Vergangenheit.

So wie ich das Skript verstehe wird immer das ganze Datum verglichen. Zuerst wird der Tag geprüft und dann wird die Zeit geprüft. Das erste ergibt True und es geht weiter zum nächsten IF. Das ergibt auch immer True da ja das Datum zur Uhrzeit weit in der Vergangenheit liegt.

Also anders kann ich mir den Fehler nicht erklären... Es würde nur funktionieren, wenn die Zeit und das Datum zusammen in einem Feld stehen würden oder wenn jeweils nur das Datum oder nur die Zeit geprüft würden.
Gruß

H. Noack

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wiedervorlage Uhrzeiten
« Antwort #7 am: 15.11.06 - 11:07:16 »
Sag ich doch. Dummer Dackel ....

Man sollte nichts rausgeben ohne es selber zu testen. Auch wenn man eigentlich nur mal schnell eben .....

Ok Fix vom Fix.

Code
Sub ProcessReSubmission()
	On Error Goto ERRHANDLE
%REM
Starting the process of resubmission. There are some base configuration documents that are used to set the path of how this piese of code should work.
ResubmitSetToActive = MANUAL/AUTOMATIC -> if manual the user itself has to set that Status back to a working one. if Automatic this Routine does so.
ResubmitSendRememberingMailSupporter = YES/NO -> send a mail to the Supporter of that particular document
ResubmitSendRememberingMailOwner = YES/NO -> send a mail to the owner of that document. Could be either the Creator (in case of Todos) or the base user
ResubmitSendMailAsSummary = YES/NO -> send each reminder as single mail or as summary mail
ResubmitSendMailBodyFieldName = FieldName -> name of the field that should be included with the body
ResubmitSendMailWithLink = YES/NO -> send a mail with doclink or not (only valid for single mails)
ResubmitDonotSendMailToDefaultSupporter = YES/NO -> if the mail is headed to the default supporter do not send it.
%END REM
	Dim session As New notessession
	Dim thisdate As New NotesDateTime("")
	Dim resubmissionitem As NotesItem
	Dim resubmissiondate As New NotesDateTime("")
	Dim resubmissiontime As New NotesDateTime("")
	Dim resubmissiondatestring As String
	Dim resubmissioncompletedate As NotesDateTime
	Dim founddocuments As NotesDocumentCollection
	Dim founddoc As notesdocument
	Dim i As Integer
	Dim j As Integer
	Dim ok As Integer
	
	Dim userlanguage As String
	
	' get the current database
	Set me_db =session.CurrentDatabase
	' get the language document for messages
	userlanguage = findcurrentuserlanguage
	Call buildlanguagelist(userlanguage,GetLanguageItem(userlanguage,"ScriptMessages"))
	' get the config documents
	ResubmitSendMail = Ucase(GetConfigDocByKey("ResubmitSendMail"))
	ResubmitSetToActive = Ucase(GetConfigDocByKey ("ResubmitSetToActive"))
	ResubmitDefaultStatus = GetConfigDocByKey ("ResubmitDefaultStatus")
	ResubmitSendRememberingMailSupporter = Ucase(GetConfigDocByKey ("ResubmitSendRememberingMailSupporter"))
	ResubmitSendRememberingMailOwner = Ucase(GetConfigDocByKey ("ResubmitSendRememberingMailOwner"))
	ResubmitSendMailAsSummary = Ucase(GetConfigDocByKey ("ResubmitSendMailAsSummary"))
	ResubmitSendMailBodyFieldName = Ucase(GetConfigDocByKey ("ResubmitSendMailBodyFieldName"))
	ResubmitSendMailWithLink = Ucase(GetConfigDocByKey ("ResubmitSendMailWithLink"))
	ResubmitSendMailToDefaultSupporter = Ucase(GetConfigDocByKey ("ResubmitDonotSendMailToDefaultSupporter"))
	ResubmitSendMailCheckNames = Ucase(GetconfigDocByKey("ResubmitSendMailCheckNames"))
	ResubmitSendMailDefaultSupporter = Ucase(GetconfigDocByKey("DefaultSupporter"))
	
	' get the actual date
	Call thisdate.setnow	
	
	Set founddocuments = GetActiveResubmissions()
	Set founddoc = founddocuments.getfirstdocument
	
	If founddocuments.Count = 0 Then Exit Sub ' nothing to do so far
	' Build the list of the users adresses
	If Ucase(ResubmitSendMailCheckNames) = "YES" Then
  ' fetch all valid users from all addressbooks
		Call fetchvalidusers(Session)
	End If
	
	For i = 1 To founddocuments.Count
		Set founddoc = founddocuments.GetNthDocument ( i )
' find if the resubmission date is lowerequal the actual date
		Set resubmissionitem = founddoc.GetFirstItem("ResubmittedUntilDate")
		Set resubmissiondate = resubmissionitem.DateTimeValue
		Set resubmissionitem = founddoc.GetFirstItem("ResubmittedUntilTime")
		Set ResubmissionTime = resubmissionitem.DateTimeValue
		Set resubmissioncompletedate = New NotesDateTime(resubmissiondate.DateOnly + " " + resubmissiontime.TimeOnly)
		If resubmissioncompletedate.lslocaltime <= thisdate.LSLocalTime Then
' do anything you have to do to inform the users, change the status or what else have ya
			ok = GrabOrSendMail(founddoc)
			If Ucase(ResubmitSetToActive) = "YES" Then
				alldocumentstochangelist(founddoc.UniversalID) = founddoc.UniversalID
			End If
		End If
	Next
	' check and send the summary
	If Ucase(ResubmitSendMailAsSummary) = "YES" Then
		ok = SendResubmitSummary()
	End If
	If Ucase(ResubmitSetToActive) = "YES" Then
		ok = ChangeAllFoundDocuments()
	End If
	
EXITPOINT:
	Exit Sub
ERRHANDLE:
	
	xProc = Getthreadinfo(LSI_THREAD_PROC)
	xError = xProc  & ": " &Trim$(Str$(Err)) & " on line " & Cstr(Erl) & ": " & Error$
	If UseOpenLog Then
		Call LogError
	Elseif LogScriptErrors Then
		Call ThrowException ( xProc, xError  )
	End If
	Print xError   'In all cases
	If ResumeMethodNext Then
		Resume Next	
	Else
		Resume EXITPOINT
	End If
End Sub

Und Ey Alder isch schwörz. Ischt escht brontal geteschted.

Naja zumindest einmal .....
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline eddie_f

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Wiedervorlage Uhrzeiten
« Antwort #8 am: 15.11.06 - 11:37:36 »
Ich muss mich jetzt echt mal ein bissel mehr mit LotusSkript beschäftigen. Die Lösung war ja im Endeffekt banal einfach (besonders wenn man es schon verbal formuliert hat  ^-^)
Gruß

H. Noack

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wiedervorlage Uhrzeiten
« Antwort #9 am: 15.11.06 - 11:52:33 »
Sag das nicht. Ich hab noch nicht getestet, was denn bei Einsätzen die mit unterschiedlichen Zeitzonen arbeiten passiert.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline eddie_f

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: Wiedervorlage Uhrzeiten
« Antwort #10 am: 15.11.06 - 11:58:36 »
Oha ja da könntest du recht haben... müsste einfach nur schief gehen, falls er die Zeitzone jetzt nicht mehr mitnimmt...

Naja wird schrauben gerade eine Notes Testumgebung zusammen, dann kann man sowas mal testen  :)
Gruß

H. Noack

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz