![]() |
#1 |
Участник
|
Авт. завершение работы Navision
Есть следующая проблема. Кол-во потенциальных пользователей превышает кол-во достпных сессий. Есть пользователи открывающие Navision для просмотра и составления отчетов. После завершения работы они его не закрывают потому как влом снова открывать и заводить пароль. В результате есть необходимость после например 5 минут бездействия в системе её закрывать.
Если кто сталкивался с такой проблемой расскажите как решали. Средствами Navision или как-нибудь по другому. |
|
![]() |
#2 |
Аксакал в отставке
|
Могу предложить поставить таймер-триггер, который будет отключать пользователя спустя определенное время.
Суть в том, чтобы сперва определиться, что является критерием неактивности пользователя.
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#3 |
Участник
|
Неактивность пользователя - полное отсутвие деятельности в Navision.
Таймер-тригер предлагается поставить на SQL или Navision? |
|
![]() |
#4 |
Аксакал в отставке
|
В код формы меню пользователя.
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#5 |
Участник
|
1. Меню может быть и закрыто.
2. Пусть даже в меню, но как проверить работает пользователь или нет? На данный момент реализовал именно через главное меню и отслеживание изменений времени использования проссора в таблице 2000000009. Но может есть вариант получше? |
|
![]() |
#6 |
Аксакал в отставке
|
Поставьте на закрытие основного меню дисконнект.
![]()
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#7 |
Участник
|
Осталась только одна проблемка.
Ввиду своей огранниченности и скудных познаний для завершения работы Navision не придумал ничего лучше чем SHELL('Taskkill /IM finsql.exe'); Работает правда это только в XP и выше. А тут W2000 у большинства пользователей. Писать собственную утилиту неохота , тем более неохота ставить везде XP. Да и пользователи могут догадаться поменять имя exe-шника. К тому же меня терзают смутные сомнения что можно вырубать navision как то иначе. Если знаете - скажите! Буду очень благодарен. |
|
![]() |
#8 |
Аксакал в отставке
|
Хм. Тут помочь не помогу, может что лучше в C/SIDE Guide найдете?
Чтобы пользователь ничего не поменял, организуйте ему доступ через терминал-сервер под лозунгом "будет работать быстрее". ![]()
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#9 |
Участник
|
Вообщем проблему решил. Пришлось тряхнуть стариной и поработать в Visual C++.
В результате написал утилитку находящюю HWND окна navision у клиента и посылающую ему сообщение о закрытии после 10 секундного предупреждения. Программку выложил на сервер и прописал в главной форме меню её вызов. Теперь все здорово, если конечно пользователи не поменяют название класса окна, но думаю это им уже точно не грозит. Если кому интересно как реализовано - могу рассказать подробнее (абсолютно бесплатно ![]() |
|
![]() |
#10 |
Аксакал в отставке
|
Почему отказался от реализация на C/AL?
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#11 |
Участник
|
Не нашел функций программного завершения работы Navision.
|
|
![]() |
#12 |
NavAx
|
Цитата:
Изначально опубликовано DA_NEAL
Вообщем проблему решил. Пришлось тряхнуть стариной и поработать в Visual C++. В результате написал утилитку находящюю HWND окна navision у клиента и посылающую ему сообщение о закрытии после 10 секундного предупреждения. Программку выложил на сервер и прописал в главной форме меню её вызов. Теперь все здорово, если конечно пользователи не поменяют название класса окна, но думаю это им уже точно не грозит. Если кому интересно как реализовано - могу рассказать подробнее (абсолютно бесплатно ![]() |
|
![]() |
#13 |
Участник
|
На сервере каждые 10 минут запускается задание (по таймеру) которое отслеживает по табличке 2000000009 активность пользователя.Соответсвенно нужна подобная табличка для сохранения предыдущих данных. Если установлено что пользователь активности не проявлял в табличке 2000000002(Users) ставится флажочек (NeedToExit)-поле которое добавил в таблицу самостоятельно. У пользователя на главном меню висит обработчик таймера который проверяет этот флажочек раз в минуту. Если он TRUE запускается утилита NavKiller командой Shell.
|
|
![]() |
#14 |
NavAx
|
Респект.
тупой вопрос: как именно активность пользователя по "сессии" отслеживается? По какому полю? |
|
![]() |
#15 |
Участник
|
По полю Время CPU (ms) + желательно (но я не делал) по полю Исп. Памяти (КВ).
Если эти данные изменились значит юзер че-то делал. Конечно че-то делал - значит действие приведшее к обновлению или получению данных с сервера или использованию времени самого сервера. Если юзер прокручивает скроллером сформированный отчет это действием не является ![]() |
|
![]() |
#16 |
NavAx
|
Все понял. Спасибо за разъяснения.
|
|
![]() |
#17 |
Аксакал в отставке
|
Так а запускать прогу из самого Navision нельзя?
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#18 |
Участник
|
Дак она и запускается из главного меню Navision.
SHELL('\\Server\NavKiller.exe'); |
|
![]() |
#19 |
Аксакал в отставке
|
Я имел ввиду поставить таймеры в главном меню пользователя в коде таймер на события и запускать прогу, которая будет дисконнектить сеанс.
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
![]() |
#20 |
NavAx
|
Цитата:
Изначально опубликовано Тимур
Я имел ввиду поставить таймеры в главном меню пользователя в коде таймер на события и запускать прогу, которая будет дисконнектить сеанс. Цитата:
На сервере каждые 10 минут запускается задание (по таймеру) которое отслеживает по табличке 2000000009 активность пользователя.
Цитата:
Дак она и запускается из главного меню Navision.
SHELL('\\Server\NavKiller.exe'); |
|
|
![]() |
||||
Тема | Ответов | |||
Navision и Сканеры штрихкодов | 1 | |||
Navision Database Server | 0 | |||
Наши в городе (Navision в MSDN) | 48 | |||
Navision Attain через Citrix | 2 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|