04.02.2019, 14:23 | #1 |
Участник
|
D365FO Добавить новое поле в TAE policies
В AX есть замечательный framework под названием "Trade agreement evaluation (TAE) policies". Его задача спрашивать пользователя на формах "Заказ на продажу", "Заказ на покупку" и др. необходимо ли обновить вручную введенные значения цены или скидки значениями из "Trade agreements" при изменении кол-ва например.
Для того чтобы добавить кастомное поле в этот framework необходимо сначала добавить это поле в Map PriceDiscResultFields. Создать экстеншин для объекта Map в D365FO нельзя. Как быть? Последний раз редактировалось Morpheus; 04.02.2019 в 14:32. |
|
04.02.2019, 14:31 | #2 |
Участник
|
Маппинг же перенесли на таблицы, а таблицы вроде как можно расширять. См. таблицу PurchLine\Mappings\PriceDiscResultFields
|
|
04.02.2019, 14:34 | #3 |
Участник
|
|
|
04.02.2019, 14:42 | #4 |
Участник
|
А, не понял сначала. Да там баг, похоже. Если нажать правой кнопкой на PriceDiscResultFields и выбрать Create extension, ничего не происходит. Если Create extension in new project, проект создается, но пустой.
|
|
04.02.2019, 15:04 | #5 |
Banned
|
Может, https://docs.microsoft.com/en-us/dyn...ty-changes-812 попробовать?
|
|
04.02.2019, 16:37 | #6 |
Участник
|
Цитата:
Сообщение от EVGL
Может, https://docs.microsoft.com/en-us/dyn...ty-changes-812 попробовать?
|
|
04.02.2019, 17:23 | #7 |
Banned
|
Якобы они эту таблицу переделали для лучшей расширяемости.
|
|
05.02.2019, 12:18 | #8 |
Участник
|
Метод PriceDiscLinePolicyRule.canCreateFixedPolicy() в качестве параметра принимает поле объекта Map PriceDiscResultFields (метод показан ниже).
Какую таблицу Вы имеете ввиду? |
|
06.02.2019, 11:33 | #9 |
Участник
|
На диаграмме показано, что Map является ключевым объектом в дизайне.
|
|
06.02.2019, 12:42 | #10 |
Участник
|
Трясите Майкрософт. Пункт меню "Create extension" есть, папка "K:\AosService\PackagesLocalDirectory\ApplicationSuite\Foundation\AxMapExtension" есть, а узла AOT\Data Model\Map Extensions" нет. Наверное, еще не доделали.
|
|
06.02.2019, 16:07 | #11 |
Banned
|
Я посмотрел в 10.0: каких-то радикальных изменений не видно. Попробуйте взять в заложники существующее, но не использованное поле. Например, MultiLineDiscCode. Обновлять его из того, которое вам нужно и использовать для переноски информации.
|
|
06.02.2019, 16:09 | #12 |
Участник
|
Здесь объясняется почему расширение объекта Map может приводить к runtime исключениям. Остается надеяться, что Microsoft выполнит когданибудь рефакторинг фрэймворка TAE, после чего его можно будет расширять на кастомные поля.
Последний раз редактировалось Morpheus; 06.02.2019 в 17:13. |
|
06.02.2019, 21:01 | #13 |
Участник
|
Может я глупость спрошу, но нельзя ли туда свой map добавить? Вместо того чтобы расширять существующий ?
|
|
07.02.2019, 00:54 | #14 |
Banned
|
|
|
07.02.2019, 04:42 | #15 |
Участник
|
Зачем туже самую? Новую Мапу, я мельком посмотрел, там в кеш классе список с мапами и его создают в wrapable методе, значит ожидается что можно список дополнить. Да и policyField поидее может вернуть другую Мапу. Но я не проверял.
|
|