|
30.10.2020, 17:37 | #1 |
Участник
|
Организация хранения подключения к внешним сервисам
Такой вопрос возник - кто-нибудь видел хорошую организацию хранения подключения ко внешним сервисам в базе АХ. Т.е. к примеру нам нужно хранить адрес какого-нибудь веб-сервиса или путь к чему-то интеграционному(допустим подключение к базе куда выгружать/загружать данные)
Каким образом это лучше сделать. Ну т.е. стандартный подход - заводят таблицу параметров, туда все добавляют или добавляют в существующие таблицы(в итоге все это разбросано по системе) может приводить к ошибкам когда к примеру базу востанавливают с Продакшна на Тест, кто-то что-то запускает и документы начинают уходить в рабочие окружения. Как можно избежать этого? Версия D365FO, хотя для АХ2012 тоже интерестно |
|
30.10.2020, 19:07 | #2 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Vadik (1), sukhanchik (10). |
30.10.2020, 20:16 | #3 |
Administrator
|
Вариант 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). |