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

Тема в разделе "Lotus - Программирование", создана пользователем Wanderer, 1 мар 2007.

  1. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    Я не халявщик, но всё же.. Может есть у кого-то уже реализованная подобная задача.
    Есть база документов, необходимо написать агент, который будет делать автоматическую еженедельную рассылку на группу пользователей о новом поступлении документов в БД с указанием этих самых документов. Можно просто указать, в каких они разделах. В идеале, конечно, лучше бы добавить и ссылку на данный документ.

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

    vvlad Well-Known Member

    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    Класс 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 )
     
  3. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    Хорошо, мы имеем на руках коллекцию. Как её потом отправить по почте? Эту коллекцию необходимо разобрать на какой-то заголовок по каждому документу, собрать это в один список, и отправить одним письмом.
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--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.
     
  5. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    Благодарю, покопаюсь сегодня, посмотрю, что я из этого всего усвою.
     
  6. RAJ

    RAJ Well-Known Member

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

    В итоге приходит письмо со ссылками на документы
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Начиная с 5-ки есть готовый механизм подписки (Subscription), но почти не востребованный
     
  8. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    <!--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]
    Можно об этом чуточку поподробнее?
    ----------
    До механизма подписки добрался, нужно будет его потестировать.. Но у этого метода есть один минус - нужно настраивать каждого клиента на прием подписки
     
  9. Wanderer

    Wanderer Lotus team
    Lotus team

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

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    а что, если создать представление с формулой
    Код (Text):
    SELECT @Created>@Adjust( @Now; 0; 0; -7; 0; 0; 0 )
    и в агенте ограничиться документами этого представления(при этом в агенте можно снять проверку на "свежесть" документов)

    но....
    P.S: очень интересно узнать ответы на поставленные Wanderer выше вопросы, касаемые "all new & modified documents" при агенте, который выполняется с большим интервалом.
     
Загрузка...

Поделиться этой страницей