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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2018, 12:50   #1  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
271 / 262 (9) ++++++
Регистрация: 27.02.2006
Адрес: Дания
D365FO: когда обновление ломает доработку
А давайте сюда собирать примеры, в каких случаях такие нужные ежемесячные обновления могут тихо сломать невинную доработку.

В другой ветке я уже приводил пример с лукапом, когда мы создаем обработчик события onLookup на контроле, а потом Майкрософт решает перекрыть метод lookup на том же котроле, и наш обрабочик становится мертвым кодом.

Только что напоролся на нечто другое:
Если к таблице А добавить поле и релейшн на таблицу Б, причем в таблице А уже есть некоторое поле и релейшен, указывающие на ту же таблицу Б в другом контексте, то вызов QueryBuildDataSource.relations(true) где угодно может привести к неожиданным результатам.
За это сообщение автора поблагодарили: Vadik (1), Pokersky09 (2), ax_mct (3), raz (1).
Старый 05.12.2018, 13:55   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,364 / 888 (32) +++++++
Регистрация: 22.07.2003
Адрес: МО
class LedgerJournalCheckPost
мы использовали CoC на LedgerJournalCheckPost.postTrans(), последнее обновление:
X++:
    [SysObsoleteAttribute('Method postTrans has been deprecated. Please use postTransV2 method instead.', false)]
    protected boolean postTrans(
теперь есть новый метод LedgerJournalCheckPost.postTransV2().

Вот вам бесшовный и неразрушающий.
За это сообщение автора поблагодарили: Ivanhoe (3), sukhanchik (3), Stitch_MS (3), trud (2).
Старый 05.12.2018, 14:53   #3  
sukhanchik is offline
sukhanchik
Moderator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,650 / 2141 (77) +++++++++
Регистрация: 13.06.2004
Адрес: Москва
Та же самая ситуация с примером, который использует Entiti.
Была Entiti под названием "X". Ее использовали в коде для целей загрузки некоего справочника (потому что исходный формат загрузки сильно отличался от предполагаемого, который был в стандарте). После обновления была выпущена Entiti под название "XV2", а предыдущая была объявлена устаревшей. Ну и собственно все. Код формально компилируется, но фактически - не работает.

В конкретно моем случае это была замена с EcoResProductEntity на EcoResProductV2Entity и замена класса EcoResProductEntityToCrossTableDataAdaptor на EcoResProductV2EntityToCrossTableDataAdaptor. Соответственно - сломался импорт номенклатур при переходе с 7.3 на 8.0. Учитывая, что этих версий Entiti в частности при загрузке клиентов / поставщиков уже минимум 3 штуки я видел - то подозреваю, что их использование в коде - могло бы также привести к необходимости корректировки этого кода.

Также хочу отметить, что (правда тут никто не обещал, что все останется как есть) в 8.1 с выходом русской локализации код по импорту выписки переписали на использование GER-настроек, в связи с этим физически русский код по импорту выписки в 8.0 и ранее отличается от того, что вышло в 8.1 (конечно русская функциональность была отключена, но это не мешало использовать существующий код для целей написания самописного импорта выписки на базе стандартного кода)
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 05.12.2018 в 14:55.
Старый 05.12.2018, 15:59   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,228 / 2421 (89) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
https://docs.microsoft.com/en-us/dyn...considerations

Цитата:
Some methods will be attributed as obsolete to signal that they will be fully deprecated in the future. Any compiler warning that is generated due to the calling or wrapping of an obsolete method should be investigated to ensure that the expected code path still exists. In some cases, Microsoft code will directly call the new method in place of the obsolete method. When this happens, the code built around the obsolete method will not execute when expected.
__________________
https://axcoder.github.io
Старый 05.12.2018, 16:15   #5  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,364 / 888 (32) +++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Дело в том, что в предыдущей версии нет и намека на предстоящие изменения.
X++:
    /// true if the journal was posted successfully; otherwise, false.
    /// </returns>
    protected boolean postTrans(
        LedgerVoucher               _ledgerVoucher,
А если клиент купил доработку, внедрил и должен мочь "забыть" о ней, но фиг вам. С иглы не слезть. Никогда нельзя доверять MS. Они всегда ломали и будут ломать. Маркетинг не совадает с реальностью. Клиент будет платить все время пока использует продукты MS, чего MS и хочет добиться обманывая всех своими сказками.
Старый 05.12.2018, 20:29   #6  
online
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
501 / 222 (9) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Стоит взять пример с разработчиков DirectX, которые знали, что если кто-то выпускал игры для 6-й или 7 версии, то последующие версии не должны сломать функционал старых игр. Итог превзошел все ожидания. Интерфейсы менялись крайне редко, а если менялись, то по сути создавались новые, более совершенные или более полезные, обрастая новыми методами, либо измененными старыми. Старый же код продолжал жить, радуя поклонников ретро-игр.
__________________
Незаменимых людей нет. Но и в отпуск мы тебя не отпустим. © Начальник
Теги
d365fo

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
cleverax: D365FO: Using Bar codes, External codes and GTIN in Warehouse app to identify an item. Blog bot DAX Blogs 0 03.02.2018 21:13
cleverax: D365FO: Manual inbound load rating Blog bot DAX Blogs 0 03.02.2018 21:13
patrickmouwen: Dynamics 365 CRM and ERP interaction Blog bot DAX Blogs 0 29.12.2017 03:11
Изменение книги покупок\продаж, журнал учета счетов фактур - когда выйдет обновление? Elenko DAX: Функционал 32 24.12.2014 10:52
Обновление detail-таблицы DreamCreator DAX: Программирование 1 05.04.2005 15:57
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:49.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.