Autor Thema: Alarambenachrichtigung bei MailInDB  (Gelesen 2523 mal)

Offline jammesbond007

  • Aktives Mitglied
  • ***
  • Beiträge: 110
  • Geschlecht: Männlich
Alarambenachrichtigung bei MailInDB
« am: 08.01.07 - 14:41:34 »
Hallo alle gemeinsam. Hoffe ihr hattet einen guten Rutsch ins neue Jahr!

Mein kleines Problem:
Ich habe eine MailIn Datenbank. Wenn ich nun einen Termin in dieser DB einstelle und mittels Alarm- und Emailbenachrichtigung an den Besitzer der MailinDatenbank mich erinnern lassen will kommt keine Email an. Dass keine Alarmmeldung kommt versteh ich ja noch (bei wem von den 4 Lesern sollte diese kommen) aber zumindest die Email sollte ja funtkionieren. Andere NotesEmails an diesen Empfänger funktionieren. Nur die Erinnerung an den Termin nicht......

Habt ihr eine Idee?

Danke!
OS: WindowsXP / Win7
Linux Server 853FP6
Client: 853FP6

Offline Hive

  • Senior Mitglied
  • ****
  • Beiträge: 345
  • Geschlecht: Männlich
  • Whooaaaa!!
    • g-notes.de
Re: Alarambenachrichtigung bei MailInDB
« Antwort #1 am: 08.01.07 - 16:08:24 »
Das hatten wir vorhin gerade .. E-Mail Alarmbenachritigungungen funktionieren nur bei Datenbanken die im Client geöffnet sind .. weil der Client die Benachrichtigung prüft und ggf Email versendet ..

Es gibt aber einen kleinen Workarround .. den muss ich mal herraussuchen ..

KAI

edit: gefunden!

Also hier der Code (ein Agent, der mehrmals am Tag läuft) .. Error-handling fehlt (gibt genug threads in denen ein geeignetes errorhandling steht) noch und den Code hab ich mir seit Jahren nicht mehr angeschaut .. aber funktionieren sollte er ..



Code
Sub Initialize
	On Error Goto errhandle

	Dim s As New NotesSession
	Dim db As NotesDatabase						' beliebige Mail-In DB
	Dim userdb As  NotesDatabase				' User Mailfile
	Dim view As NotesView							' ($Alarm) Ordner 
	Dim doc As NotesDocument					' Alarm - Dokument (Termin, Meeting, Erinnerung etc. mit Erinnerungs-Option)
	Dim userdoc As NotesDocument				' syncrones Alarm - Dokument beim User
	Dim agent As NotesAgent						' Ich
	Dim lasttime As Variant							' das letzte mal als ich lief
	Dim reg As New NotesRegistration			' Domino Directory Information 
	Dim anames As Variant							' Liste aller die alarmiert/erinnert werden sollen 
	Dim acl As NotesACL								
	
	Set agent = s.CurrentAgent
	Set db = s.CurrentDatabase
	' der Agend soll nur zentral auf dem Adminserver arbeiten; sonst könnte es zu doppelten Einträgen kommen
	'If Not agent.ServerName = db.ACL.AdministrationServer Then Exit Sub
	
	' Unter ($Alarms) befinden sich alle Alarme, sowohl die mit Sound- als auch eMail-Benachrichtigung
	Set view = db.GetView( "($Alarms)" )
	Set doc = view.GetFirstDocument
	
	' reg as NotesRegistration dient zum herrausfinden der Usermailfiles hier wir der Notes Domain Controler festgelegt in dem der User geprüft wird
	reg.RegistrationServer = db.ACL.AdministrationServer
	lasttime = agent.LastRun
	
	While Not(doc Is Nothing)
		'Nur Dokumente die seit dem letzen Agentlauf geändert/erstellt wurden müssen bearbeitet werden
		If lasttime < doc.LastModified Then
			'AlarmSendTo speziefiziert den Empfänger ein Alarm Email / Erinnerung
			anames = doc.GetItemValue("$AlarmSendTo")
			
			Forall x In anames
				' get UserInfo erwarten bei x einen FQN und gibt über die Konstanten mailserver$, mailfile$ Server und Mailfile der Person X zurück
				Call reg.GetUserInfo(x, mailserver$, mailfile$)
				Set userdb = New NotesDatabase(mailserver$, mailfile$)
				If Not userdb.IsOpen Then Call userdb.Open("","")
				
				'Es wird versucht einen syncronisierten Alarm zu suchen, wenn das nicht gelingt wird zu IngnoreNonexistentUNID gesprungen
				Set userdoc = userdb.GetDocumentByUNID(doc.UniversalID)
continue:
				'Die zentrale Mail-In Datenbank ist Master dieser Alarme deswegen wird nur gepush (überschrieben)
				Call doc.CopyAllItems(userdoc,True)
				
				' der Alarm Deamon der Usr würde an alle Personen in $AlarmSendTo Mail versenden dies würde schon durch diesen Agenten erledigt.
				' dewegen wird das feld gelöscht
				Call userdoc.ReplaceItemValue("$AlarmSendTo",x)
				Call userdoc.Save(True, False)
				userdoc.PutInFolder("($Alarms)")
			End Forall
			
		End If
		'nächster Alarm
		Set doc = view.GetNextDocument(doc)
	Wend
	
  Exit Sub

'~~~ Catch da Bug ~~~~~

  errhandle:
  Select Case Err
  
  Case 1001 :
    Print “Error” & Error$
    Exit Sub
 
  Case 4091 :  'Error = ERR_NOTES_BAD_UNID
' hierher wird gesprungen wenn kein syncronisierter Alarm gefunden werden konnte 
' es muss ein neues synconisiertes (gleiche UNID) Dokument angelegt werden
    Set userdoc = userdb.CreateDocument()
    userdoc.UniversalID = doc.UniversalID
    Resume continue

  Case Else
      Print “Error” & Str(Err) & “ in Line " & Str(Erl) & “ : " & Error$
      Exit Sub

  End Select

End Sub

edit2: das funktioniert bei uns .. aber den Agent einzusetzten empfehle ich  nur dann wenn man genau weiß was jede zeile bedeutet und tut ..
« Letzte Änderung: 08.01.07 - 16:39:59 von Hive »
I love deadlines, i love the whooshing sound they make when they pass by

Offline jammesbond007

  • Aktives Mitglied
  • ***
  • Beiträge: 110
  • Geschlecht: Männlich
Re: Alarambenachrichtigung bei MailInDB
« Antwort #2 am: 09.01.07 - 11:33:55 »
...hmmm..... dachte das wäre trivialer, noch dazu weil man das ohne Problem eingeben kann im Benachrichtigungsfenster.....::)

Danke dir auf alle Fälle für den Workaround, werde ihn mal anschauen!

Schönen Tag noch!
OS: WindowsXP / Win7
Linux Server 853FP6
Client: 853FP6

Offline mcilly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.361
  • Geschlecht: Männlich
  • nicht die Bohne...
Re: Alarambenachrichtigung bei MailInDB
« Antwort #3 am: 09.01.07 - 13:11:14 »
Kann das sein, dass der Notes Minder läuft?
LG Roman

http://www.appreport.net - Täglich Berichte über Apps aus den App Stores

Offline jammesbond007

  • Aktives Mitglied
  • ***
  • Beiträge: 110
  • Geschlecht: Männlich
Re: Alarambenachrichtigung bei MailInDB
« Antwort #4 am: 09.01.07 - 15:18:08 »
Auf den PC's wo die DB geöffnet wird? Ja habs auch mit dem Reminder probiert. Mit dem Ergebnis dass es auch nicht funktioniert hat....
OS: WindowsXP / Win7
Linux Server 853FP6
Client: 853FP6

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Alarambenachrichtigung bei MailInDB
« Antwort #5 am: 10.01.07 - 17:45:53 »
Alarmbenachrichtigungen und Alarmmails werden beide vom gleichen task des Notes- Clients ausgelöst. Und dieser Task überwacht ausschliesslich die in der Arbeitsumgebung eingestellte Mail- File.

ERGO: das geht mit MailIn- Datenbanken DEFINITIV NICHT, es sei denn, Du stellst irgendwo nen Rechner mit geöffnetem Mail- Client hin, in dessen Arbeitsumgebung die MailIn- Datenbank eingetragen ist.

Ob die Datenbank in irgend einem Client geöffnet ist oder nicht spielt für die Benachrichtigung überhaupt keine Rolle, alleine die Arbeitsumgebung ist relevant.

HTH
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jammesbond007

  • Aktives Mitglied
  • ***
  • Beiträge: 110
  • Geschlecht: Männlich
Re: Alarambenachrichtigung bei MailInDB
« Antwort #6 am: 11.01.07 - 10:48:15 »
Verstehe...Wusste nicht dass es von der Arbeitsumgebung abhängt!

Danke für deinen Tipp!
OS: WindowsXP / Win7
Linux Server 853FP6
Client: 853FP6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz