|
02.05.2006, 20:29 | #1 |
Участник
|
Три вопроса . . .
1. Как сделать так, чтобы по нажатию кнопки запускался некий процесс и крутился до тех пор пока он не будет погашен ну хотя бы той же кнопкой, другими словами как сделать, чтобы процесс запустился в фоне?
2. Как находясь в одном AOS определить какие пользователи работают в другом? 3. И последний, ну самый грустный, как программно определить какие AOSы доступны? |
|
02.05.2006, 21:30 | #2 |
Восставший
|
1. Как я понимаю, "в фоне" в Аксапте можно запустить только batch-процессы - на сервере, под управлением выделенного под это дело клиента...
Или - пишите прогу на С++ и вызывайте ее через shellexec... |
|
03.05.2006, 07:55 | #3 |
Участник
|
А как насчёт 2-го и 3-го вопросов?
|
|
03.05.2006, 08:58 | #4 |
Участник
|
Цитата:
Сообщение от Dronas
1. Как сделать так, чтобы по нажатию кнопки запускался некий процесс и крутился до тех пор пока он не будет погашен ну хотя бы той же кнопкой, другими словами как сделать, чтобы процесс запустился в фоне?
Он и "запускается", и "крутится до тех пор пока он не будет погашен". |
|
03.05.2006, 09:01 | #5 |
Участник
|
Цитата:
Сообщение от Dronas
2. Как находясь в одном AOS определить какие пользователи работают в другом?
3. И последний, ну самый грустный, как программно определить какие AOSы доступны? Вы получите информацию кто где работает. К сожалению, я не знаю как получить информацию о тех АОСах, которые где-то работают, но активных соединений к ним нет. Разве что при помощи WinAPI запрашивать информацию из реестра. Удаленно. Но чтобы получить ответ на такой запрос вам нужны права администратора на опрашиваемых машинах. |
|
03.05.2006, 09:43 | #6 |
Administrator
|
Цитата:
Сообщение от Dronas
1. Как сделать так, чтобы по нажатию кнопки запускался некий процесс и крутился до тех пор пока он не будет погашен ну хотя бы той же кнопкой, другими словами как сделать, чтобы процесс запустился в фоне?
Оговорюсь сразу - это направление вообще говоря нигде не описано - кроме как в этой форме. Это нигде в Аксапте (по кр мере я не встречал) не используется. Соответственно качество работы не гарантировано С другой стороны - по сведениям из достоверных источников это направление было существенно доработано в ядре Kernel Rollup I, которое в свою очередь было сделано на базе SP3-го ядра. Так что если у Вас ax32.exe версии ниже KR1 - то для использования вышеуказанного механизма настоятельно рекомендую обновить. С остальными вопросами - тяжелее - тк как верно подметил Mazzy - для получения этой информации как минимум нужны соответствующие права пользователя на сервере, причем по умолчанию, без дополнительной подстройки такие права будут только у администраторов сервера, на котором стоит АОС. Но сказать утвердительно - что этого сделать нельзя - тоже будет неправильно. Надо рыть.
__________________
Возможно сделать все. Вопрос времени |
|
03.05.2006, 09:59 | #7 |
Участник
|
Можно запустить отдельный поток на сервере AOS - в нем можно реализовать нужную вам логику - пример здесь
__________________
Axapta v.3.0 sp5 kr2 |
|
03.05.2006, 10:59 | #8 |
Участник
|
Цитата:
Сообщение от Dronas
13. И последний, ну самый грустный, как программно определить какие AOSы доступны?
С уважением, itfs. |
|
03.05.2006, 11:16 | #9 |
Участник
|
Проблема не в том, чтобы оставить записку, а в том, чтобы узнать где она находится (см. тех же классиков).
Если оставлять записку в публичном доступе, то тут же возникает проблема авторизации доступа или обеспечения безопасности при неавторизованном доступе к подобной информации. С потоками то же самое. АОС сам по себе УЖЕ является потоком. Надо знать где именно он находится. Если знаешь где он находится, то нужен авторизованный доступ к нему. Вообще говоря, есть нормальный штатный способ для доступа к АОСу - зайти на него пользователем. Но тут возникает другая проблема - держать столько автоботов, сколько есть АОСов, это значит впустую потратить лицензии на пользователей |
|
03.05.2006, 11:36 | #10 |
Участник
|
Цитата:
Сообщение от mazzy
Проблема не в том, чтобы оставить записку, а в том, чтобы узнать где она находится (см. тех же классиков).
Да и насчет безопастности ... ну зашифруйте информацию ... С уважением, itfs. PS Нельзя так с классиками. PPS Со мной - можно. |
|
03.05.2006, 14:05 | #11 |
Участник
|
Цитата:
Сообщение от itfs
В самом деле? Даже если кладет и вынимает один и тот же человек? (читай, программист это организовавший).
Но мне кажется, что над вопросом безопасности стоит подумать еще раз |
|
03.05.2006, 15:59 | #12 |
Administrator
|
По поводу вопроса №1:
Как вариант, посмотрите форму SysLabelSearch. Обратите внимание на метод Object::setTimeOut(). По поводу вопроса №2: Если Вы ставите вопрос так, тогда при условии, что у вас все клиенты работают в 3хуровенвой конфигурации, то все сессии, у которых clientKind() NotAOS, работают на других AOS'ах (не на вашем). А вообще, на сколько я помню, метод AOSName() у xSession вполне спасал (SP3). По поводу вопроса №3: А что Вы понимаете под доступностью AOS'а? Пример 1: Работают 2 AOS'а, но ярлыки пользователей настроены так, что одна часть заходит только на первый AOS, а другая - на второй. Вопрос - считать ли второй AOS доступным для первой группы, если единственное, что мешает им воспользоваться - ярлык? Пример 2: Работают 2 AOS'а для двух разных приложений. С клиентского компьютера доступен как первый, так и второй. Доступен ли второй AOS с точки зрения клиента, работающего с первым AOS'ом? Ведь они работают с разными приложениями.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|