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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.08.2005, 15:10   #1  
loka is offline
loka
Участник
 
61 / 10 (1) +
Регистрация: 18.12.2003
Адрес: Россия
Ошибка в компиляции после переноса слоя
Добрый день.
Выявил такую закономерность.
Есть два приложения П1 (разработчесая) и П2 (боевая).
В П1 разработка ведется в слое VAR.
В П2 разработка (оперативное исправление) ведется в слое USP.
В день Х происходит перенос приложения с П1 на П2.
Перенос происходит следующим образом:
1) С П2 удаляется слой USP.
2) В П2 копируется слой VAR из П1.
3) Удаляются индексы.

Ситуация:
Был создан самописный класс К1, наследник от RunBaseBatch. С паками и унпаками, как полагается. Этот класс, после переноса в обоих приложениях находится в слое VAR.
Необходимо оперативно внести в него изменения.
Изменения вносятся в П1 в слое VAR и затем через экспорт перекочевывают на П2 в слой USP.
Спустя, приходит время переноса приложения. И выполняются ряд операций описанных выше. После этого, в П2 нет слоя USP. Но в слое VAR класс К1 не компилируется. В нем пустой класдекларейшн.
И так со всеми наследниками RunBaseBatch.
В чем проблема тут засада, подскажите.
Старый 09.08.2005, 15:12   #2  
loka is offline
loka
Участник
 
61 / 10 (1) +
Регистрация: 18.12.2003
Адрес: Россия
Со всеми наследниками, прошедшими рассмотренные изменения.
Старый 09.08.2005, 16:05   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,307 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Первая версия, которая напрашивается - в приложении П1 методы класса по ошибке были созданы в USP-слое (или же там оказались). Очевидно, что после переноса слоя (то бишь подкладывания файлика) их там не было...
Заодно интересно узнать - не является ли ID класса К1 в П1 из диапазона 50000-59999?
Хотя это только предположения.... точно сказать сразу не могу...
Старый 09.08.2005, 16:12   #4  
loka is offline
loka
Участник
 
61 / 10 (1) +
Регистрация: 18.12.2003
Адрес: Россия
При переносе в П1 класс был в слое VAR точно
Да и после переноса, сделанные изменения остались.
Всё хорошо, да только класдекларейшин выглядит вот так

class BAC_ExportSettleInvoice4PaymCust
{
}

вместо
class BAC_ExportSettleInvoice4PaymCust extends RunBaseBatch
{
boolean bImport ;
FileName fileNameExport ;
FreeText strDescription ;
CustAccount custAccount;
и т.д.

а айдишник у класса 30091
Старый 09.08.2005, 17:01   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,307 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
я правильно понял - что ПОСЛЕ переноса (подкладывания файлика) - у класса слетели все методы ? или слетел только classDeclaration ?
Удаление USP было ДО переноса axvar.aod ?
Старый 09.08.2005, 17:40   #6  
loka is offline
loka
Участник
 
61 / 10 (1) +
Регистрация: 18.12.2003
Адрес: Россия
только классдикларейшн
"Удаление USP было ДО переноса axvar.aod ?"
Хороший вопрос. Именно он меня побудил написать на форум.
Мой напарник считает, что разницы нет, удалять usp а потом копировать var или наоборот.
Моё первое предположение было связанно именно с этим. Но это на уровне интуиции.
Какая последовательность на самом деле была, не отследил. А если есть разница, то в чем? Как это может повлиять?
При следующем переносе поставлю эксперимент.
Старый 09.08.2005, 19:37   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,307 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
в отношении ДО переноса axvar.aod -- уточню - конечно нет разницы - что делать сначала удаление axusp.aod или копирование axvar.aod, другое дело, что не нужно подкладывать axvar.aod, затем заходить в Аксапту - синхронизировать, компилировать, а только затем грохать USP-слой, после чего снова перестраивать индексы.
Разница может быть только в вышеописанном случае, когда в axvar.aod существуют элементы с ID из диапазона USR-USP (50000-59999). (Или в USP из диапазона 30000-39999). Тогда есть высокая вероятность существования двух элементов с одинаковыми ID. И тогда будет ситуация точь в точь как у вас
Старый 09.08.2005, 19:48   #8  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,307 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
В Аксапте есть правило - элементам АОТ присваиваются ID-шники из разного числового диапазона в зависимости от слоев. Например - USR-USP - 5xxxx, CUS-CUP - 4xxxx, VAR-VAP - 3xxxx, из SystemDocumentation - 65xxx ну и так далее
Если вдруг, по какой-то случайности элемент с ID-шником одного слоя попадает в другой слой (чужой) - напр импортировали с сохранением ID, то при подкладывании - будут траблы.. уже несколько раз на форуме сие пролетало..
Старый 14.09.2011, 16:58   #9  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Есть 2 приложения 1 - Для разработок, 2 - Для тестирования

1). В 1-ом приложении опустил разработки с usr слоя на vap, откомпилировал, перезапустил AOS.
2). Переношу файл слой vap (axvap.aod ) в приложение 2, приложение стартует, но при старте клиента получаю ошибки и клиент завершает работу.

При этом во 2 приложении vap слоя небыло вообще, так что совпадения id объектов исключено.

Во время переноса слоя все AOS-ы остановлены

Как быть в такой ситуации, что следует проверит, может я что то упустил?
Старый 14.09.2011, 17:30   #10  
zelibobis is offline
zelibobis
Участник
 
71 / 24 (1) +++
Регистрация: 15.10.2007
Адрес: Kiev
запустить delIndex.bat
Старый 14.09.2011, 18:13   #11  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от zelibobis Посмотреть сообщение
запустить delIndex.bat
Не помогло, теже ошибки и завершает работу клиент.

Теже ошибки встретил когда опускал с usr на vap в приложении Для разработок, при первом старте после перезапуска aos, но клиент не завершал работу, я просто сделал глобальную компиляцию и всё разрешилось, приложение работает.

Но а почему тут завершается не ясно, и ведь ничего сделать не могу даже компиляцию.

Как только убираю подложеный слой (vap), Тестовое приложение снова работает.
Старый 15.09.2011, 09:37   #12  
zelibobis is offline
zelibobis
Участник
 
71 / 24 (1) +++
Регистрация: 15.10.2007
Адрес: Kiev
а что пишет в evetLog на сервере AOS-a ?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка времени выполнения при компиляции проекта nicko DAX: Администрирование 4 30.08.2006 11:38
Ошибка при компиляции класса. Кто сталкивался? vasiliy DAX: Программирование 13 08.02.2005 09:24
Нужен запрет на изменения данных журнала переноса после его распечатки ATimTim DAX: Программирование 4 19.01.2005 12:16
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
ошибка компиляции hie DAX: Администрирование 2 17.07.2002 15:26

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

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

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