13.01.2010, 14:38 | #1 |
Участник
|
Нужная конфигурация из командной строки
Аксапта 3 SP 6. AOS
Всем привет. Вопрос, как из командной строки запустить класс с параметрами, при этом в нужной конфигурации Аксапты ( файл.ахс)? Сейчас возникла проблема в нужной конфигурации аксапты. |
|
13.01.2010, 14:59 | #2 |
Участник
|
Может не понятно написал..
Хотелось бы при запуске аксапты (из коммандной строки) избежать запуска формы, выбора Сервера АОС. |
|
13.01.2010, 15:36 | #3 |
Участник
|
Просто сделайте пользователю ярлык на файл .axc. Аксапта запустится с конфигурацией из этого файла, где Вы, видимо, прописали имя хоста и АОСа
Для входа на определенный АОС без окна выбора этого достаточно. Если действительно нужно после запуска Аксапты запустить какой-то класс с параметрами, то потребуется модификация |
|
13.01.2010, 15:49 | #4 |
----------------
|
|
|
13.01.2010, 15:54 | #5 |
Участник
|
Это все я знаю.. приведенные ссылки читал.. Спасибо..
Я так понимаю ответ: "Никак".. Плохо.. Вариант с ярлыком не подходит, так как хотел из аксапты запускать другой экземпляр аксапты (как альтернатива не работающим в 3ке потокам), с параметрами.. |
|
13.01.2010, 16:05 | #6 |
Модератор
|
Использовать COM?
|
|
13.01.2010, 16:15 | #7 |
Участник
|
СОМ?! Интересно.. Это как?
Я думал использовать WinAPI::shellExecute() Последний раз редактировалось Вата; 13.01.2010 в 16:26. |
|
13.01.2010, 17:07 | #8 |
Участник
|
Придумал!
Буду открывать .axc файл, и прописывать там параметр X++: startupcmd,Text, |
|
13.01.2010, 17:20 | #9 |
Модератор
|
Да запустите COM-конектор, пусть он класс как раз на выполнение и запускает. Лицензию на клиента съэкономите.
С Уважением, Георгий |
|
13.01.2010, 17:44 | #10 |
Участник
|
Хмм.. А можно в меня примером кинуть, что то не нашел на форуме?!
В Коме я боюсь не наглядно будет, завершился процес или нет.. |
|
13.01.2010, 18:15 | #11 |
Участник
|
Как раз наглядно: вызванная через COM функция вернется с результатом, но только после того как отработает до конца. Т.е. задачу распараллеливания потоков так не решить.
Поясните, какая цель вызова Аксапты из Аксапты? Может быть, есть способ проще. Через пакетные задания, например |
|
13.01.2010, 18:28 | #12 |
Участник
|
Задача: Разноски большого кол-ва строк журнала.. Пакеты выполняемые последовательно не справляются с таким объемом.. Поэтому есть желание распараллеить этот процесс, так как сама разноска занимает много времени.
|
|
13.01.2010, 18:58 | #13 |
Участник
|
Пакеты можно выполнять параллельно: создайте по пакетному заданию на каждый журнал и поднимите столько пакетных серверов, сколько нужно.
Точнее, сколько потянет СУБД и позволит логика разноски. Потому как главное ограничение параллелизма - блокировки на объектах базы данных. |
|
13.01.2010, 19:50 | #14 |
Участник
|
|
|
13.01.2010, 22:15 | #15 |
Модератор
|
Цитата:
Если же у Вас в систему постоянно "льется" такой поток больших журналов для разноски, что один пакетный сервер не успевает его "переваривать" (разносить) - наверное, Вы автоматизируете какой-то мегауспешный бизнес, в этом случае можно и денег попросить на апгрейд до AX2009
__________________
-ТСЯ или -ТЬСЯ ? |
|
14.01.2010, 10:14 | #16 |
Участник
|
Цитата:
Цитата:
|
|
14.01.2010, 10:37 | #17 |
Участник
|
бл@#%$..
Следующий момент вылез.. Не могу запустить, из 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 | #18 |
Участник
|
Цитата:
Пакеты выполнять параллельно нельзя! Это я попробовал в первую очередь.. Параллельности не увидел.. Делал все на одной машине (может нужно на разных? Что тоже не естьгуд) так, на одно и тоже время назначил две задачи, в результате выполнилась вначале одна и только потом вторая! Поэтому этот вариант не подходит..
Копать нужно в эту сторону - выяснить что именно блокируется. Если таблица или индекс целиком, настраивать сервер БД, чтобы блокировки были на уровне записи. Если две разноски меняют одни и те же данные, то чисто технически проблему не решить. Например, если это складские журналы, меняющие остатки одних и тех же номенклатур с одинаковыми аналитиками. Какая используется СУБД? Какие журналы разносятся? Сколько строк в журналах? Есть ли и, если есть, то какие блокировки в БД, во время параллельной разноски двух журналов? |
|
14.01.2010, 10:56 | #19 |
Участник
|
Я запускал в пакетах просто циклы, без обращения к БД. До вопроса блокировок ещё не дошел..
|
|
14.01.2010, 11:08 | #20 |
NavAx
|
Цитата:
Сообщение от Вата
Пакеты выполнять параллельно нельзя! Это я попробовал в первую очередь.. Параллельности не увидел.. Делал все на одной машине (может нужно на разных? Что тоже не естьгуд) так, на одно и тоже время назначил две задачи, в результате выполнилась вначале одна и только потом вторая! Поэтому этот вариант не подходит...
пакетное задание пакетная обработка Последний раз редактировалось raz; 14.01.2010 в 11:14. |
|
|
За это сообщение автора поблагодарили: Andrey Peganov (1). |
Теги |
ax3.0, запуск, конфигурационная утилита, параметры |
|
|