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

  • Автор темы vodila
  • Дата начала
V

vodila

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

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

Спасибо.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
1. раз база не почтовая, то из этой базы при "поступлении" (что это значит в Вашем случае ещё надо расшифровать) слать письмо с у ведомлением в почтовую базу (и настроить механизм звук. уведомления о приходе нового письма) пользователю

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

vodila

#3
1. раз база не почтовая, то из этой базы при "поступлении" (что это значит в Вашем случае ещё надо расшифровать) слать письмо с у ведомлением в почтовую базу (и настроить механизм звук. уведомления о приходе нового письма) пользователю

2. напистаь сторонню программу (delphi, c++ etc. ) которая используя notesAPI или COM будет выводить уведомление и звук.
Спасибо за отклик.
Если я правильно понял, нужно реализовать агента. который бы при добавлении нового документа слал бы письмо с уведомлением. Как реализовать процедуру что-то не пойму. С полями "Кому" и "Тема" вроде ясно, а вот с полем "от кого" - нет.
Если не сложно покажите примерный код данной процедуры.

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

Спасибо
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
Где можно почитать про разработку приложений для Lotus в среде Delphi?
тут

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

vodila

#5
тут


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

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

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

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

morpheus

скриптописец
07.08.2006
3 915
1
#6
vodila
а что на тестовом сервере с рутером? почта ходит как таковая?
 
V

vodila

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Лучше сделай агента по событию "agent list selection". В нем делай рассылку.
Вызывай агент после сохранения документа(в PostSave событии).
 
V

vodila

#11
Лучше сделай агента по событию "agent list selection". В нем делай рассылку.
Вызывай агент после сохранения документа(в PostSave событии).
Спасибо, работает. Отправка уведомления происходит и при добавлении нового документа, и при редактировании уже существующего.

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

Код 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(выполнение: вручную из списка агентов; документы: все новые и измененные документы; запуск: простые действия(список адресатов)).

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#12
Правильно. В PostSave Source.IsNewDoc всегда False.
Проверить можно так. Заводишь глобальную переменную. Например, IsNewDoc. В PostOpen присваиваешь значение: IsNewDoc = Source.IsNewDoc.
В PostSave уже проверяешь её:
Код:
If IsNewDoc Then
...
IsNewDoc = False
End If
 
V

vodila

#13
Morpheus, Medevic

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