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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2010, 14:38   #1  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Нужная конфигурация из командной строки
Аксапта 3 SP 6. AOS
Всем привет.

Вопрос, как из командной строки запустить класс с параметрами, при этом в нужной конфигурации Аксапты ( файл.ахс)? Сейчас возникла проблема в нужной конфигурации аксапты.
Старый 13.01.2010, 14:59   #2  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Может не понятно написал..
Хотелось бы при запуске аксапты (из коммандной строки) избежать запуска формы, выбора Сервера АОС.
Старый 13.01.2010, 15:36   #3  
Andrey Peganov is offline
Andrey Peganov
Участник
 
10 / 27 (1) +++
Регистрация: 19.01.2007
Просто сделайте пользователю ярлык на файл .axc. Аксапта запустится с конфигурацией из этого файла, где Вы, видимо, прописали имя хоста и АОСа
Для входа на определенный АОС без окна выбора этого достаточно. Если действительно нужно после запуска Аксапты запустить какой-то класс с параметрами, то потребуется модификация
Старый 13.01.2010, 15:49   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
startupcmd
autorun
Старый 13.01.2010, 15:54   #5  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Это все я знаю.. приведенные ссылки читал.. Спасибо..

Я так понимаю ответ: "Никак".. Плохо..
Вариант с ярлыком не подходит, так как хотел из аксапты запускать другой экземпляр аксапты (как альтернатива не работающим в 3ке потокам), с параметрами..
Старый 13.01.2010, 16:05   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Использовать COM?
Старый 13.01.2010, 16:15   #7  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
СОМ?! Интересно.. Это как?
Я думал использовать WinAPI::shellExecute()

Последний раз редактировалось Вата; 13.01.2010 в 16:26.
Старый 13.01.2010, 17:07   #8  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Придумал!
Буду открывать .axc файл, и прописывать там параметр
X++:
startupcmd,Text,
Изврат конечно, но работает
Старый 13.01.2010, 17:20   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Да запустите COM-конектор, пусть он класс как раз на выполнение и запускает. Лицензию на клиента съэкономите.

С Уважением,
Георгий
Старый 13.01.2010, 17:44   #10  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Хмм.. А можно в меня примером кинуть, что то не нашел на форуме?!
В Коме я боюсь не наглядно будет, завершился процес или нет..
Старый 13.01.2010, 18:15   #11  
Andrey Peganov is offline
Andrey Peganov
Участник
 
10 / 27 (1) +++
Регистрация: 19.01.2007
Как раз наглядно: вызванная через COM функция вернется с результатом, но только после того как отработает до конца. Т.е. задачу распараллеливания потоков так не решить.
Поясните, какая цель вызова Аксапты из Аксапты? Может быть, есть способ проще.
Через пакетные задания, например
Старый 13.01.2010, 18:28   #12  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Задача: Разноски большого кол-ва строк журнала.. Пакеты выполняемые последовательно не справляются с таким объемом.. Поэтому есть желание распараллеить этот процесс, так как сама разноска занимает много времени.
Старый 13.01.2010, 19:50   #13  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Вата Посмотреть сообщение
Задача: Разноски большого кол-ва строк журнала.. Пакеты выполняемые последовательно не справляются с таким объемом..
Что именно подразумевается под фразой "не справляются"? Чего они не могут сделать?

По какой причине эта операция вообще выносится в отдельный процесс?
Старый 13.01.2010, 22:15   #14  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Вата Посмотреть сообщение
Задача: Разноски большого кол-ва строк журнала.. Пакеты выполняемые последовательно не справляются с таким объемом..
Вы периодически разносите небольшое количество журналов с большим (>10k) строк (возможно, проводите амортизацию ОС) ? В таком случае, смотрите Ошибка при разноске большого ж-ла ОС.
Если же у Вас в систему постоянно "льется" такой поток больших журналов для разноски, что один пакетный сервер не успевает его "переваривать" (разносить) - наверное, Вы автоматизируете какой-то мегауспешный бизнес, в этом случае можно и денег попросить на апгрейд до AX2009
__________________
-ТСЯ или -ТЬСЯ ?
Старый 14.01.2010, 10:14   #15  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Цитата:
Сообщение от Andrey Peganov Посмотреть сообщение
Пакеты можно выполнять параллельно: создайте по пакетному заданию на каждый журнал и поднимите столько пакетных серверов, сколько нужно.
Пакеты выполнять параллельно нельзя! Это я попробовал в первую очередь.. Параллельности не увидел.. Делал все на одной машине (может нужно на разных? Что тоже не естьгуд) так, на одно и тоже время назначил две задачи, в результате выполнилась вначале одна и только потом вторая! Поэтому этот вариант не подходит..


Цитата:
Сообщение от Vadik Посмотреть сообщение
Если же у Вас в систему постоянно "льется" такой поток больших журналов для разноски, что один пакетный сервер не успевает его "переваривать" (разносить) - наверное, Вы автоматизируете какой-то мегауспешный бизнес, в этом случае можно и денег попросить на апгрейд до AX2009
Успешный бизнес он наверное от того и успешный, что пытается из всего выжать максимум. Да и подход "купите новый продукт, так как старый не делает того, что должен был делать" весьма сомнительный аргумент.
Старый 14.01.2010, 11:08   #16  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от Вата Посмотреть сообщение
Пакеты выполнять параллельно нельзя! Это я попробовал в первую очередь.. Параллельности не увидел.. Делал все на одной машине (может нужно на разных? Что тоже не естьгуд) так, на одно и тоже время назначил две задачи, в результате выполнилась вначале одна и только потом вторая! Поэтому этот вариант не подходит...
Можно! НО! В разных аксаптах. Запустите несколько аксапт в режиме пакетного сервера, каждая со своей пакетной группой. Дальше запускайте обработки в пакетном режиме, с разными пакетными группами.

пакетное задание
пакетная обработка

Последний раз редактировалось raz; 14.01.2010 в 11:14.
За это сообщение автора поблагодарили: Andrey Peganov (1).
Старый 14.01.2010, 12:17   #17  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Вата Посмотреть сообщение
Успешный бизнес он наверное от того и успешный, что пытается из всего выжать максимум
Вы похоже смайлик в моем сообщении не заметили
Цитата:
Да и подход "купите новый продукт, так как старый не делает того, что должен был делать" весьма сомнительный аргумент.
"Должен" по отношению к программному продукту тоже аргумент весьма спорный. Он никому ничего не должен. У него есть свои особенности (фичи) и недостатки (баги), иногда одно достаточно трудно отличить от другого Фича в разноске больших и очень больших журналов ГК заключается в том, что время разноски растет не линейно в арифметической прогрессии от числа строк, а по экспоненте. Так что у Вас всегда есть выбор: понять особенность продукта и решить проблему штатно (ограничением максимального количества строк и запуском дополнительных пакетных серверов) либо продолжать рожать ежиков (COM Connector и пр.)
__________________
-ТСЯ или -ТЬСЯ ?
Старый 13.01.2010, 18:58   #18  
Andrey Peganov is offline
Andrey Peganov
Участник
 
10 / 27 (1) +++
Регистрация: 19.01.2007
Пакеты можно выполнять параллельно: создайте по пакетному заданию на каждый журнал и поднимите столько пакетных серверов, сколько нужно.
Точнее, сколько потянет СУБД и позволит логика разноски. Потому как главное ограничение параллелизма - блокировки на объектах базы данных.
Старый 14.01.2010, 10:37   #19  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
бл@#%$..
Следующий момент вылез.. Не могу запустить, из xml файла нужный метод класса!
Вот такой код ХМЛ нормально отрабатывает:

Код:
<AxaptaAutoRun version="3.0" exitWhenDone="true" logFile="D:\Work\AxRun\AxaptaAutorun.log">
   <Run 	type="class" name="CommandRunClass_FL" method="main"  />

</AxaptaAutoRun>
А вот такой работать не хочет:
Код:
 <Run 	type="class" name="CommandRunClass_FL" method="run" parameters="'axxml',7" />
Пораждает в логе ошибку:
[Run] - Ошибка: метод не должен требовать параметров.
[Execute] - Ошибка: не удается исполнить команду: Run.

Тоесть у меня счас проблема передать парамметр.

Сам метод выглядит так
X++:
void run(str _sS = '', int _i = 0)
{
    str s;
    ;
    s   =  StrFmt('Класс отработал. Получен параметр %1, %2', _sS, _i)  ;
    info(s );
       
}
Старый 14.01.2010, 10:44   #20  
Andrey Peganov is offline
Andrey Peganov
Участник
 
10 / 27 (1) +++
Регистрация: 19.01.2007
Цитата:
Пакеты выполнять параллельно нельзя! Это я попробовал в первую очередь.. Параллельности не увидел.. Делал все на одной машине (может нужно на разных? Что тоже не естьгуд) так, на одно и тоже время назначил две задачи, в результате выполнилась вначале одна и только потом вторая! Поэтому этот вариант не подходит..
Налицо блокировки объектов базы данных и запуск двух процессов даст тот же результат, что и двух пакетных серверов: разноски выполнятся последовательно.
Копать нужно в эту сторону - выяснить что именно блокируется.

Если таблица или индекс целиком, настраивать сервер БД, чтобы блокировки были на уровне записи. Если две разноски меняют одни и те же данные, то чисто технически проблему не решить. Например, если это складские журналы, меняющие остатки одних и тех же номенклатур с одинаковыми аналитиками.

Какая используется СУБД?
Какие журналы разносятся?
Сколько строк в журналах?
Есть ли и, если есть, то какие блокировки в БД, во время параллельной разноски двух журналов?
Теги
ax3.0, запуск, конфигурационная утилита, параметры

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Остановка и запуск сервера из командной строки KiselevSA DAX: Администрирование 13 17.11.2006 14:37
Как открыть ax32.exe из командной строки без ввода пароля? Morpheus DAX: Администрирование 6 16.11.2006 14:57
Как отпроцессить куб из командной строки? slava09 DAX: Программирование 6 01.06.2006 13:51
Параметры командной строки конфигурации listener DAX: Администрирование 3 18.12.2004 00:21
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05

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

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

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