|
01.12.2006, 10:15 | #1 |
Участник
|
NightlyBuild
Вот такая задача: хочу сделать еженощную компиляция с перестроением перекрестных ссылок. Для этого по виндовому расписанщику (aka scheduler aka "Назначенные задания") запускается аксапта с -startupcmd=batch_dev
в пакете, грубо говоря, компиляция с экспортом лога и выход. Проблемы:
Исходники прикреплены. Компиляция приосходит так X++: void run() { ; SysCompileAll::compile(); this.exportLog(); } void exportLog() { SysCompilerOutput sysCompilerOutput; if (SysdictClass::isEqualOrSuperClass(classidget(infoLog.compilerOutput()), classNum(SysCompilerOutput))) { sysCompilerOutput = infoLog.compilerOutput(); sysCompilerOutput.xmlExport(xinfo::directory(DirectoryType::Log) + strFmt('compile.all.%1.log.html', today())); } } |
|
01.12.2006, 13:30 | #2 |
Banned
|
Naughty Build
|
|
01.12.2006, 13:45 | #3 |
SAP
|
да полезная штука
|
|
01.12.2006, 14:16 | #4 |
----------------
|
делал так.
1. Для admin указывал в настройках сетевое имя и галку "Перекрестные ссылки" 2. Указывал пути для логов 3. В том же планировщике запускал -startupcmd=compileAll (от имени admin-пользователя) Работает как часы, перекомпилирует все приложения (разработка, тест и т.п.) - утром смотрим логи в htm Последний раз редактировалось Wamr; 05.12.2006 в 10:08. |
|
|
За это сообщение автора поблагодарили: belugin (10), Kabardian (3). |
09.12.2008, 19:45 | #5 |
MCITP
|
Что-то не нахожу эту птичку...
__________________
Zhirenkov Vitaly |
|
10.12.2008, 22:14 | #6 |
Administrator
|
Цитата:
Подводные грабли тут могут быть только в том, что если у пользователя, под которым запускается Аксапта стоит большой уровень ошибок и Аксапте не хватает памяти все "зафиксировать" (ведь она сначала все собирает в память, а потом все пишет) - она падает. Проверяется это путем сравнения времени создания файла лога и временем запуска Аксапты. У меня разница составляла 3-4 часа. Поэтому - у этого пользователя имеет смысл ставить уровень компилятора 3 или даже может 2. (С уровнем 3 у меня прокатывало на среднестатистическом девелоперском серваке). И еще момент - который приходилось делать. Странно вообще-то что это приходилось делать, т.к. в коде черным по белом это написано... Но... факт. Где-то после 2-3 недель ежедневных построений по будням было видно, что процесс оставался в памяти (висел ax32.exe). Изящный Truncate таблиц xRef* перед построением ссылок - спасал ситуацию. Но это в коде и так прописано ... Поэтому не понимаю, почему это спасало... Может конечно какие другие факторы наложились
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 10.12.2008 в 22:21. |
|
|
За это сообщение автора поблагодарили: denny (1), ZVV (1). |
20.04.2007, 09:09 | #7 |
Участник
|
Изменения:
Установка:
|
|
04.05.2007, 10:02 | #8 |
Участник
|
Еси установить приложенный шаблон, то пути в рассылаемлом протоколе компиляции станут ссылками AxPath
|
|
09.12.2008, 17:06 | #9 |
Участник
|
На 4-ку не кто не переделывал данную утилитку?
|
|
09.12.2008, 21:01 | #10 |
Участник
|
Параметры/Компилятор/Перекрестные ссылки
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: ZVV (1). |
10.12.2008, 01:01 | #11 |
Участник
|
У меня стояла подобная задача. Но делаю я немного иначе: код компилируется только тот, что зачекинен в вершин контрол. После компиляции в дроп локейшин ложится смердженые объекты в один xpo файл, AOD нужного слоя, лейбл файл и лог. Получается очень удобно - всегда готовый билд под рукой, который можно показать заказчику. Дополнительный набор скриптов устанавливает нужный билд на указаную машину.
Более подробно сдесь - http://daxandsurround.blogspot.com/ Перекресные ссылки апдейтятся батч джобой: Код: xRefUpdate::main(new Args(classstr(SysCompileAll))); |
|
|
За это сообщение автора поблагодарили: belugin (5). |