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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.05.2019, 17:17   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Использование modifiedFieldValue() и modifiedField(). Как правильно.
Привет всем.

Попалась ссылка с описанием багов при использовании табличного метода modifiedFieldValue().
https://bkdynamics-ax.blogspot.com/2...ifference.html
Стал проверять, нашлось много интересного.

Axapta 2012 R3 CU13

1. При обычной работе в p-code при вызове super() из modifiedField() идет вызов modifiedFieldValue().

2. В стандартном коде есть места где идет вызов modifiedFieldValue(), соответственно если написать код в modifiedField() то в некоторых сценариях он никогда не вызовется.

3. Если табличка Table1 из иерархии наследования то super() в методе modifiedField() вызывает modifiedField() родительской таблички, и т.д. пока не дойдет вызов до корневой таблички. Super() корневой таблички вызывает Table1.modifiedFieldValue(), чей super() передает вызов в modifiedFieldValue() родительской и.т.д. пока не дойдем до корневой таблички в иерархии.


4. При работе в CIL п.1 не выполняется, что может приводить к отличиям в работе пакетных заданий от обычного запуска через p-code. (Об этом и было сообщение у индусов https://bkdynamics-ax.blogspot.com/2...ifference.html )

5. Пункт 3 работает с багами. Параметр _fieldName в метод modifiedFieldValue() передается как 'UNKNOWN'. Если наследования табличек нет то все ок.


В общем, какая-то жуть.


Вопросы:
а. Для чего был введен метод modifiedFieldValue ?

б. Куда правильнее помещать свой кастомизированный код, в modifiedField или в modifiedFieldValue ?

в. Какой из методов лучше вызывать из кода в случае необходимости. ModifiedField или modifiedFieldValue ?

г. Как быть с п.4 ? Как для CIL кода обойти баг ? (Или это не баг а так и задумано. Тогда в чем смысл ?)

д. Что делать с п.5 ? Как обойти багу ?


е. Как обстоят дела с Dynamics 365 ? Там поведение такое же или другое ?


Для иллюстрации приложил проект.
Класс пакетник, можно запусить в p-code можно в CIL и сравнить результаты в инфологе.

Вызов в p-code
Нажмите на изображение для увеличения
Название: Bad_PCode.png
Просмотров: 166
Размер:	108.8 Кб
ID:	12312

Вызов в CIL
Нажмите на изображение для увеличения
Название: Bad_CIL.png
Просмотров: 206
Размер:	81.3 Кб
ID:	12313
Вложения
Тип файла: zip PKoz_TestModifiedMethod_2012_upgrade_2019_05_16__17_09_All.zip (3.4 Кб, 157 просмотров)
За это сообщение автора поблагодарили: sukhanchik (10), gl00mie (5).
Теги
dax2012, modifiedfieldvalue, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как правильно? куда вставить действия при старте AOS? ax2009, ax2012 и прочие версии mazzy DAX: Программирование 27 03.04.2023 13:58
ax2009, ax2012: как правильно отобразить фильтр на форме? mazzy DAX: Программирование 6 25.03.2019 19:09
D365 как правильно переопределить метод в таблице. Skolos DAX: Программирование 19 31.01.2018 18:57
Открытая сумма по счету-фактуре - как правильно вычислить? IKA DAX: Программирование 7 21.03.2011 19:46
Как правильно обращаться к элементам формы созданнй динамически из АОТ? 3oppo DAX: Программирование 2 29.11.2006 09:57
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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