У нас есть пользовательский календарь, содержащий определенное расписание, которое мы хотим, чтобы все другие пользователи по умолчанию могли читать. Пользователи могут легко добавить указанный календарь вручную, но оказывается немного сложным заставить некоторых пользователей понять, как это сделать. Мы используем Lotus Notes, и обе версии сервера - 9.0.1.
Есть ли способ развернуть этот конкретный параметр для всех пользователей, чтобы все уходящие и новые пользователи по умолчанию получали этот календарь в своей рабочей области?
Насколько мне известно, для этого нет никакой политики или чего-либо подобного. Но если вы знаете, где хранится информация, вы можете написать код LotusScript, чтобы предоставить этот календарь пользователю.
Информация хранится в элементе под названием CalURLs
в CalendarProfile
в почтовом файле пользователя.
Код для его автоматического заполнения может выглядеть так:
Dim docProfile as NotesDocument
Dim db as NotesDatabase
Dim itemUrl as NotesItem
Dim strNewEntry as String
'you get the correct entry by inspecting the CalendarProfile
'of a user where you manually added the calendar
' or by checking http://www-01.ibm.com/support/docview.wss?uid=swg21636496
strNewEntry = "some text"
Set db = New NotesDatabase( MailServerOfUser, MailFilePath )
Set docProfile = db.GetProfileDocument( "CalendarProfile" )
Set itemUrl = docProfile.GetFirstItem( "CalURLs" )
If isnull arraygetindex( itemUrLs.values, strNewEntry ) then
Call itemUrl.AppendToTextList( strNewEntry )
Call docProfile.Save( True, true, true )
end If
Этот код полностью не протестирован и может содержать опечатки. Он не содержит обработки ошибок.
Чтобы получить правильный синтаксис для CalURL- Entries, используйте этот URL
Одна проблема с календарным профилем заключается в том, что он постоянно сохраняется благодаря множеству взаимодействий с пользователем. Написание его «в бэкэнде» без взаимодействия с пользователем делает очень возможным, что новое значение будет потеряно.
Но ЕСЛИ пользователь делает это в своем клиенте (используя кнопку или PostOpen-скрипт базы данных), то ему необходимо закрыть все окна своей базы данных, прежде чем он сможет увидеть новую запись.