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