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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2015, 20:31   #1  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Слияние кода на примере CU8
  1. Есть ли быстрый и уверенный способ найти все объекты на слое syp которые так же присутствуют на одном из более верхних слоёв? Объектов на слое syp очень много, что бы перебирать все вручную. Фильтр по проекту работает, но все равно находит не все объекты. Пропускает те, которые почему то не отображают правильно слой в АОТ (скрин с объяснением прикрепил).
  2. Сравнение кода встроенной утилитой на больших методах с большим количеством модификаций занимает очень много времени, не говоря уже о кнопочках вставить код на таких методах. Есть ли более быстрые варианты или идеи?
  3. Утилита Выявление конфликтов при обновлении кода - находит только некоторые объекты, в которых нужно поднять код. Интересно, об это где то упоминается или это всем очевидно?

На первом скриншоте два проекта, один собран джобом, а второй фильтром по проекту. Видно что фильтр пропускает некоторые объекты. На втором скрине на примере таблицы AssetTable видно, что в АОТ верхний слой таблицы syp, но на самом деле есть еще на слое isv, что находится утилитой сравнения.
Джобами (у меня их два - один ищет по UtilElements а второй по SysModelElement) тоже не все объекты находятся, например Maps пропускает и далеко не все классы находит.

AX2012 R2 CU8 модификации на слоях isv, isp, var, cus
Миниатюры
Нажмите на изображение для увеличения
Название: ScreenShot 1.jpg
Просмотров: 440
Размер:	109.9 Кб
ID:	9209   Нажмите на изображение для увеличения
Название: ScreenShot 2.jpg
Просмотров: 299
Размер:	82.8 Кб
ID:	9210  

__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.

Последний раз редактировалось Link; 16.03.2015 в 20:41.
Старый 16.03.2015, 21:33   #2  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
detect conflicts всегда работал хорошо, в чем проблема то?
Старый 17.03.2015, 05:59   #3  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Ну не так хорошо, например изменения в датасорсах форм не сечет, но в целом-то да, объекты,которые нужно поднять это то, что надо. Есть еще тулза сравнения слоев, если хочется получить все пересечения.
Старый 17.03.2015, 06:17   #4  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от lvan Посмотреть сообщение
detect conflicts всегда работал хорошо, в чем проблема то?
Увы, но не работает, в моем случае только небольшая часть объектов была найдена. Да, ошибок компиляции после него не осталось, но CU8 ставили не для галочки, да и чревато оставлять наполовину слитый код. Возможно некорректно отрабатываются определенные слои. Как я показал в скриншоте так же не работает отображение слоев в АОТ. Может еще кто сталкивался с подобным, у кого есть слои isv, isp, var, cus.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 17.03.2015, 09:18   #5  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от Link Посмотреть сообщение
Сравнение кода встроенной утилитой на больших методах с большим количеством модификаций занимает очень много времени, не говоря уже о кнопочках вставить код на таких методах. Есть ли более быстрые варианты или идеи?
У нас на проекте один разработчик встроил в Ах2012 тулзу Araxis. Сравнение кода просто летает. Можно проделать тоже самое у себя.
За это сообщение автора поблагодарили: Logger (1), Link (1).
Старый 17.03.2015, 09:21   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Link Посмотреть сообщение
Увы, но не работает, в моем случае только небольшая часть объектов была найдена
Всю жизнь работал, и вот на тебе..
Цитата:
Да, ошибок компиляции после него не осталось
Вообще этот мастер ничего не исправляет как бы..
Цитата:
Может еще кто сталкивался с подобным, у кого есть слои isv, isp, var, cus
Хм.. Т.е. у Вас куча партнерских решений "между" Вашим слоем USR и стандартом (SYS \ SYP) и эти промежуточные слои на CU8 никто не апгрейдил, так ? И что Ви таки хотите от системы в таком случае ? Естественно, "потроганное" на промежуточных слоях будет перекрывать изменения на SYP из CU8 и для мастера между "текущим самым верхним под USR" слоем и baseline изменений как бы нет. Нельзя вот так вот взять и проапгрейдить несколько слоев \ решений за один присест. Есть два варианта:
  • ждать пока все партнеры предоставят свои слои \ решения "слитые" с CU8 и сливать USR уже с ними. Это долгий, но гарантированный рабочий вариант
  • сливать все слои \ решения самостоятельно по одному, снизу вверх. Это долго, муторно и слабо понятно как быть с правками кода которые неизбежно потребуются при слиянии (сомневаюсь что у Вас есть коды разработки на эти промежуточные слои). Скорее всего, будете складывать их в свой текущий (USR). Скорее всего, к моменту когда выполните эту работу за партнеров и закатите этот Сизифов камень, с большущей долей вероятностей кто-то из них разродится новой версией "официально совместимой" с CU8, и "совместит" ее не совсем тем же образом или вообще отрефакторит все к такой-то матери, и приехали - на колу мочало, начинай сначала
Так что сугубо мое IMHO - если "промежуточные" решения массивные и в технологии апгрейда "плаваете" (чур без обид, говорю как вижу) - не бегите впереди паровоза и дождитесь партнеров, иначе с большой вероятностью потеряете кучу времени и нервов впустую
__________________
-ТСЯ или -ТЬСЯ ?

Последний раз редактировалось Vadik; 17.03.2015 в 12:05.
За это сообщение автора поблагодарили: Link (1).
Старый 17.03.2015, 14:25   #7  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Vadik Посмотреть сообщение
Всю жизнь работал, и вот на тебе..
Работает, но только с объектами измененными на текущем слое. Т.е. к примеру если есть неподдерживаемое партнером решение, или срочно нужно какой нибудь хотфикс поставить и поднять на верхний слой, то уже не комильфо.

Цитата:
Сообщение от Vadik Посмотреть сообщение
Вообще этот мастер ничего не исправляет как бы..
Это понятно.

Цитата:
Сообщение от Vadik Посмотреть сообщение
Хм.. Т.е. у Вас куча партнерских решений "между" Вашим слоем USR и стандартом (SYS \ SYP) и эти промежуточные слои на CU8 никто не апгрейдил, так ? И что Ви таки хотите от системы в таком случае ? Естественно, "потроганное" на промежуточных слоях будет перекрывать изменения на SYP из CU8 и для мастера между "текущим самым верхним под USR" слоем и baseline изменений как бы нет. Нельзя вот так вот взять и проапгрейдить несколько слоев \ решений за один присест. Есть два варианта:
  • ждать пока все партнеры предоставят свои слои \ решения "слитые" с CU8 и сливать USR. Это долгий, но гарантированный рабочий вариант
  • сливать все слои \ решения самостоятельно по одному, снизу вверх. Это долго, муторно и слабо понятно как быть с правками кода которые неизбежно потребуются при слиянии (сомневаюсь что у Вас есть коды разработки на эти промежуточные слои). Скорее всего, будете складывать их в свой текущий (USR). Скорее всего, к моменту когда выполните эту работу за партнеров и закатите этот Сизифов камень, с большушей долей вероятностей кто-то из них разродится новой версией "официально совместимой" с CU8, и "совместит" ее не совсем тем же образом или вообще отрефакторит все к такой-то матери, и приехали - на колу мочало, начинай сначала
Так что сугубо мое IMHO - если "промежуточные" решения массивные и в технологии апгрейда "плаваете" (чур без обид, говорю как вижу) - не бегите впереди паровоза и дождитесь партнеров, иначе с большой вероятностью потеряете кучу времени и нервов впустую
Стоит модуль на isv\isp слое и его модификации уже от партнеров на var, все свои модификации на cus. Да промежуточные никто не апгрейдил, и не ясно когда будут, если будут.
Хочу иметь возможность быстро и уверенно найти все объекты в системе которые были измененны выше syp слоя, что бы можно было их анализировать и изменять при необходимости. Так же было бе не плохо, если бы правильно отображались слои объектов в АОТ.
Я все понимаю, но имхо апгрейдить каждый слой в нашем случае это оверкил, проблема не в том что бы поднять изменения с syp, а быстро и правильно найти объекты где это нужно сделать.
Первый вариант правильный, но задача стоит не так. Кастомер уже накатил CU8, партнеры обычно оперативностью не отличаются, а мне нужно иметь рабочую среду для разработки и тестирования уже сейчас. Код поднял на слой разработки, но поиск нужных объектов занял много времени.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 17.03.2015, 14:52   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Еще вариант - пропустить modelstore через LCS Upgrade analysis, который выдаст подробный отчет, где чего нашлось, что удалось решить и сколько осталось.
Старый 17.03.2015, 17:38   #9  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
не нужно изобретать велосипед
вот как нужно делать upgrade
https://technet.microsoft.com/EN-US/.../dn133163.aspx
рядом ссылки тоже почитайте
За это сообщение автора поблагодарили: Logger (1), gl00mie (0).
Старый 17.03.2015, 17:40   #10  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Цитата:
Сообщение от imir Посмотреть сообщение
например изменения в датасорсах форм не сечет
неправда
Старый 17.03.2015, 17:42   #11  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Цитата:
Сообщение от Link Посмотреть сообщение
Работает, но только с объектами измененными на текущем слое.
ну это известно было, вы бы почитали для начала, как им пользоваться
вроде даже в checklist написано, что надо отдельно каждый слой апгрейдить
Старый 17.03.2015, 17:50   #12  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Цитата:
Сообщение от Link Посмотреть сообщение
Я все понимаю, но имхо апгрейдить каждый слой в нашем случае это оверкил,
на этом тему можно закрывать.
Старый 18.03.2015, 15:20   #13  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Подведу итоги.
  • Самый быстрый и уверенный способ найти объекты для апгрейда по нескольким слоям это фильтр по проекту, как на первом скриншоте.

  • Сравнение кода встроенной утилитой на больших методах с большим количеством модификаций можно заменить внешней утилитой. Озвученный Araxis платный, можно попробовать WinMerge. По идее можно сделать надстройку в стандартной утилите и по ней выгружать с выбранного слоя\версии и сравнивать. К слову WinMerge легко интегрируется с TFS.

  • Утилита Выявление конфликтов при обновлении кода работает только с текущим слоем. Правильно обновлять каждый слой поэтапно начиная с нижнего, но с большим количеством слоев такой подход займет очень много времени в основном на подготовку среды с нужным слоем. Да и не всегда это возможно.

Еще момент по поводу компиляции, после обновления, первый раз нужно компилировать из клиента. Компиляци через AxBuild не дает скомпилировать CIL, ошибки с сервисами. Возможно есть какое то промежуточное решение.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 23.03.2015, 13:07   #14  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от Link Посмотреть сообщение
Еще момент по поводу компиляции, после обновления, первый раз нужно компилировать из клиента. Компиляци через AxBuild не дает скомпилировать CIL, ошибки с сервисами. Возможно есть какое то промежуточное решение.
AxBuild формирует лог-файл с ошибками компиляции. Его потом можно загрузить в компилятор в клиенте и "докомпилировать" то, что не смог откомпилировать AxBuild.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 23.03.2015, 13:47   #15  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
AxBuild формирует лог-файл с ошибками компиляции. Его потом можно загрузить в компилятор в клиенте и "докомпилировать" то, что не смог откомпилировать AxBuild.
Ошибок компиляции в логе не было, как не было их и при компиляции из клиента. AXBuild компилирует по другому и CIL может не компилироватьсоя в этом случае. Это касается первой компиляции после установки.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 23.03.2015, 14:00   #16  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Какое-то недопонимание у нас с вами. AXBuild не компилирует в CIL, это да. Он для этого и не предназначен. Но точно так же не компилирует в CIL и компиляция приложения, запущенная из клиента. При этом, компиляцию приложения нужно делать перед компиляцией в CIL. Можно её после установки, конечно, сделать из чеклиста из клиента, но преимуществ это никаких не даёт.

Я при установке новой среды всегда первую компиляцию делаю в AxBuild. После этого иду обратно в клиента, докомпилирую то, что не смог скомпилировать AxBuild (если установка стандартная, то речь обычно идёт о примерно десяти Warning), и запускаю компиляцию в CIL. Проблем пока не замечал.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 23.03.2015, 14:17   #17  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Можно её после установки, конечно, сделать из чеклиста из клиента, но преимуществ это никаких не даёт.

Я при установке новой среды всегда первую компиляцию делаю в AxBuild. После этого иду обратно в клиента, докомпилирую то, что не смог скомпилировать AxBuild (если установка стандартная, то речь обычно идёт о примерно десяти Warning), и запускаю компиляцию в CIL. Проблем пока не замечал.
Вот я как раз о том, что первую лучше делать из клиента, иначе CIL может не компилироваться.
Как показывает поиск, мой опыт не единственный.
Цитата:
I have seen where the first compile (done through the checklist) needs to be done in the client and not through AXBuild. Try to do the compile in the client and see if you're able to proceed.
Цитата:
As stated in my previous reply some people (I'm aware of partners and ISV's) do a AX client based compilation because they rely that this always works.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 23.03.2015, 14:53   #18  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от Link Посмотреть сообщение
Как показывает поиск, мой опыт не единственный.
На мой взгляд, в этом треде единственный разумный ответ, вот этот:
Цитата:
There are two options to compile. It should both work as stated in this post: https://technet.microsoft.com/en-us/.../dd309589.aspx

If you encounter problems, please check if all prerequisites are met. If you still encounter problems, it is possible to create a support incident.
Остальные ответы на грани примет и предрассудков. Все пишут о каких-то "numerous problems", но никто при этом не пишет, в чём именно эти проблемы заключались.

Ещё раз повторю: я несколько раз делал первую компиляцию через AxBuild, и проблем не было ни разу. Компилировал так и AX2012 R2 CU7, и AX2012 R3 CU8. При этом я всегда строго следовал инструкции:
  1. Останавливал AOS перед запуском AxBuild.
  2. Компилировал приложение с помощью AxBuild.
  3. Запускал AOS. Загружал в компилятор лог, который оставался от запуска AxBuild, и заново компилировал объекты, которые в этом логе упоминались.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 23.03.2015, 15:11   #19  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Ещё раз повторю: я несколько раз делал первую компиляцию через AxBuild, и проблем не было ни разу. Компилировал так и AX2012 R2 CU7, и AX2012 R3 CU8. При этом я всегда строго следовал инструкции:
  1. Останавливал AOS перед запуском AxBuild.
  2. Компилировал приложение с помощью AxBuild.
  3. Запускал AOS. Загружал в компилятор лог, который оставался от запуска AxBuild, и заново компилировал объекты, которые в этом логе упоминались.
У меня и коллеги была одна и та же ситуация, после безошибочной компиляции в AxBuild CIL выдавал ошибки вроде этой . Перезапуск АОС, удаление папки CIL и т.д. ничего не изменило.
Компиляция из клиента помогла в обоих случаях. Теоретически AXBuild должен работать, по крайней мере я не встречал в документации обратного.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 23.03.2015, 15:29   #20  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
По ссылке ничего не сказано про ДОкомпиляцию. Они ее не делали? Они не получали лог? Если забыть запустить админом, то лог может не записаться и "потеряться". Очень похоже, что после Axbuild они просто все докомпилировали руками - вот и выглядит, как будто, только полная компиляция из клиента помогает.
__________________
Ivanhoe as is..
Теги
обновление системы, слияние кода

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axsa: Retail Extensibility in Dynamics AX 2012 R3 CU8 (CRT, RetailServer, MPOS) Part 1 Blog bot DAX Blogs 0 19.02.2015 06:14
DynamicsAxSCM: Put away strategies for purchase orders – possibilities, performance, and improvements in CU8 Blog bot DAX Blogs 0 30.01.2015 15:11
axmfg: Replacing work order types for production output in CU8 Blog bot DAX Blogs 0 12.09.2014 18:12
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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