16.05.2019, 17:17 | #1 |
Участник
|
Использование 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 Вызов в CIL |
|
|
За это сообщение автора поблагодарили: sukhanchik (10), gl00mie (5). |
Теги |
dax2012, modifiedfield, modifiedfieldvalue, как правильно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|