У нас есть проблемы с разделением наших различных конфигураций. Позвольте мне немного объяснить
Сценарий:
Допустим, у вас есть два проекта AX, например. P и M, которые изменяют таблицу ProdRouteJob
, вызывая методы в одном из своих собственных классов, специфичных для проекта.
У вас есть все эти классы на вашем компьютере разработчика, Конечно, и ProdRouteJob
компилируется нормально, но для установки на новый сервер вы не хотите добавлять классы-заглушки для каждого неустановленного проекта, не так ли? Таким образом, вы оборачиваете эти вызовы в классы проекта чем-то вроде
if( Global::isConfigurationkeyEnabled( <projectPConfKey> ) )
// call project P stuff
чтобы инкапсулировать их чисто. Вы объявляете ключи конфигурации для всех своих проектов и готовы к работе, верно?
Однако это вызывает ошибку, если вы не установили проект P на этом компьютере, поскольку его projectPConfKey
неизвестен. Теперь вы можете при каждой установке устанавливать ключи конфигурации для всех ваших проектов, просто чтобы сообщить серверу, что существует такая вещь, как projectPConfKey
, но тогда все эти if
будут оцениваться как истинные...
Вкратце: как вы включаете конфигурационные ключи в XPO вашего проекта, чтобы ваш код компилировался, но в то же время чтобы некоторые конфигурационные ключи были отключены с самого начала?
Или есть что-то совершенно основное, что мне здесь не хватает?
РЕДАКТИРОВАТЬ:
Консенсус среди ответов (спасибо, демас; спасибо, г-н Кьелдсен) заключается в том, что нецелесообразно пытаться более или менее автоматически настроить клиентскую сторону с помощью макросов или ключей конфигурации. Таким образом, когда мы устанавливаем на клиенте, нам придется импортировать стандартные таблицы с нашими изменениями и вручную выносить все изменения, не относящиеся к текущей установке.
Я немного в растерянности, какой ответ принять, потому что Дэмас ответил на вопрос, который я задал, а г-н Кьелдсен ответил на вопросы, возникшие в беседе с комментариями под ответом Дэмаса. Я, с извинениями перед г-ном Кьельдсеном, отмечу ответ Демаса как принятый.