Danke für die Tipps.
Funktioniert hat dann schliesslich.
dbcache flush
&
tell tm_grab restart
Danke für die Tipps.
Funktioniert hat dann schliesslich.
dbcache flush
&
tell tm_grab restart
also folgende Frage habe ich:
Ich habe eine IQSuite Regel die sich auf eine Notes Gruppe (in der names.nsf) bezieht.
Wenn ich in die Notes Gruppe Personen aufnehme oder lösche so dauert es immer eine geraume zeit bis es Notes schnallt, das diese Person nun in dieser gruppe ist oder entfernt wurde.
Und dementsprechend zieht auch meine Regel für die Personen nicht sofort.
Wenn den Notesserver beende und sofort wieder starte dann funktioniert das ganze.
Liegt diese Verzögerung nun an Notes oder an der IQsuite?
Und welcher "task" aktualisiert das ganze?
Und kann man das auch ohne den server zu beenden anstossen?
danke
Vielen Dank
für die schnelle und wie immer kompetente Hilfe.
Hallo zusammen,
kann mir jemand bestätigen das folgendes korrekt ist. Bin mir nicht ganz sicher.
1. Der Eintrag in der notes.ini
ALLOW_ACCESS_TCPIP=gruppe
hat nichts mit dem Eintrag im Serverdokument
reiter Sicherheit - Serverzugriff: -wer kann- auf diesen Server zugreifen.
zu tun.
2. Der Eintrag
ALLOW_ACCESS_TCPIP=gruppe
kann auch nicht über das Serverdokument beeinflusst werden, sondern muß per edit in die notes.ini eingetragen werden.
3. ein User muß in beiden Gruppen sein
ist das so korrekt
Danke
Ok hast recht. Wenn ich etwas genauer geschaut hätte, hätte man das finden können. Vielen Dank nochmal.
Ich hoffe das ist alles was dafür zuständig ist.
Bin leider nicht der Riesen Programmieren. Wenn du mir noch sagen könntest wo, wäre ich dir wirklich sehr dankbar.
'//OutOfOffice|OutOfOffice:
Class OutOfOfficeApplication
Public m_profileOffice As NotesDocument
Public m_calprofile As notesdocument
Public m_itemNotified As NotesItem
Private m_OutOfOfficeLog As noteslog
Private m_StringTable As MailToolsStringTable
Private m_collectionUnprocessedNotes As notesdocumentcollection
Private m_Session As notessession
Private m_db As notesdatabase
Private m_noteDocument As notesdocument
Private m_noteDisable As notesdocument
Private m_noteEmail As NotesDocument
Private m_rItem As notesrichtextitem
Private m_dtNow As NotesDateTime
Private m_dtLeave As notesdatetime
Private m_dtReturn As notesdatetime
Private m_dtLastRun As notesdatetime
Private m_dtdelivered As NotesDateTime
Private m_dtFirstReminderSent As NotesDateTime
Private m_dtDisableReminderSent As NotesDateTime
Private m_nameOwner As NotesName
Private m_nameAltOwner As NotesName
Private m_nameNotify As NotesName
Private m_nameFrom As NotesName
Private m_vNamesList As Variant
Private m_vSendTo As Variant
Private m_IgnoreSubjectPhrase As Variant
Private m_vNotified As Variant
Private m_vFieldData As Variant
Private m_strSubject As String
Private m_strNameFrom As String
Private m_strNameAltFrom As String
Private m_strDomain As String
Private m_strNotifiedMsg As String
Private m_strForm As String
Private m_strAltFrom As String
Private m_strFrom As String
Private m_strSendToName As String
Private m_strMsg As String
Private m_strLangOwner As String
Private m_strLangFrom As String
Public m_nUpdate As Integer
Private m_nExcludeInternetEmail As Integer
Private m_nFirstReminder As Integer
Private m_nSendSpecial As Integer
Declare Public Function run() As Integer
Sub New
Set Me.m_Session = New notessession
Set Me.m_db = Me.m_Session.currentdatabase
Set Me.m_OutOfOfficeLog = New NotesLog("Out of Office Log")
Set Me.m_profileOffice = Me.m_db.GetProfileDocument("OutOfOfficeProfile")
Call Me.m_OutOfOfficeLog.OpenAgentLog
Set Me.m_StringTable = New MailToolsStringTable
Set Me.m_calprofile = Me.m_db.GetProfileDocument("CalendarProfile")
Set Me.m_nameOwner = New NotesName(Me.m_calprofile.GetItemValue("Owner")(0))
If Me.m_calprofile.HasItem("AltOwner") Then
Set Me.m_nameAltOwner = New NotesName(Me.m_calprofile.GetItemValue("AltOwner")(0))
Else
Set Me.m_nameAltOwner = Me.m_nameOwner
End If
If Me.m_calprofile.HasItem("$LangOwner") Then
Me.m_strLangOwner = Me.m_calprofile.GetItemValue("$LangOwner")(0)
Else
Me.m_strLangOwner = ""
End If
If Me.m_profileOffice.isnewnote Then
Print(Me.m_stringtable.GetString(418,Nothing))
End
End If
If Isnumeric(Me.m_profileOffice.ExcludeInternetEmail(0)) Then
Me.m_nExcludeInternetEmail = Cint(Me.m_profileOffice.ExcludeInternetEmail(0))
Else
Me.m_nExcludeInternetEmail = 0
End If
Me.m_IgnoreSubjectPhrase = Me.m_profileOffice.IgnoreSubjectPhrase
Set Me.m_collectionUnprocessedNotes = Me.m_db.UnprocessedDocuments
Set Me.m_itemNotified = Me.m_profileOffice.GetFirstItem("Notified")
Call Me.m_OutOfOfficeLog.LogAction(Cstr(Me.m_collectionUnprocessedNotes.count) & " zum Verarbeiten gefunden.")
End Sub
Function Run() As Integer
If AgentOKToRun() Then
Set Me.m_noteDocument = Me.m_collectionUnprocessedNotes.getfirstdocument
While Not Me.m_noteDocument Is Nothing
If DocumentOK(Me.m_noteDocument) Then
Call NotifySender(Me.m_noteDocument)
End If
Call Me.m_Session.UpdateProcessedDoc(Me.m_noteDocument)
Set Me.m_noteDocument = Me.m_collectionUnprocessedNotes.getnextdocument(Me.m_noteDocument)
Wend
If Me.m_nUpdate Then
Call Update
End If
End If
End Function
Sub Delete
'// Check for errors were detected
If (Me.m_OutOfOfficeLog.NumErrors >0) Then
Call Me.m_OutOfOfficeLog.LogAction(Cstr(Me.m_OutOfOfficeLog.NumErrors) & " error detected." )
Else
Call Me.m_OutOfOfficeLog.LogAction("Keine Fehler festgestellt.")
End If
'// Close log
Call Me.m_OutOfOfficeLog.Close
If (Me.m_nUpdate) Then
Call Update
End If
End Sub
Sub Update
'// track when the agent last ran..
Set Me.m_dtNow = New NotesDateTime("")
Me.m_dtNow.SetNow
Call Me.m_profileOffice.ReplaceItemValue ( "Notified", Me.m_itemNotified)
Call Me.m_profileOffice.ReplaceItemValue ( "AgentLastRun", Me.m_dtNow)
Call Me.m_profileOffice.Save(True, False , True)
Me.m_nUpdate = False
End Sub
Sub SendDisableReminder ( FirstReminder As Integer )
Me.m_vNotified = Me.m_itemNotified.Values
If FirstReminder Then
Me.m_strSubject = Me.m_stringtable.GetString(415,Nothing)
If Len(Me.m_vNotified(0)) Then
Me.m_strNotifiedMsg = Me.m_stringtable.GetString(413,Nothing)
Forall a In Me.m_vNotified
Set Me.m_nameNotify = New NotesName ( a )
If (Strcompare(Me.m_nameNotify.Common, Me.m_nameNotify.Canonical)= 0) Then
Me.m_strNotifiedMsg = Me.m_strNotifiedMsg & Me.m_nameNotify.Common & " (" & Me.m_nameNotify.Canonical & ")" & Chr(10)
Else
Me.m_strNotifiedMsg = Me.m_strNotifiedMsg & Me.m_nameNotify.Common & Chr(10)
End If
End Forall
Else
Me.m_strNotifiedMsg = Me.m_stringtable.GetString(414,Nothing)
End If
Else
Me.m_strSubject = Me.m_stringtable.GetString(443,Nothing)
Me.m_strNotifiedMsg = Me.m_stringtable.GetString(416,Nothing)
End If
Set Me.m_noteDisable = New NotesDocument(Me.m_db)
Set Me.m_rItem = New NotesRichTextItem(Me.m_noteDisable, "Body")
Call Me.m_noteDisable.ReplaceItemValue ( "Form", "Memo")
Call Me.m_noteDisable.ReplaceItemValue ( "From", Me.m_NameOwner.canonical )
Call Me.m_noteDisable.ReplaceItemValue ( "AltFrom", Me.m_NameAltOwner.canonical )
Call Me.m_noteDisable.ReplaceItemValue ( "SendTo", Me.m_NameOwner.canonical )
Call Me.m_noteDisable.ReplaceItemValue ( "AltSendTo", Me.m_NameAltOwner.canonical )
Call Me.m_noteDisable.ReplaceItemValue ( "$LangFrom", Me.m_strLangOwner )
Call Me.m_noteDisable.ReplaceItemValue ( "$NameLanguageTags", Me.m_strLangOwner )
Call Me.m_noteDisable.ReplaceItemValue ( "Subject", Me.m_strSubject )
Call Me.m_noteDisable.ReplaceItemValue ( "$AutoForward", True )
Me.m_rItem.AppendText ( Me.m_strNotifiedMsg )
Me.m_noteDisable.Send (False)
End Sub
Function AgentOKToRun As Integer
Me.m_nUpdate = True '// make sure time stamp gets updated on profile note
Set Me.m_dtNow = New NotesDateTime("")
Me.m_dtNow.SetNow
Call TIMEGetFromItem("dateFirstDayBack", Me.m_profileOffice, Me.m_dtReturn)
Call TIMEGetFromItem("dateFirstDayOut", Me.m_profileOffice, Me.m_dtLeave)
'// If this is running after the date return, stop sending Out of Office messages and
'// start sending reminders to the user to disable it
If Me.m_dtNow.TimeDifference(Me.m_dtReturn) > 0 Then
'// Check if the first reminder has been sent
If Not Me.m_profileOffice.HasItem("DateFirstReminderSent") Then
'// Set Agent running date in Profile
Set Me.m_dtFirstReminderSent = New NotesDateTime(Me.m_dtNow.DateOnly)
Call Me.m_profileOffice.ReplaceItemValue("DateFirstReminderSent",Me.m_dtFirstReminderSent)
Call Me.m_profileOffice.Save(True, False , True)
Call Me.m_OutOfOfficeLog.LogAction("First reminder sent.")
'// Set flags
Me.m_nFirstReminder = True '// Send first reminder flag
Call SendDisableReminder(Me.m_nFirstReminder) '// Send the reminder
Me.m_nUpdate = False '// We will not update the notified list
AgentOKToRun = False '// Agent should not run. All the work is done!
Exit Function
'// Check if addional daily reminder is required
Elseif Not Me.m_profileOffice.HasItem("DateDisableReminderSent") Then
'// Set Agent running date in Profile
Set Me.m_dtDisableReminderSent = New NotesDateTime(Me.m_dtNow.DateOnly)
Call Me.m_profileOffice.ReplaceItemValue("DateDisableReminderSent",Me.m_dtDisableReminderSent)
Call Me.m_profileOffice.Save(True, False , True)
Call Me.m_OutOfOfficeLog.LogAction("Daily reminder daily sent.")
'// If this is the returning day, we already sent the first additional daily reminder
If Not Cdat(Me.m_dtNow.dateonly) = Cdat(Me.m_dtReturn.dateonly) Then
Me.m_nFirstReminder = False '// Send the first additional daily reminders
Call SendDisableReminder(Me.m_nFirstReminder)
End If
Me.m_nUpdate = False
AgentOKToRun = False
Exit Function
'// Need to check if we already sent a daily reminder
Elseif Me.m_profileOffice.HasItem("DateDisableReminderSent") Then
Call TIMEGetFromItem("DateDisableReminderSent", Me.m_profileOffice, Me.m_dtDisableReminderSent)
If Cdat(Me.m_dtNow.dateonly) > Cdat(Me.m_dtDisableReminderSent.dateonly) Then
Me.m_nFirstReminder = False '// Send all other additional daily reminders
Call SendDisableReminder(Me.m_nFirstReminder)
AgentOKToRun = False
Me.m_nUpdate = False
'// Set Agent running date in Profile
Set Me.m_dtDisableReminderSent = New NotesDateTime(Me.m_dtNow.DateOnly)
Call Me.m_profileOffice.ReplaceItemValue("DateDisableReminderSent",Me.m_dtDisableReminderSent)
Call Me.m_profileOffice.Save(True, False , True)
Call Me.m_OutOfOfficeLog.LogAction("Daily reminder sent.")
Exit Function
Else '// No reminders needed for today
AgentOKToRun = False
Me.m_nUpdate = False
End If
Else '// No reminders needed
AgentOKToRun = False
Me.m_nUpdate = False
End If
'// If we are running before the user'// s first day out, we remove the Notified list
Elseif Me.m_dtNow.TimeDifference(Me.m_dtLeave) < 0 Then
Call Me.m_profileOffice.ReplaceItemValue ("Notified", "")
If Me.m_profileOffice.HasItem("DateFirstReminderSent")Then '// Clean up for First reminder
Call Me.m_profileOffice.RemoveItem ("DateFirstReminderSent")
End If
Call Me.m_profileOffice.Save(True, False , True)
Call Me.m_OutOfOfficeLog.LogAction("Notified List has been cleared.")
AgentOKToRun = False
Exit Function
Else '// We should run Out of Office
If Me.m_profileOffice.HasItem("DateFirstReminderSent")Then '// Clean up for First reminder
Call Me.m_profileOffice.RemoveItem ("DateFirstReminderSent")
End If
AgentOKToRun = True
End If
End Function
Function DocumentOK ( doc As NotesDocument )
DocumentOK = False
'// Note document collection may return a soft deleted note
If doc.IsDeleted Then
Exit Function
End If
'// if the note has been sent by an agent..
If doc.HasItem("$AutoForward") Or doc.SentByAgent Then
Exit Function
End If
'// if the user has elected not to respond to mail coming from the internet skip
If Me.m_nExcludeInternetEmail Then
If doc.hasitem("SMTPOriginator") Then
Exit Function
End If
End If
'// the document must have a delivered date..
If Not (doc.HasItem("DeliveredDate")) Then
Exit Function
End If
'// if the documents subject has the phrase in it
If Not (Me.m_IgnoreSubjectPhrase(0) = "") Then
Dim x As Integer
For x = 0 To Ubound(Me.m_IgnoreSubjectPhrase)
If Not Len(Me.m_IgnoreSubjectPhrase(x)) = 0 Then
If Instr(doc.Subject(0),Me.m_IgnoreSubjectPhrase(x)) Then
Exit Function
End If
End If
Next
End If
Call TIMEGetFromItem("DeliveredDate", doc, Me.m_dtdelivered)
If Me.m_dtdelivered Is Nothing Then
Exit Function
End If
'// the delivered date must be after the first day out...
If Me.m_dtLeave.TimeDifference(Me.m_dtdelivered) > 0 Then
Exit Function
End If
'// if doc is a return receipt or a delivery failure report, don't send notice..
Me.m_strForm = doc.GetItemValue ( "Form")(0)
If (Strcompare(Me.m_strForm, "Delivery Report") = 0) Then
Exit Function
End If
If (Strcompare(Me.m_strForm, "NonDelivery Report") = 0) Then
Exit Function
End If
If (Strcompare(Me.m_strForm, "Trace Report") = 0 ) Then
Exit Function
End If
If (Strcompare(Me.m_strForm, "Return Receipt")= 0) Then
Exit Function
End If
'// Check if ReplyTo is checked
If doc.HasItem("ReplyTo") Then
Me.m_strFrom = doc.GetItemValue ( "ReplyTo" )(0)
If (Me.m_strFrom = "") Then
Goto ContinueFindName
End If
If doc.HasItem("$AltReplyTo") Then
Me.m_strAltFrom = doc.GetItemValue ( "ReplyTo" )(0)
If (Me.m_strFrom = "") Then
Goto ContinueFindName
End If
Else
Me.m_strAltFrom = Me.m_strFrom
End If
Else
ContinueFindName:
Me.m_strFrom = doc.GetItemValue ( "From" )(0)
If doc.HasItem("AltFrom") Then
Me.m_strAltFrom = doc.GetItemValue ( "AltFrom" )(0)
Else
Me.m_strAltFrom = Me.m_strFrom
End If
End If
'// don't send a notice if this is from yourself..
If CompareNAME(Me.m_strFrom, Me.m_NameOwner.Canonical) Then
Exit Function
End If
If Not (Me.m_strFrom = Me.m_strAltFrom) Then
If Not FindNAMEInList(Me.m_strAltFrom, Me.m_vNamesList) = -1 Then
Exit Function
End If
End If
'// if the sender has already been notified, don't send another notice..
Me.m_vNamesList = Me.m_itemNotified.Values
If Not FindNAMEInList(Me.m_strAltFrom, Me.m_vNamesList) = -1 Then
Exit Function
End If
'// do not send to anyone in the ignore list
Me.m_vNamesList = Me.m_profileOffice.GetItemValue ("IgnoreFromList")
If Not FindNAMEInList(Me.m_strAltFrom, Me.m_vNamesList) = -1 Then
Exit Function
End If
'// do not send if the document was mailed to a group list and you do
'// not want the actual sender to be notified or if the document is a
'// reminder notice saved by the out of office agent..
Me.m_vNamesList = Me.m_profileOffice.GetItemValue ("IgnoreSend")
Me.m_vSendTo = doc.GetItemValue ( "SendTo")
If Len(Me.m_vSendTo(0)) And Len(Me.m_vNamesList(0)) Then
Forall a In Me.m_vNamesList
Forall b In Me.m_vSendTo
If CompareNAME(Cstr(b), Cstr(a)) Then
Exit Function
End If
End Forall
End Forall
End If
DocumentOK = True
End Function
Function CompareNAME (sName1 As String, sName2 As String) As Integer
'// Function will returns true if two names are equal, False otherwise
Dim sCanName1 As String
Dim sDomainName1 As String
Dim sCanName2 As String
Dim sDomainName2 As String
Dim nLenName1 As Integer
Dim nLenName2 As Integer
Dim name1 As NotesName
Dim name2 As NotesName
Call GetNAMEComponents(sName1, sCanName1, sDomainName1)
Call GetNAMEComponents(sName2, sCanName2, sDomainName2)
Set name1 = New NotesName(sCanName1)
Set name2 = New NotesName(sCanName2)
'// Do a canonical comparison if both names are hierarchical
If (name1.IsHierarchical) And (name2.IsHierarchical) Then
If (Strcompare(sCanName1, sCanName2, 1) = 0) Then
CompareNAME = True
Exit Function
Else
Exit Function
End If
End If
'// Compare the common names
If (Strcompare(name1.common, name2.common, 1) = 0) Then
CompareNAME = True
Exit Function
End If
CompareNAME = False
End Function
Sub GetNAMEComponents(sUserName As String,sRetAbbreviatedName As String,sRetDomain As String)
'// Given a name, parse and extract proper name and Domain
Dim nameUser As NotesName
Set nameUser = New NotesName(sUsername)
If Not(nameUser.IsHierarchical) Then
sRetAbbreviatedName = Strleft(nameUser.addr821,"@")
sRetDomain = Strright(nameUser.addr821,"@")
Else
sRetAbbreviatedName = nameUser.abbreviated
sRetDomain = ""
End If
End Sub
Function FindNAMEInList(sKeyName As String, vListOfNames As Variant) As Integer
'// Given a name and a list of names return the index position if the user is found, -1 otherwise
Dim x As Integer
Dim iNames As Integer
FindNAMEInList = -1 '//True
If Isempty(vListOfNames) Then
Exit Function
End If
If Isarray(vListOfNames) Then
iNames = Ubound(vListOfNames)
For x = 0 To iNames
If (CompareNAME(sKeyName,Cstr(vListOfNames(x)))) Then
FindNAMEInList = x
Exit Function
End If
Next
Else
If (CompareNAME(sKeyName, Cstr(vListOfNames))) Then
FindNAMEInList = 0 '// False
End If
End If
End Function
Sub AddToNotifiedList ( NameFrom As String )
'// add name of sender to the notified list
Set Me.m_nameFrom = New NotesName ( NameFrom )
Call Me.m_itemNotified.AppendToTextList ( Me.m_nameFrom.Canonical )
Me.m_nUpdate = True
End Sub
Sub NotifySender ( doc As NotesDocument )
'// Creates and sends an Out of Office message to the sender
Me.m_vFieldData = Me.m_profileOffice.GetItemValue ( "SpecialPeople")
'// Check if ReplyTo is checked
If doc.HasItem("ReplyTo") Then
Me.m_strNameFrom = doc.GetItemValue ( "ReplyTo" )(0)
If (Me.m_strNameFrom = "") Then
Goto ContinueFindNotifier
End If
If doc.Hasitem( "$AltReplyTo" ) Then
Me.m_strNameAltFrom = doc.GetItemValue ( "$AltReplyTo" )(0)
If (Me.m_strNameAltFrom = "") Then
Goto ContinueFindNotifier
End If
Else
Me.m_strNameAltFrom = Me.m_strNameFrom
End If
Else
ContinueFindNotifier:
Me.m_strNameFrom = doc.GetItemValue ( "From" )(0)
If doc.Hasitem( "AltFrom" ) Then
Me.m_strNameAltFrom = doc.GetItemValue ( "AltFrom" )(0)
Else
Me.m_strNameAltFrom = Me.m_strNameFrom
End If
End If
If doc.Hasitem( "$LangFrom" ) Then
Me.m_strLangFrom = doc.GetItemValue ( "$LangFrom" )(0)
Else
Me.m_strLangFrom = ""
End If
'// Included in special sender list..
Me.m_nSendSpecial = False
If Not FindNAMEInList(Me.m_strNameAltFrom, Me.m_vFieldData) = -1 Then
Me.m_nSendSpecial = True
End If
Me.m_strDomain = doc.GetItemValue ("FromDomain")(0)
If Len(Me.m_strDomain) Then
Me.m_strSendToName = Me.m_strNameAltFrom & "@" & Me.m_strDomain'// (0)
Else
Me.m_strSendToName = Me.m_strNameAltFrom
End If
'// Build message based on generic message..
Me.m_vFieldData = Me.m_profileOffice.GetItemValue ( "DaysOut")(0)
Me.m_strMsg = Me.m_vFieldData & Chr(10) & Chr(10)
If Me.m_nSendSpecial Then
Me.m_vFieldData = Me.m_profileOffice.GetItemValue ( "SpecialMessage")(0)
Me.m_strSubject = Me.m_profileOffice.GetItemValue ( "SpecialSubject")(0)
Else
Me.m_vFieldData = Me.m_profileOffice.GetItemValue ( "GeneralMessage")(0)
Me.m_strSubject = Me.m_profileOffice.GetItemValue ( "GeneralSubject")(0)
End If
Me.m_strMsg = Me.m_strMsg & Me.m_vFieldData
'// send the mail message..
Set Me.m_noteEmail = New NotesDocument(Me.m_db)
Set Me.m_rItem = New NotesRichTextItem(Me.m_noteEmail, "Body")
Call Me.m_noteEmail.ReplaceItemValue ( "Form", "Memo")
Call Me.m_noteEmail.ReplaceItemValue ( "From", Me.m_NameOwner.canonical )
Call Me.m_noteEmail.ReplaceItemValue ( "AltFrom", Me.m_NameAltOwner.canonical )
Call Me.m_noteEmail.ReplaceItemValue ( "SendTo", Me.m_strSendToName )
Call Me.m_noteEmail.ReplaceItemValue ( "AltSendTo", Me.m_strNameAltFrom )
Call Me.m_noteEmail.ReplaceItemValue ( "$LangFrom", Me.m_strLangOwner )
Call Me.m_noteEmail.ReplaceItemValue ( "$NameLanguageTags", Me.m_strLangFrom)
Call Me.m_noteEmail.ReplaceItemValue ( "Subject", Me.m_strSubject)
Call Me.m_noteEmail.ReplaceItemValue ( "$AutoForward", True )
Me.m_rItem.AppendText ( Me.m_strMsg )
On Error Goto SendError
Me.m_noteEmail.Send (False)
'// add the sendto person the list of those notified..
Call AddToNotifiedList ( Me.m_strNameAltFrom)
Call Me.m_OutOfOfficeLog.LogAction("Added " & Me.m_strNameAltFrom & " to list" )
Exit Sub
SendError:
'// Log errors
Call Me.m_OutOfOfficeLog.LogError( Err, Error$ )
Exit Sub
End Sub
End Class
Alles anzeigen
Hallo Zusammen,
habe leider im Forum keinen passenden Thread für meine Frage gefunden.
Hier meine Frage ans Forum:
Besteht die Möglichkeit den Abwesenheitsagent so zu konfigurieren, dass er jedesmal eine Abwesenheitsnachricht schickt. Auch an Leute die bereits einmal eine Abwesenheitsnachricht erhalten haben?
Auszug aus der Noteshilfe:
ZitatWährend Ihrer Abwesenheit sendet Notes jeweils nur eine Nachricht an alle Personen, die Ihnen Mail senden, unabhängig davon, wie viele Nachrichten Ihnen die Personen senden. Am angegebenen Rückkehrdatum beginnt Notes Ihnen täglich so lange "Willkommen zurück"-Nachrichten zu senden, bis Sie
OK
habs hingekriegt.
-Danke-
Das mit dem Element schützen ist eine sehr gute Idee.
An diesem Element wird sich sowieso nichts ändern.
Kannst du mir vielleicht noch das Feld nennen und wie ich es als markiert Vorbelege.
Komme irgendwie nicht klar mit den vielen Masken und Teilmasken
und 1000enden Feldern.
Wäre eine echte Hilfe für mich.
Hallo
einer unserer Chefs will, dass seine Aufgaben die er neu erstellt automatisch privat angehakt ist.
man könnte bestimmt das Feld (habe ich aber noch nicht gefunden) mit dem Vorgabewert belegen.
Aber da alle mailfiles auf einer angepassten Schablone basieren und jeden Abend der Design task läuft würde dass ja jeden tag rausfallen.
Das der design task jeden tag läuft ist Absicht. so das Änderungen an der mail7.ntf einfach an alle verteilt werden können.
Jemand eine Idee wie ich das Problem lösen kann
gut - danke.
Zitat
RockWilder schrieb:
Wenn die ACL stimmt, frist sich das durch. 2x zu konvertieren kann im Gegenteil wilde Nebeneffekte haben!
in der ACL haben alle Server Manager Rechte. Und die Notesadmins ebenfalls.
Dann sollte das funktionieren.
Nochmals herzlichen Dank - geht ja razzfazz hier. super
Ich muß demnächst von Verison 6.5 auf 7.02 umstellen.
So weit ist alles klar. Nur bei einer Sache bin ich mir noch unsicher.
Ausgangslage:
3 Notesserver (kein Cluster)
Hauptstellenserver mit Transaktionsprotokollierung. Hauptstellenserver ist der einzige Server der Notesdatenbanken auf ein Tivoli backup-System sichert. Daher liegen auf diesem auch alle Mailfiles der anderen zwei Server als Replik.
Frage:
nach dem Upgrade der Server muß ich ja auch die mailfiles auf version 7 anheben.
Load convert -u mail\*.nsf * mail7.ntf sollte ja funktionieren.
Muß ich Mailfiles die eine replik auf dem haupstellenserver haben zweimal konvertieren. Oder werden alle Änderungen die durch die Anhebung entstehen durch die Replizierung weitergegeben?
danke
lys.
so könnte es gehen.
-danke
Wäre auf jedenfall eine einfache und gute Lösung.
Doch leider sind in der Maske schon mehrere Leserfelder drin.
Mit Mehrfachwerten die teilweise auf Felder verweisen die wiederrum berechnet sind.
Also ganz schön verzwickt.
Deshalb wäre mir die Lösung mit einer select Formel lieber.
Die DB ist leider nicht von mir. Und der sie programmiert hat ist nicht greifbar.
Hallo,
ich muß eine Ansicht so anpassen das bestimmte Mitarbeiter nur bestimmte Dokumente in dieser Ansicht sehen.
Ausgangspunkt:
In den Dokumenten gibt es das Optionsfeld "Bearbeiter" in dem die Abteilung ausgewählt ist.
Abt_A
Abt_B
Abt_C
Abt_D
Dann gibt es in der ACL UserRoles
Role_A
Role_B
Role_C
Role_D
Nun soll ein User nur Dokumente in der Ansicht sehen die seiner UserRole zugewiesen sind.
Beispiel:
User hat Role_A in der ACL und darf nur Dokumente sehen bei denen das Feld Bearbeiter den Wert Abt_A hat.
Habe schon selber lange rumprobiert mit @ismember("[Role_A]";@userrole) und @contains(Bearbeiter,"Abt_A"). Aber kriegs nicht in einen funktionierenden Syntax.
Geschweige denn in eine select Abfrage.
Wäre echt froh wenn mir jemand helfen kann.
ok - Danke
hat vielleicht noch einer eine Idee
Hier mal der Code der hinter dem Umbennen Button in der Ressourcen Maske liegt.
Habe die Stelle mal fett markiert. Und ein paar zeilen weiter wird auf eine Ansicht verwiesen die es nicht gibt in der DB.
Ich meine folgende Zeile mit der verst. Ansicht.
=template1.GetView("$RenameResourceHelp)")
Edit::
also das db Objekt hat verschiedene Eigenschaften wie es aussieht. zB title filename usw.. .Manche haben einen String wert und manche sind leer
Sub Click(Source As Button)
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim template1 As NotesDatabase
Dim template2 As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim xxvar As String
Dim view As NotesView
Dim templateview1 As NotesView
Dim templateview2 As NotesView
Dim server As String
Dim filename As String
Dim hiddendoc As NotesDocument
Set uidoc=ws.CurrentDocument
Set doc=uidoc.Document
If doc.GetItemValue("ResourceType")(0)="1" Then
xxvar="Räume"
Elseif doc.GetItemValue("ResourceType")(0)="2" Then
xxvar="Ressourcen"
End If
xxstr1="Ressource umbenennen"
xxstr2="Wenn Sie die Namen vorhandener "+ xxvar+"ändern, werden alle Reservierungen für diese "+ xxvar+" umbenannt. "
xxstr3="Eine Ressourcenumbenennungsbenachrichtigung wird an alle Leiter gesendet, die noch ausstehende Reservierungen für diese Ressource haben. Dies kann etwas dauern. "
xxstr4="Möchten Sie fortfahren?"
xxstr5="Die erforderlichen Einstellungen zum Umbenennen von Ressourcen wurden nicht gefunden. Ressource konnte nicht umbenannt werden. Bitte wenden Sie sich an den Datenbankmanager."
Set uidoc=ws.CurrentDocument
warn= ws.Prompt(2, xxstr1, xxstr2+xxstr3+xxstr4)
If warn=1 Then
'check if there is doc with Update My Meetings button
Set db=s.CurrentDatabase
Set view=db.GetView("($RenameResourceHelp)")
'if there is no doc in a view, open template on current server
If view.EntryCount=0 Then
server=db.Server
Set template1=s.GetDatabase(server, "resrc60.ntf")
If Not(template1 Is Nothing) And template1.IsOpen Then
Set templateview1 =template1.GetView("($RenameResourceHelp)")
If Not (templateview1 Is Nothing) Then
If templateview1.EntryCount<>0 Then
Set hiddendoc=templateview1.GetFirstDocument
End If 'templateview1.EntryCount<>0
End If ' Not templateview1 is nothing
End If ' template1.Open
'if there doc not found in a template on current server, ask user which template to use
If hiddendoc Is Nothing Then
Call ws.DialogBox("(FindTemplate)", True, True,True, False, False, False, "Wählen Sie einen Server", , True, True)
server=doc.GetItemValue("tmpServer")(0)
filename=doc.GetItemValue("tmpfile")(0)
Set template2=s.GetDatabase(server, filename)
If Not(template2 Is Nothing) And template2.IsOpen Then
Set templateview2 =template2.GetView("($RenameResourceHelp)")
'if there is no doc in a template on a server that user selected - cannot continue
If Not (templateview2 Is Nothing) Then
If templateview2.EntryCount<>0 Then
Set hiddendoc=templateview1.GetFirstDocument
End If 'templateview2.EntryCount<>0
End If ' Not templateview2 is nothing
End If ' template2.Open
End If' Not DocFound
If Not(hiddendoc Is Nothing) Then
Call hiddendoc.CopyToDatabase(db)
Else
Call ws.Prompt(1, xxstr1, xxstr5)
Exit Sub
End If
End If 'view.EntryCount=0
Call ws.DialogBox("(Rename Resource)", True, True, True, False, False, False, "Ressource umbenennen", , True, True)
End If 'if warn
Call uidoc.Refresh
End Sub
Alles anzeigen
sorry
natürlich "EntryCount".
zum view Objekt. hmm. Ich bin jetzt nicht der Entwickler. Bin froh das ich das mit dem debugger hingekriegt habe.
Ich sehe zwar unten im debugger unter dem reiter Variablen VIEW. aber da steht nix dabei sonst.
Guten Tag zusammen,
vielleicht kannn mir jemand bei meinen Problem helfen.
Beim umbenennen einer Ressource bekomme ich folgende Fehlermeldung
"Object variable not set"
wenn ich den Debugger mitlaufen lasse bleibt er hängen beim Code
If view.EntryCode = 0 then
Ich arbeite unter Notes 6.5.1.