Звуковое уведомление о новом документе

Тема в разделе "Lotus - Программирование", создана пользователем vodila, 12 апр 2008.

  1. vodila

    vodila Гость

    Доброго времени суток всем знатокам!

    Подскажите как можно создать звуковое уведомление (воспроизведение звукового файла) о поступлении нового документа. База не почтовая.

    Спасибо.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    1. раз база не почтовая, то из этой базы при "поступлении" (что это значит в Вашем случае ещё надо расшифровать) слать письмо с у ведомлением в почтовую базу (и настроить механизм звук. уведомления о приходе нового письма) пользователю

    2. напистаь сторонню программу (delphi, c++ etc. ) которая используя notesAPI или COM будет выводить уведомление и звук.
     
  3. vodila

    vodila Гость

    Спасибо за отклик.
    Если я правильно понял, нужно реализовать агента. который бы при добавлении нового документа слал бы письмо с уведомлением. Как реализовать процедуру что-то не пойму. С полями "Кому" и "Тема" вроде ясно, а вот с полем "от кого" - нет.
    Если не сложно покажите примерный код данной процедуры.

    Где можно почитать про разработку приложений для Lotus в среде Delphi?

    Спасибо
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    тут

    а от кого - это уже не так уж и важно, кого хотите , того и ставте( если не будет заполнен, то в поле от кого будет внесён тот пользователь - от которого агент запустился )
    ну а отправлять уведомления - NotesDocument.Send или @mailsend
     
  5. vodila

    vodila Гость

    применение @mailsend проблему не решило.
    Немного подробнее...
    У нас два сервера chess - тестовый и domino - рабочий. Базу документов создаю на chess. Создаю агент на событие "Добавление изменение документа".Добавляю действие - отправить сообщение, выбираю из адресной книги - адресатов. Агент - общий.
    При добавлении нового документа агент не срабатывает. Хотя если запустить выполнение агента руками - все работает как надо.
    Может из-за того что почтовые базы пользователей лежат на domino... или..... еще что?

    если в агенте испольую например: @mailsend("Иванов Иван/";"";"";"Новый документ";"";"") тоже не срабатывает автоматически. руками заводишь - все работает. В расписании агента указываю - запускать на domino. Если запустить проверку агента, то выдается сообщение "Агент не будет запущен т.к. он должен выполняться на domino..., а не на chess..".

    Перевести базу на domino не могу, т.к. надо начальникам показать весь функционал на тестовом сервере.

    Помогите разобраться. Спасибо.
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    vodila
    а что на тестовом сервере с рутером? почта ходит как таковая?
     
  7. Yakov

    Yakov Гость

    Как я понял, агент на chess? Так и нужно указать, чтоб запускался на chess.
     
  8. vodila

    vodila Гость

    Morpheus
    похоже почта на chess не была настроена.админ вроде настроить почту на chess, но результат тотже.

    Yakov
    в агенте прописывал и так и так: и на chess запускаться, и на domino. Результат тотже - руками запускаю работает, автоматом- нет.
     
  9. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    vodila
    код агента в студию
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Лучше сделай агента по событию "agent list selection". В нем делай рассылку.
    Вызывай агент после сохранения документа(в PostSave событии).
     
  11. vodila

    vodila Гость

    Спасибо, работает. Отправка уведомления происходит и при добавлении нового документа, и при редактировании уже существующего.

    Мне необходимо сделать так, чтобы агент запускался только при добавлении вновь создаваемых документов.

    Код PostSave события с проверкой на новый документ:

    Sub PostSave(Source As NotesUIDocument)
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim agent As NotesAgent

    Set db=s.CurrentDatabase
    Set agent=db.GetAgent("SendNewDocInfo")

    If Source.IsNewDoc Then
    If agent.Run=0 Then
    Messagebox "Уведомление отправлено",,"Success"
    Else
    Messagebox "Ошибка отправки уведомления",,"Failure"
    End If
    End If
    End Sub

    С этим скриптом агент не запускается.

    Свойства Агента SendNewDocInfo(выполнение: вручную из списка агентов; документы: все новые и измененные документы; запуск: простые действия(список адресатов)).

    Как правильно провести проверку на новый документ?
    Спасибо
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Правильно. В PostSave Source.IsNewDoc всегда False.
    Проверить можно так. Заводишь глобальную переменную. Например, IsNewDoc. В PostOpen присваиваешь значение: IsNewDoc = Source.IsNewDoc.
    В PostSave уже проверяешь её:
    Код (Text):
    If IsNewDoc Then
    ...
    IsNewDoc = False
    End If
     
  13. vodila

    vodila Гость

    Morpheus, Medevic

    Огромное спасибо. Все работает как надо.
     
Загрузка...

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