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).

 

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

 

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

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


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

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

17.11.2017
Модуль «Сводное планирование» / «Журналы» / «Резервный запас» / «Строки» / кн. «Строки журнала» / «Создать строки».1. Вычисляется количество месяцев (numOfMonth) между датой начала и датой конца...
18.10.2017
Какую цену вы бы заплатили, чтобы иметь возможность делать так в X ++?for (int i = 1; i <= n; i++)   {}    Или так:
12.10.2017
В AX7 X++ теперь поддерживается ключевое слово const. Его семантика аналогична семантике в C#. Если вкратце, то это позволяет вам определять члены в классе и переменные в методе, они могут быть...

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

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


Подписка

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

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


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