|
30.05.2006, 19:42 | #1 |
Участник
|
Доброго времени суток, уважаемые! Помогите разобраться еще вот с какой проблемой:
Есть документы, создаваемые менеджерами, нужно сделать так, чтобы при любом изменении в любом из этих документов (типа, Товар Строка поменяли, или новую добавили) ОПРЕДЕЛЕННОМУ пользователю вылетало сообщение типа: "Заявка №.... изменена!" Заранее спасибо! |
|
31.05.2006, 09:03 | #2 |
Участник
|
А что если на триггерах OnInsert, OnModify и OnDelete соответствующих таблиц написать код, отправляющий письма адресатам, прописанным, например, в User Setup.
|
|
31.05.2006, 10:12 | #3 |
Участник
|
Да, если есть возможность задействовать корпоративную почту, то, наверное, это самый разумный вариант. Благо средств, позволяющих из навижна отправить письмо по событию - масса.
Побочная мысль, которая пришла в голову - это в какую-нибудь таблицу скидывать такое событие (по кот. надо отправлять извещения), а в главной форме повесить на таймер повесить опрос этой таблицы. |
|
31.05.2006, 10:19 | #4 |
Участник
|
Цитата:
Сообщение от e-statik
Да, если есть возможность задействовать корпоративную почту, то, наверное, это самый разумный вариант. Благо средств, позволяющих из навижна отправить письмо по событию - масса.
Побочная мысль, которая пришла в голову - это в какую-нибудь таблицу скидывать такое событие (по кот. надо отправлять извещения), а в главной форме повесить на таймер повесить опрос этой таблицы. |
|
01.06.2006, 19:43 | #5 |
Участник
|
Цитата:
Значит, говорите, триггер с таймером.... Главная форма - это меню, типа? |
|
31.05.2006, 19:33 | #6 |
Участник
|
Я по умолчанию предполагал, что он так же работает с системой
Тогда человека может и не быть на рабочем месте Может СМС? Абонент не доступен... Телеграф?... |
|
01.06.2006, 11:08 | #7 |
Участник
|
У нас почта включена все время, а Nav обрубается автоматом через 15 минут простоя пользователя дабы экономить сессии. Так что почтой все же гораздо практичнее. А если нет на рабочем месте, то и слать СМС смысла особого нет
|
|
01.06.2006, 11:40 | #8 |
Участник
|
Цитата:
А как сделали чтобы отключался через 15 минут? Поделитесь пожалуйста. |
|
01.06.2006, 11:51 | #9 |
Участник
|
Нарыл когда-то на одном из форумов. Ссылка сейчас не работает, но текст есть Убивает SQL-сервером, причем еще и сообшения рассылает. Хоть немного и не корректно выходит: клиентская часть Nav не закрывается автоматом и при обращении к ней выдает ошибку. Но пользователи уже привыкли.
"Отключить спящих (не работающих NN минут ) пользователей NAVISION нам помогает хранимая процедура sp_clear_nav. Параметры, пример запуска - см. прикрепленный файл со скриптом. CREATE PROCEDURE sp_Clear_NAV (@db_Name varchar(100),@prog_name varchar(100), @timer_min int ) AS SET NOCOUNT ON -- Сергеев П.Н. 12/08/04 -- процедура выкидывает из БД с именем @db_Name и приложения @prog_name пользователей, -- не работающих более @timer_min -- @db_Name - имя БД -- @prog_name - имя приложения или часть имени -- @timer_min - 'простой' приложения в минутах, по истечении которого приложения закрывается -- exec koltsovo_add_on.dbo.sp_Clear_NAV 'koltsovo', 'navision', 20 declare @spid int declare @program_name varchar(100) declare @status varchar(50) declare @last_batch datetime declare @host_name varchar(100) declare @sql varchar(100) DECLARE @msg varchar(100) DECLARE @cmd sysname, @var sysname declare cur_Processes cursor for select master..sysprocesses.spid, master..sysprocesses.program_name, master..sysprocesses.status, master..sysprocesses.last_batch, master..sysprocesses.hostname from master..sysprocesses inner join master..sysdatabases d on master..sysprocesses.dbid = d.dbid where d.Name=@db_Name and master..sysprocesses.status='sleeping' and charindex(@prog_name,ltrim(master..sysprocesses.program_name) ) > 0 and datediff(n,master..sysprocesses.last_batch, getdate()) > @timer_min open cur_Processes fetch next from cur_Processes into @spid, @program_name,@status, @last_batch, @host_name while @@fetch_status=0 begin set @sql='kill '+convert(varchar(100), @spid) -- Приложение navision закрыто, так как Вы не работали более NN минут! SET @var = @host_name SET @cmd = 'net send ' + rtrim(convert(varchar(15),@host_name)) + ' Приложение ' + rtrim( convert(varchar(50),@prog_name)) + ' закрыто, так как Вы не работали более ' + rtrim(convert(varchar(10),@timer_min)) + ' мин!' EXEC master..xp_cmdshell @cmd exec(@sql) --print @spid fetch next from cur_Processes into @spid, @program_name,@status, @last_batch, @host_name end close cur_Processes deallocate cur_Processes" |
|
01.06.2006, 17:50 | #10 |
Участник
|
Хм, интересная штукенция. Может и нам сгодится
|
|
01.06.2006, 20:29 | #11 |
Участник
|
Ага, типа оно
|
|
13.06.2006, 16:37 | #12 |
Участник
|
У меня есть такая штукенция.
Нет сенд внутри навика. |
|
19.06.2006, 17:23 | #13 |
Участник
|
|
|