Показать сообщение отдельно
Старый 30.10.2020, 20:16   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Вариант mazzy конечно более полный.
Что видел я (AX2012 и ранее):
1. Использование конфигурационных ключей. Например, 2 ключа - PROD и TEST. На рабочей включен PROD, на тесте - TEST. При разворачивании копии базы администратор выключает ключ PROD и включает TEST. На эти конфигурационные ключи в коде повешена логика.
Из недостатков (на мой взгляд):
1) Не всё можно удобно завязать на ключи.
2) Ключи нужно переключать

2. Флаг "Рабочая система" (неоднократно идею реализовывал на практике). Добавляется в SysServerConfig (форма со списком АОСов и галкой "Пакетные задания"). Устанавливается на PROD. Любое разворачивание системы вне PROD-а автоматически создает запись в этой таблице (т.к. новый АОС появился) с естественно снятым флажком. Далее, в коде на этот флажок завязывается та или иная логика
Достоинство: Автоматическое включение режима тестирования. Недостаток: только 2 режима (например, путь к SSRS-отчетам так легко не переключишь)

3. (Пока на уровне идеи) Таблица с названием сред (D365FO) и енумом "Тип среды" (TEST / RELEASE / PROD и т.д.). Текущий адрес среды можно узнать так: D365FO: Определить среду выполнения из кода
К этой таблице нужно привязывать те или иные параметры. В коде завязываемся на логику PROD / не PROD или по типу среды.
Фактически - это некоторое повторение идеи mazzy, но более громоздкое

Считаю, что решение mazzy - более удобное именно в контексте D365FO, но вопрос хранения XML-ного файла с настройками - остается открытым. Первое, что приходит на ум - хранить всевозможные варианты в ресурсах и использовать их в зависимости от ситуации. Но по хорошему - надо бы обдумать получше.

Тут еще отдельная тема - как обновлять БД. В случае с OnPremise так просто базу с PROD на OneBox не загрузишь. То же самое касается и облачной базы, потому что SQL Azure и локальный SQL - это разные вещи. К примеру, данные по прикрепленным документам нужно обновлять в БД отдельным скриптом (полный путь URL прописывается в таблицы).
Пароль на отправку почты все равно перебивать придется.
В общем - пока четко сформулированного решения нет - поэтому просто поделился мыслями
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 31.10.2020 в 09:48.
За это сообщение автора поблагодарили: trud (5).