|  01.06.2009, 11:25 | #1 | 
| Участник | 
			
			Какие есть варианты, чтобы инициировать с клиентской машины запуск процедуры (или триггера) на сервере (имеется ввиду не SQL-сервер, а NAS или Buisiness Notification)? Тоесть пользователь в процессе работы совершает действие (жмет кнопку, запускает процедуру или меняет значение поля и тем самым запускает триггер) и чтобы серверная программа подключенная к этой же базе могла бы на это отреагировать.
		 | 
|  | 
|  01.06.2009, 11:45 | #2 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Какие есть варианты, чтобы инициировать с клиентской машины запуск процедуры (или триггера) на сервере (имеется ввиду не SQL-сервер, а NAS или Buisiness Notification)? Тоесть пользователь в процессе работы совершает действие (жмет кнопку, запускает процедуру или меняет значение поля и тем самым запускает триггер) и чтобы серверная программа подключенная к этой же базе могла бы на это отреагировать. P.S. А вот это "имеется ввиду не SQL-сервер, а NAS или Buisiness Notification" немного не понял или не понял задачу.. | 
|  | 
|  01.06.2009, 12:32 | #3 | 
| Участник | 
			
			Нет, я не это имел ввиду. На клинетских машинах стоит клиент навижен, на еще одной машине (назовем её "сервер") надо установить NAS (Navision Application Server) или Buiseness Notification. Задача: на клиентской машине срабатывает код (процедура или триггер поля или таблицы) и инициирует выполение процедуры на "сервере". В голове пока что есть 2 решения: 1.Пока я вычитал из мануалов только, как настроить рассылку почты из Buiseness Notification, например при изменении значения какого-то поля таблицы. 2.Ну и еще в голову приходит вариант запустить на NAS код, который через определенные интервалы времени будет мониторить появление записей в заведенной для этого специальной таблицы заданий, обрабатывать первую запись и удалять её (или помечать как выполненную) и т.д. Но тут меня интересует сколько ресурсов будет отнимать такой процесс? Ведь врядли мне отдельную машину под это выделят, скорее всего на каком-то имеющемся сервере придется поставить. | 
|  | 
|  01.06.2009, 13:06 | #4 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Нет, я не это имел ввиду. На клинетских машинах стоит клиент навижен, на еще одной машине (назовем её "сервер") надо установить NAS (Navision Application Server) или Buiseness Notification. Задача: на клиентской машине срабатывает код (процедура или триггер поля или таблицы) и инициирует выполение процедуры на "сервере". В голове пока что есть 2 решения: 1.Пока я вычитал из мануалов только, как настроить рассылку почты из Buiseness Notification, например при изменении значения какого-то поля таблицы. 2.Ну и еще в голову приходит вариант запустить на NAS код, который через определенные интервалы времени будет мониторить появление записей в заведенной для этого специальной таблицы заданий, обрабатывать первую запись и удалять её (или помечать как выполненную) и т.д. Но тут меня интересует сколько ресурсов будет отнимать такой процесс? Ведь врядли мне отдельную машину под это выделят, скорее всего на каком-то имеющемся сервере придется поставить. | 
|  | 
|  01.06.2009, 13:54 | #5 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Какие есть варианты, чтобы инициировать с клиентской машины запуск процедуры (или триггера) на сервере (имеется ввиду не SQL-сервер, а NAS или Buisiness Notification)? Тоесть пользователь в процессе работы совершает действие (жмет кнопку, запускает процедуру или меняет значение поля и тем самым запускает триггер) и чтобы серверная программа подключенная к этой же базе могла бы на это отреагировать. | 
|  | 
|  01.06.2009, 13:56 | #6 | 
| Участник | 
			
			Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)?
		 | 
|  | 
|  01.06.2009, 14:04 | #7 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)? | 
|  | 
|  01.06.2009, 14:12 | #8 | 
| Участник | 
			
			Все ясно. Тоже уже добрался до этого триггера. Интересно какие из обработчиков там являются стандартными для русской версии Navision 4.0 SP2 ?
		 | 
|  | 
|  01.06.2009, 14:14 | #9 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)? | 
|  | 
|  01.06.2009, 14:23 | #10 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)?   | 
|  | 
|  04.06.2009, 10:37 | #11 | 
| Участник | 
			
			Нашел еще в Navision такую штуку в главном меню Администрирование -> Диспетчер Задач (Форма 6093). Не изобретаю ли я велосипед? Кто-нибудь может рассказать назначение и принцип работы (тоже видимо на NAS базируется?)?
		 | 
|  | 
|  04.06.2009, 13:42 | #12 | 
| Участник | Цитата: 
		
			Сообщение от Raul
			   У нас SQL и NAS стоят на одном сервере, причем NAS выполняет тяжелые операции по учету и никаких тормозов к тому же плюс что данные по сетке не гоняются. А по вопросу могу посоветовать с небольшими доработками прикрутить к NAS функционал стандартного диспетчера задач, навешать на него все задания и готово. Тогда при нажатии кнопки на клиентской машине нужно всего лишь у соответствующего задания поставить в поле "след. время проверки" текущее время. | 
|  | 
|  06.06.2009, 00:45 | #13 | 
| Участник | Цитата: 
		
			Сообщение от VasVovec
			   Какие есть варианты, чтобы инициировать с клиентской машины запуск процедуры (или триггера) на сервере (имеется ввиду не SQL-сервер, а NAS или Buisiness Notification)? Тоесть пользователь в процессе работы совершает действие (жмет кнопку, запускает процедуру или меняет значение поля и тем самым запускает триггер) и чтобы серверная программа подключенная к этой же базе могла бы на это отреагировать. При ошибке запуска процедуры или триггера на сервере транзакция на клиенской машине должна откатиться? Если неважно - думаю помогут уже предложенные варианты. Если да, возможна реализация через веб-сервисы: 1. Модифицируете НАВ таким образом, чтобы при запуске НАВ с определенными параметрами запускался Communcation Component, и например через сокеты и ставился на прослушку (см. функцию NASHander в 1 cu), пишете обработчик входящего XML . 2. Ставите HTTP Server (к примеру IIS) и пишете простенькую веб-страничку, перенаправлющую запросы от клиента в NAS Навижна и ответ обратно. 3. Запуск триггера со стороны клиентской части Нава будет выглядеть как обращение к определенной веб-странице с некими параметрами, ответ всегда можно обработать и при необходимости сгенерить ошибку. 4. Запуск триггера со стороны серверной части будет выглядеть разбор входящего XML, запуск функций Нава и генерации ответа | 
|  | 
|  05.08.2009, 14:43 | #14 | 
| Участник | 
			
			Посмотри  CU  99008528-BizTalk Appln. Srv. Startup последние три процедурки, разберись как они туду попали. И вперёд! | 
|  |