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

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
Я не халявщик, но всё же.. Может есть у кого-то уже реализованная подобная задача.
Есть база документов, необходимо написать агент, который будет делать автоматическую еженедельную рассылку на группу пользователей о новом поступлении документов в БД с указанием этих самых документов. Можно просто указать, в каких они разделах. В идеале, конечно, лучше бы добавить и ссылку на данный документ.

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

vvlad

Класс 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 )
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
Хорошо, мы имеем на руках коллекцию. Как её потом отправить по почте? Эту коллекцию необходимо разобрать на какой-то заголовок по каждому документу, собрать это в один список, и отправить одним письмом.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--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.
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
Благодарю, покопаюсь сегодня, посмотрю, что я из этого всего усвою.
 
R

RAJ

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

В итоге приходит письмо со ссылками на документы
 
30.05.2006
1 345
12
BIT
0
Есть база документов, необходимо написать агент, который будет делать автоматическую еженедельную рассылку на группу пользователей о новом поступлении документов в БД с указанием этих самых документов.
Начиная с 5-ки есть готовый механизм подписки (Subscription), но почти не востребованный
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
<!--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]
Можно об этом чуточку поподробнее?
----------
До механизма подписки добрался, нужно будет его потестировать.. Но у этого метода есть один минус - нужно настраивать каждого клиента на прием подписки
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
предлагаю сделать следующее:
Параметры агента:
- запуск раз в неделю:
- отбирает документы созданные\измененные за последние 7 дней(или другое условие);
- создать простое действие "Отправить аннотацию", включив галочку "Включить аннотации документов"

Попробовал пойти по данному пути, всё работает, спасибо. Есть только уточняющие вопросы.
Агент, у которого в таргетах указаны "all new & modified documents", а в формуле отбора стоят документы за последние 7 дней, будет работать, как потребуется? Этот таргет нормально обрабатывается агентом, он корректно отбирает новые доки? Или лучше нацеливать его на все документы, а там уже селектом отбирать за 7 дней? Просто не хочется лишний раз перегружать сервер выборкой всех доков.
 
R

RAJ

Просто не хочется лишний раз перегружать сервер выборкой всех доков.
а что, если создать представление с формулой
Код:
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" при агенте, который выполняется с большим интервалом.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!