<index><STRONG><index><STRONG>Рассылка о новых документах в БД за неде

Wanderer

Well-Known Member
Lotus team
23.03.2006
412
19
#1
Я не халявщик, но всё же.. Может есть у кого-то уже реализованная подобная задача.
Есть база документов, необходимо написать агент, который будет делать автоматическую еженедельную рассылку на группу пользователей о новом поступлении документов в БД с указанием этих самых документов. Можно просто указать, в каких они разделах. В идеале, конечно, лучше бы добавить и ссылку на данный документ.

Буду рад и просто советам, рекомендациям в каком направлении идти, поскольку я не программист, только начинаю изучать это дело потихоньку.
 

vvlad

Well-Known Member
19.01.2007
63
0
#2
Класс NotesDocumentCollection.
Вот пример из хелпа. Отбираются доки в датой, дольше заданной:

This script uses the Search method in NotesDatabase to get a NotesDocumentCollection object representing all of the documents created after March 14, 1995 whose Subject contains "lake."

Dim db As New NotesDatabase( "Ankara", "project.nsf" )
Dim dateTime As New NotesDateTime( "03/14/95" )
Dim selection As String
Dim collection As NotesDocumentCollection
selection = "@Contains( Subject; ""lake"" )"
Set collection = db.Search( selection, dateTime, 0 )
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
412
19
#3
Хорошо, мы имеем на руках коллекцию. Как её потом отправить по почте? Эту коллекцию необходимо разобрать на какой-то заголовок по каждому документу, собрать это в один список, и отправить одним письмом.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#4
<!--QuoteBegin-Wanderer+1:03:2007, 10:18 -->
<span class="vbquote">(Wanderer @ 1:03:2007, 10:18 )</span><!--QuoteEBegin-->Хорошо, мы имеем на руках коллекцию. Как её потом отправить по почте? Эту коллекцию необходимо разобрать на какой-то заголовок по каждому документу, собрать это в один список, и отправить одним письмом.
[snapback]57681" rel="nofollow" target="_blank[/snapback]​
[/quote]
Посмотри класс NotesNewsletter.

Можно использовать агент After Documents are created or modified.
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
412
19
#5
Благодарю, покопаюсь сегодня, посмотрю, что я из этого всего усвою.
 

RAJ

Well-Known Member
17.01.2007
440
0
#6
предлагаю сделать следующее:
Параметры агента:
- запуск раз в неделю:
- отбирает документы созданные\измененные за последние 7 дней(или другое условие);
- создать простое действие "Отправить аннотацию", включив галочку "Включить аннотации документов"

В итоге приходит письмо со ссылками на документы
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#7
Есть база документов, необходимо написать агент, который будет делать автоматическую еженедельную рассылку на группу пользователей о новом поступлении документов в БД с указанием этих самых документов.
Начиная с 5-ки есть готовый механизм подписки (Subscription), но почти не востребованный
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
412
19
#8
<!--QuoteBegin-Constantin A Chervonenko+1:03:2007, 14:20 -->
<span class="vbquote">(Constantin A Chervonenko @ 1:03:2007, 14:20 )</span><!--QuoteEBegin-->Начиная с 5-ки есть готовый механизм подписки (Subscription), но почти не востребованный
[snapback]57750" rel="nofollow" target="_blank[/snapback]​
[/quote]
Можно об этом чуточку поподробнее?
----------
До механизма подписки добрался, нужно будет его потестировать.. Но у этого метода есть один минус - нужно настраивать каждого клиента на прием подписки
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
412
19
#9
предлагаю сделать следующее:
Параметры агента:
- запуск раз в неделю:
- отбирает документы созданные\измененные за последние 7 дней(или другое условие);
- создать простое действие "Отправить аннотацию", включив галочку "Включить аннотации документов"
Попробовал пойти по данному пути, всё работает, спасибо. Есть только уточняющие вопросы.
Агент, у которого в таргетах указаны "all new & modified documents", а в формуле отбора стоят документы за последние 7 дней, будет работать, как потребуется? Этот таргет нормально обрабатывается агентом, он корректно отбирает новые доки? Или лучше нацеливать его на все документы, а там уже селектом отбирать за 7 дней? Просто не хочется лишний раз перегружать сервер выборкой всех доков.
 

RAJ

Well-Known Member
17.01.2007
440
0
#10
Просто не хочется лишний раз перегружать сервер выборкой всех доков.
а что, если создать представление с формулой
Код:
SELECT @Created>@Adjust( @Now; 0; 0; -7; 0; 0; 0 )
и в агенте ограничиться документами этого представления(при этом в агенте можно снять проверку на "свежесть" документов)

но....
Using @Now in column or selection formulas may impact the efficiency of your application. It also causes the view refresh indicator to display constantl
P.S: очень интересно узнать ответы на поставленные Wanderer выше вопросы, касаемые "all new & modified documents" при агенте, который выполняется с большим интервалом.