AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.12.2014, 09:15   #1  
sable102 is offline
sable102
Участник
Аватар для sable102
Злыдни
 
34 / 21 (1) +++
Регистрация: 22.07.2011
Адрес: тундра
Закрытие при ошибке
Можно ли убрать диалоговое окно, которое возникает при падении сети(или других ошибках) перед закрытием аксапты. Нужно чтоб программа просто закрылась, без диалога.(как на рис.)

ax 4.0
Изображения
 
Старый 29.12.2014, 15:13   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Нет, нельзя. Это kernel-окно.
Старый 30.12.2014, 13:08   #3  
sable102 is offline
sable102
Участник
Аватар для sable102
Злыдни
 
34 / 21 (1) +++
Регистрация: 22.07.2011
Адрес: тундра
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Нет, нельзя. Это kernel-окно.
Проблема в пакетнике, если аксапта вылетает, то пакетник соответсвенно отключается, и некоторые ночные пересчеты не выполняются.
Хотел сделать, чтоб клиент аксапты запускался как служба. И поставить при сбое этой службы перезапуск. Но из-за этого окна клиент не закрывается при сбое аоса.
Есть какие нибудь другие варианты решения проблемы перезапуска пакетника?
Старый 30.12.2014, 13:45   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Можно запускать пакетник на том же хосте, что и АОС, тогда вероятность возникновения проблем с соединением ощутимо снизится. Если проблема возникает не из-за сети, а из-за падения АОСа, то можно настроить для его службы параметры восстановления, согласно которым, скажем, запускать после падений скрипт, который бы принудительно перезапускал службы пакетных заданий. Кажется, тот же srvany умеет прибивать процесс, оберткой для которого он является с т.з. Service Manager, так что висящий модальный MsgBox ему помехой не будет.

PS. Как же здорово, что с 2009-й пакетные задания выполняет сам АОС...

PPS. Теоретически можно пропатчить ядро клиента, чтобы он не показывал этот MsgBox.
Старый 30.12.2014, 15:25   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от sable102 Посмотреть сообщение
Проблема в пакетнике, если аксапта вылетает, то пакетник соответсвенно отключается, и некоторые ночные пересчеты не выполняются.
Хотел сделать, чтоб клиент аксапты запускался как служба. И поставить при сбое этой службы перезапуск. Но из-за этого окна клиент не закрывается при сбое аоса.
Есть какие нибудь другие варианты решения проблемы перезапуска пакетника?
- Создайте новую таблицу в AX, аля "SysBatchAliveStatus" c единственным полем "LastActivityDateTime"
- Обновляйте это поле текущей датой\временем при обработке пакетников (либо непосредственно из критически важного пакетника)
- Напишите на .net небольшую утилитку по чтению этого поля напрямую из БД AX. Её можно будет запустить как сервис.
- В случае, если поле давно не обновлялось, делаем вывод о повисшей\отвалившейся сессии, перезапускаем клиент\ либо АОС либо делаем ещё что-то

ну как-то так навскидку. Когда-то я тоже боролся с подобными проблемами, практика показала, что надежнее всего сделать подобный external-watchdog.
Дальше можно расширить, скажем, в таблицу кроме последней даты выполнения, записывать ID процесса клиента AX, таким образом, иметь возможность убивать отвалившийся процесс клиента.
Старый 30.12.2014, 18:42   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А зачем новая таблица? Журнал выполнения пакетов вполне для этого можно использовать.

А дальше поставить на sql джоб, который сравнивает текущее время с этой таблицей и, например, шлет на почту уведомление.
__________________
Ivanhoe as is..
Старый 30.12.2014, 22:00   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А зачем новая таблица? Журнал выполнения пакетов вполне для этого можно использовать.

А дальше поставить на sql джоб, который сравнивает текущее время с этой таблицей и, например, шлет на почту уведомление.
Ну, тут главное - идея, можно и так.
Старый 01.01.2015, 23:35   #8  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
В качестве идеи и новогодней байки

Делал то же самое давным давно в трешке
и даже тут спрашивал
Пакетный сервер как сервис WIndows

В итоге обошлось без программирования в традиционном понятии. На проекте пытались использовался Automate для интеграции с программой, авторы которой интеграцию не предусматривали ни в каком виде. Но при этом получать из нее данные для аксапты было таки нужно. Automate имитировал юзера и строил отчеты в файл, которые аксапта автоматом загружала.

Чем закончилось дело с интергацией я не знаю ибо покинул компанию раньше, но выполнять "по совместительству" с интеграцией задачу закрытия окошка упавшего клиента не составило никакого труда.

Так что в качестве варианта решения можете посмотрите на какие нибудь автокликекры, которых готовых просто немеряно.
За это сообщение автора поблагодарили: Logger (1), DSPIC (5), sable102 (1).
Старый 12.01.2015, 09:07   #9  
sable102 is offline
sable102
Участник
Аватар для sable102
Злыдни
 
34 / 21 (1) +++
Регистрация: 22.07.2011
Адрес: тундра
Цитата:
Сообщение от db Посмотреть сообщение
В качестве идеи и новогодней байки
Спасибо за "-INTERNAL=NOMODALBOXES"

В общем, сделал запуск клиента аксы, как службу с помощью утилиты nssm, указав в аргументы конф.утилиту и дописав -INTERNAL=NOMODALBOXES. И сделал автозапуск обработки пакетов для учетки пакетника.
Изображения
 
За это сообщение автора поблагодарили: Logger (3).
Старый 12.01.2015, 10:29   #10  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от sable102 Посмотреть сообщение
Можно ли убрать диалоговое окно, которое возникает при падении сети(или других ошибках) перед закрытием аксапты. Нужно чтоб программа просто закрылась, без диалога.(как на рис.)

ax 4.0
Цитата:
Сообщение от sable102 Посмотреть сообщение
Спасибо за "-INTERNAL=NOMODALBOXES"
Так опция помогла в итоге?
Старый 12.01.2015, 11:29   #11  
sable102 is offline
sable102
Участник
Аватар для sable102
Злыдни
 
34 / 21 (1) +++
Регистрация: 22.07.2011
Адрес: тундра
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Так опция помогла в итоге?
да, клиент закрывается без сообщения.
За это сообщение автора поблагодарили: db (3), DSPIC (5).
Теги
internal, nomodalboxes, startup command

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2009: Закрытие нефинансовых переносов - ошибки Maxim Gorbunov DAX: Функционал 0 12.03.2014 13:40
Повторный пересчет и закрытие leka DAX: Функционал 5 12.10.2012 19:03
Закрытие склада vs пересчет себестоимости jonny DAX: Функционал 4 22.11.2011 23:30
Странное закрытие склада и коррекция себестоимости в наличии Aquarius DAX: Функционал 11 28.05.2010 11:45
Закрытие и коррекция AlexUnik DAX: Функционал 20 13.09.2004 15:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:20.