click fraud detection

Перенос кастомизации между слоями в Dynamics AX 2012

Дата публикации: 08.08.2017
Перенос кастомизации между слоями в Dynamics AX 2012

Недавно один из наших клиентов захотел объединить кастомизацию, распределенную между двумя различными слоями (CUS и USR) в один слой (CUS). В идеале, все настройки пользователей должны располагаться в слое CUS, чтобы облегчить процесс использования и процедуру обновления. Поэтому, решено было перенести настройки слоя USR в слой CUS, фактически объединяя два слоя в один.

Часть настроек в слое USR включает в себя кастомные таблицы и поля таблиц. Очень важным при переносе между слоями является сохранить ID объектов для этих артефактов. Если бы ID объектов изменились во время процесса, это привело бы к потере данных при синхронизации словаря данных. Так как в Dynamics AX 2012 объекты не могут экспортироваться вместе с ID объекта, использовать файлы XPO для перемещения объектов между слоями не получится. Поэтому нам пришлось использовать при выполнении этого задания другой подход. Вот как мы это сделали поэтапно:

1. Начали с приложения-источника и удалили все лишние артефакты в слое  USR.

2. Создали отдельную идентичную копию источника «в песочнице» взяв modelstore из приложения-источника.

3. Удалили слой USR из «песочницы».

4. Экспортировали все объекты слоя USR из приложения-источника в файлы XPO.

5. В «песочнице» вошли в слой CUS и импортировали файлы XPO из предыдущего шага.

- Провели полную компиляцию, чтобы убедиться, что в слое CUS нет ошибок.

6. Экспортировали модели слоя CUS из песочницы в файлы AXMODEL, а затем импортировали их в приложение-источник, при этом, слой USR остался на месте. Это гарантировало, что:

- все объекты будут перемещены в слой CUS.

- они сохранят свои изначальные ID объектов, так как теперь они располагаются в слое USR (AX 2012 будет повторно использовать ID объекта, если объект уже существует в системе, но располагается в другом слое).

7. После того, как модели были успешно экспортированы в слой CUS в приложении-источнике, удалили слой USR.

8. Провели полную компиляцию и генерацию CIL

Надписи на картинке:

Sandbox Enviroment – Песочница

Source Enviroment – Приложение-источник

CUS Layer – Слой CUS

USR Layer – Слой USR

a. Delete USR Layer from sandbox – Удалить слой USR из песочницы

b. Import USR layer xpo From source – Импортировать файлы XPO слоя USR из источника

c. Import CUS layer models from sandbox – Импортировать модели слоя CUS из псочницы

d. Delete the USR Layer from source – Удалить слой USR из источника

В результате мы получаем приложение, где все объекты, которые до этого находились в слое USR, были перенесены в слой CUS и ID объектов при этом не изменилось. Более подробную информацию вы можете найти в этой статье с сайта Technet: Maintaining Installation-Specific Element IDs and Element Handles.

Это достаточно упрощенный сценарий. Тем не менее, его легко можно наложить и повторить для кастомизации, которая затрагивает различные слои для исправлений (соответственно, VAP, CUP, USP).

 

Оригинальная статья по ссылке.

 

Акция "Тест-драйв Сопровождения"

Попробуй сопровождение АХ до подписания договора!


Узнать подробнее

Другие записи в блоге

14.09.2017
В AX7 X++ сейчас есть поддержка ключевого слова readonly. Семантика идентична readonly в C#.Вкратце: это позволяет вам определять члены класса, которые могут быть проинициализированы только при...
07.09.2017
В AX2012 переменные типа real компилируются как тип System.Decimal при компилировании CIL. В AX7 это является единственным возможным вариантом.Основное отличие между этими вариантами в максимальном...
04.09.2017
Почему аутсорсинговая компания эффективнее штатных IT-специалистов Бывают ситуации, когда штатные специалисты основную часть своего времени проводят в ожидании запросов или не могут...

Подпишитесь на блог

Все интересные статьи нашего блога на Вашем почтовом ящике!


Подписка

Служба контроля качества сервиса

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


Письмо директору