|
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:14 | #7 |
Участник
|
Цитата:
Сообщение от VasVovec
Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)?
|
|
01.06.2009, 14:23 | #8 |
Участник
|
Цитата:
Сообщение от VasVovec
Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)?
|
|
01.06.2009, 14:04 | #9 |
Участник
|
Цитата:
Сообщение от VasVovec
Мне тоже второй вариант импонирует. С NAS'ом дел не имел до этого, но возникает вопрос имеется же возможность даже на 1 машину ставить несколько NAS'ов, и интересно, как разделить код, который должен запускаться в каждой копии (поясняю, пример есть 2 установленых NAS'a для разных задач, к примеру у каждого по 1 процедуре, как избежать чтоб каждая копия исполняла только свою процедуру, а не обе)?
|
|
01.06.2009, 14:12 | #10 |
Участник
|
Все ясно. Тоже уже добрался до этого триггера. Интересно какие из обработчиков там являются стандартными для русской версии Navision 4.0 SP2 ?
|
|
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
последние три процедурки, разберись как они туду попали. И вперёд! |
|