Форум продуктов IBM Lotus
Общие вопросы => Разработка приложений => Тема начата: Vi от 27 Октябрь 2012, 12:35:00
-
Всем доброго.
перед мной стала задача обработать неким образом помеченные документы (это письма).
Скрипт обработки у меня есть, но в нем не прописана пометка документа как обработанного.
По словом "обработанный" я подразумеваю вот что: Когда приходит письмо в Lotus Notes оно в списке писем помечается красным шрифтом и красной звездочкой рядом, как новое. Я хочу чтоб после того как агент обработал это письмо оно в представлении меняло свой цвет на черный, как будто его открывали обычно, кликая мышкой.
Пробовал метод MarkRead но результата нужного не достиг. В хелпе написано что-то типа Если БД не отслежвает маркировки непрочтенности, все документы считаются прочтенными, и этот метод не дает эффекта.
Отсюда вопросы:
1) Я вообще правильно делаю? Может MarkRead не для этого предназначен?
2) Что имеется ввиду под фразой - Если БД не отслежвает маркировки непрочтенности?
3) Как тогда клиент умудряется в представлении помечать документ как прочтенный?
Используется Lotus 6.5.6 в качестве клиента и Domino 8 в качестве сервера.
Вот как пробую:
Option Public
Sub Initialize
Dim session As New NotesSession
Dim DB As NotesDatabase
Dim doc As NotesDocument
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection=db.UnprocessedDocuments
For i =1 To collection.count
Set doc = collection.getnthdocument (i)
....
тут что-то делаем с doc
....
Call doc.Markread()
Next
End Sub
-
Добрый день!
1. Все верно делаете. Можете проверить, в обычной почтовой базе создать такого агента, там он корректно отработает.
Возможно необходимо вид отрефрешить, попробуйте после отработки агента нажать F9 в виде.
2. Если у вас видны звездочки и красный шрифт для новых документов, то эта функция включена. Эта настройка представлена в свойствах базы данных на последней вкладке, самая первая галка.
-
Появилась небольшая проблема.
Когда я добавляю Call doc.Markread(). в Клиенте 8.5 все работет хорошо, но в 6.5 выдает ошибку Illegal used PROPERTY.
Отладчика на 6.5 нет, посему не могу там посмотреть о чем он говорит, неужели 6-ка не имеет такого метода? И вообще я думал что скрипты выполняются на сервере, тогда почему под 8.5 на этом методе не дает ошибку?
-
Да, вы правы, этот метод введен в версии 8. Для 6.5 можно воспользоваться 3-им параметром в функции Save:
notesDocument.Save( force, createResponse [, markRead ] )
Все скрипты связанные с пользовательским интерфейсом(и не только) выполняются на клиенте. На сервере выполняются агенты по расписанию или если агент вызывается с указанием выполняться на сервере.
-
О! Вот это весьма ценное замечание (завтра на работе обязательно и это попробую), остается вопрос - Я то не редактирую документ, неужели даже в этом случае метод Save отработает?
Я то всего лишь открываю док для получения и извлечения аттачей...
Дописано: Этот метод не дает эффекта. doc.Save(True,False,True).
-
Как я понимаю анридлист поддерживается для каждого пользователя свой
ViV если вы вызовете метод Save То для какого пользователя документ будет помечен как read ::) ?
-
Для того, который запустил этот скрипт, т.е. для текущего.