AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.07.2020, 23:45   #1  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Тут нет однозначено правильного ответа. Смотря какую цель преследуете. На разных проектах разные регламенты. У переноса проектами с сохранением Id плюс только один - можно быстро БД с Prod на Test восстановить. Но опыт показываетя, что это недолго происходит - рано или поздно Id все равно разъезжаются. Это же все до первой ошибки при переносе, когда забыл чекбокс поставить. Я на 95% проектов для древних версий переносил без сохранения Id, а актуальность тестовых данных обеспечивал другими способами.

А в AX2012 вообще нельзя с сохранением Id проекты переносить и вопрос стал неактуальным.

Последний раз редактировалось oip; 07.07.2020 в 23:53.
Старый 08.07.2020, 08:52   #2  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от oip Посмотреть сообщение
У переноса проектами с сохранением Id плюс только один - можно быстро БД с Prod на Test восстановить
Это достаточно "хищный" плюс, согласитесь.
Цитата:
Сообщение от oip Посмотреть сообщение
опыт показываетя, что это недолго происходит - рано или поздно Id все равно разъезжаются. Это же все до первой ошибки при переносе, когда забыл чекбокс поставить
Ну, чекбокс можно просто принудительно поставить, и запретить снимать.

Тут вопрос в другом - есть любители посоздавать объекты непосредственно на Prod... и очень хотелось бы их от этого отучить. Id, ИМХО - один из методов это сделать.
Цитата:
Сообщение от oip Посмотреть сообщение
в AX2012 вообще нельзя с сохранением Id проекты переносить и вопрос стал неактуальным.
Знаю. Мне тоже много, что не нравится в 12-й )))
__________________
Best Regards,
Roman
Старый 08.07.2020, 13:42   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от RVS Посмотреть сообщение
Тут некоторые продвинутые программисты предлагают плевать на Id объектов при переносе доработок на Production.
и в целом, это правильный подход.

Цитата:
Сообщение от RVS Посмотреть сообщение
Ну, мешают они им свободно жыть )))
ну... вот здесь точно мало человеческого фактора.
здесь тупой опыт, который сын ошибок трудных.

в ранних Аксаптах было принято хранить в базе tableId/FieldId.
такого много в настройках складских аналитик, в markup и в других местах.

если на проекте также используется метод хранения идентификаторов объектов, то смена идентификаторов в базе - нетривиальная задача.

в остальном - совершенно без разницы id или имена объектов.

===========
Отвлеченное рассуждение 1:
вообще говоря, в других инструментах где практикуется "код как настройка" вполне обходятся без числовых идентификаторов, используются обычные имена

Отвлеченное рассуждение 2:
вообще говоря, в других IDE есть вполне рабочий инструмент "Рефакторинг \ Переименование". Это переименование вполне находит используемые имена и вполне успешно переименовывает. И в коде, и в конфиг-файлах и в остальных местах. В Аксапте подобный инструмент называется "Синтаксическое переименование" и работает через перекрестные ссылки. Для пользовательских данных в Аксапте есть "Паспорт записи \ переименование кода".

Отвлеченное рассуждение 3:
вообще говоря, очень интересно как программисты делают себе любимым противоположный по действию инструмент, чем пользователям.

так, в ранних Аксаптах для пользователей предлагали естественные ключи, а внутри инструментов разработки были искусственные идентификаторы объектов

а в последних Аксаптах наоборот, для пользователей предлагаются искусственные ключи, но объекты AOT наоброт имеют естественные наименования

очень прикольно.

Цитата:
Сообщение от RVS Посмотреть сообщение
Очень хотелось бы их тормознуть (сам я привык к Id), но умных мыслей как-то в голову нейдет... да и работы по уши.
если в базе нет (или мало) идентификаторов объектов, то не тормозите их.
С именами (естественными ключами) работать удобнее.

Но решение должно быть осознанным. Как и в остальных областях.

Цитата:
Сообщение от RVS Посмотреть сообщение
Тут вопрос в другом - есть любители посоздавать объекты непосредственно на Prod... и очень хотелось бы их от этого отучить. Id, ИМХО - один из методов это сделать.
угу.
а есть еще любители посоздавать объекты из кода (в стандартной аксапте всякие модули Зарплат, например. в старой аксапте ProductBuilder)

Цитата:
Сообщение от RVS Посмотреть сообщение
Знаю. Мне тоже много, что не нравится в 12-й )))
Зря.

Понаблюдайте как идет программирование/конфигурирование в других инструментах.
Вспомните где используются идентификаторы (SIDы всякие, идентификаторы групп в линуксах, коды тем и сообщений на форумах)
а где используются просто имена (url, современные блоги, docker-файлы, nuget-пакеты, npm-пакеты, maven-gradle, электронная почта и много где)
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 08.07.2020 в 13:47.
Старый 08.07.2020, 14:14   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от RVS Посмотреть сообщение
Тут вопрос в другом - есть любители посоздавать объекты непосредственно на Prod... и очень хотелось бы их от этого отучить
А метки используете, в смысле создания новых? С ними же вообще если создавать и там и там, то потом их слияние в кошмар превращается.
Старый 08.07.2020, 16:21   #5  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от RVS Посмотреть сообщение
Это достаточно "хищный" плюс, согласитесь.
На самом деле при восстановлении вам все равно придется в версии что-то менять(типа различный параметры интеграции и прочее).
Для актуализации ID можно использовать вот такой джоб - если данные АХ отличаются от таблицы SQLDictionary, он корректирует таблицу.
https://github.com/TrudAX/TRUDScript...Dictionary.xpo
Просто вставьте его одним из шагов
Старый 08.07.2020, 17:07   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
На самом деле при восстановлении вам все равно придется в версии что-то менять(типа различный параметры интеграции и прочее).
не надо менять.
"параметры интеграции и прочее" надо вынести за аксапту в конфигурационные файлы, которые не будут копироваться
https://github.com/mazzy-ax/SysConfigFile

Цитата:
Сообщение от trud Посмотреть сообщение
Для актуализации ID можно использовать вот такой джоб - если данные АХ отличаются от таблицы SQLDictionary, он корректирует таблицу.
можно. но это лучший способ не найти концов потом - что-то наверняка забудется, что-то поменяется, сюда смотри, сюда не смотри, здесь рыбу заворачивали

в общем, подходы разные.
__________________
полезное на axForum, github, vk, coub.
Старый 08.07.2020, 17:23   #7  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
не надо менять.
"параметры интеграции и прочее" надо вынести за аксапту в конфигурационные файлы, которые не будут копироваться
Интерестно. но я что-то не понял идеи, откуда этот файл возьмется к примеру на новом АОСе. И как гарантируется что у одного окружения(к примеру прод - 3 аоса) будут одинаковые файлы?
Старый 08.07.2020, 17:43   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
откуда этот файл возьмется к примеру на новом АОСе.
а откуда берется новый АОС?
кто-то его устанавливает. в рамках установки должен появиться и новый конфигурационный файл.

Цитата:
Сообщение от trud Посмотреть сообщение
И как гарантируется что у одного окружения(к примеру прод - 3 аоса) будут одинаковые файлы?
О.... это отличный вопрос. Сколько копий было сломано при обсуждении...

Наводящий вопрос - есть ли что-нибудь общее у одного окружения с кластером АОСов?
Ответ - по идее, каталог Application.
Поэтому дефолтное расположение конфиг-файлов - %Appl%\Config

Однако мы знаем подходы, когда Application для кластера все-таки не делается одним. Ну... для разных специфических целей.

Тогда нужно обеспечивать единость или синхронизировать конфигов руками (как и Application-каталоги).

Поэтому: сам класс SysConfigFile НЕ занимается этим вопросом, оставляя на откуп архитекторам проекта. Однако по умолчанию используется %Appl%\Config, который в нормальном окружении должен быть единым для разных АОСов
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 08.07.2020 в 17:46.
Старый 08.07.2020, 17:52   #9  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
кто-то его устанавливает. в рамках установки должен появиться и новый конфигурационный файл.
Если вводить такое условие - почему бы просто не использовать метод в АХ, который в зав-ти от имени аоса вернет все параметры в нужном виде. При добавлении аоса просто менять этот метод
Цитата:
Сообщение от mazzy Посмотреть сообщение
Поэтому дефолтное расположение конфиг-файлов - %Appl%\Config
В 2012 вроде кластер - это же настройка в форме, т.е. аосы друг друга не видят с точки зрения файловой системы. Почему не база? хотя это тоже наверное обсуждалось
Старый 08.07.2020, 14:12   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от oip Посмотреть сообщение
А в AX2012 вообще нельзя с сохранением Id проекты переносить и вопрос стал неактуальным.
Но остались еще некоторые вещи, в которых ID важен. Например, некоторые relations между таблицами, когда пишут RefTableId = 101234.
Буквально вчера понадобилось расширить ExtCodeTable. При переносе на TEST и STAGE придется после переноса проекта не забыть поменять число с моей таблицей.
PS: хорошо что со STAGE на PROD хранилищем обновляемся.
А не, вру, табличку расширял AifEndpointActionValueMap, в ExtCodeTable проще.

Последний раз редактировалось Raven Melancholic; 08.07.2020 в 14:18. Причина: Ошибся с табличкой
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
А что такого принципиального в 2012? По моему хороший разработчик без труда в ней разберется twilight DAX: Программирование 30 24.02.2015 12:26
Накладная в заказе на покупку разносится без номера Elenko DAX: Функционал 6 29.05.2013 15:28
отпуск без содержания disana DAX: Функционал 2 21.12.2010 20:10
Физический приход на склад без ГТД rumpleteazer DAX: Функционал 26 24.04.2006 22:01
Организация работы кладовщика:продажа товаров контрагенту без заказа thyra DAX: Функционал 18 07.04.2006 14:43
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:51.