14.11.2019, 07:41 | #1 |
Участник
|
Добавление полей из InventDim в InventSum
Увидел сегодня твит Ивана по поводу WMS
Довольно нужная штука для многих клиентов 2009/2012, но реализованно только в D365FO Технически я так понимаю сделано на триггерах X++: /// CREATE TRIGGER INVENTSUMUPDATETRIGGER ON dbo.INVENTSUM /// AFTER UPDATE /// AS /// BEGIN /// UPDATE INVENTSUM /// SET INVENTSUM.CONFIGID = INVENTDIM.CONFIGID, Кто-нибудь пробовал делать подобное для 2012? Как лучше реализовать эти триггеры в 2012?(куда их вообще надо добавить чтобы они не удалялись при синхронизации) |
|
|
За это сообщение автора поблагодарили: Logger (3), boomer (1). |
14.11.2019, 09:23 | #2 |
Участник
|
Был один кейс, когда в компании была включена партия и какие-то еще аналитики, которые не использовались, но отказаться от них было сложно уже. В большинстве запросов использовался только склад. Нужно было оптимизировать запросы. Там я добавлял склад в InventSum. Для заполнения можно поправить класс InventUpdateOnhand, ничего сложного. Эффект положительный был от этого. Общей универсальной доработки я не делал.
С триггерами я так понимаю будут дополнительные запросы на обновление. При правке InventUpdateOnhand не будет, т.к. правится сам запрос вставки в таблицу. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
14.11.2019, 09:59 | #3 |
Участник
|
Мне кажется для этого триггеры не обязательны, достаточно заполнять в InventSum поля аналитики при вставке записи. Из примера мне непонятно - зачем триггер вызывается при каждом обновлении InventSum ?
|
|
14.11.2019, 10:40 | #4 |
Участник
|
Цитата:
Плюс если делать в АХ, код не будет отрабатывать при использовании doUpdate(), а есть любители писать так Последний раз редактировалось trud; 14.11.2019 в 10:45. |
|
14.11.2019, 10:59 | #5 |
Участник
|
Я имел в виду, что достаточно заполнить дополнительное поле аналитики только при вставке, она происходит без прямых скулевых запросов. Далее штатный функционал не меняет значение InventSum.InventDimId и набор аналитик в самом InventDim. Постоянное обновление этого поля избыточно.
PS. В АХ и без этого достаточно выполняется бестолковых микро-запросиков, на которых в сумме тратиться куча ресурсов. |
|
|
За это сообщение автора поблагодарили: trud (2). |
14.11.2019, 12:43 | #6 |
Участник
|
Цитата:
Триггеры можно не трогать. Правил код в аксапте. Ускорение работы очень понравилось. А вы какие еще выгоды от такой денормализации видите? |
|
14.11.2019, 13:13 | #7 |
Moderator
|
Цитата:
с денормализацией можно бороться А потом можно бороться с нормализацией - как в этой теме например, или при обновлении наследования таблиц между DAX2012RTM и DAX2012R2. Жду когда они inventTransId обратно в inventTrans продублируют. По большому счету - ни для чего другого таблица inventTransOrigin и ее родственники не используются. [/TROLLFACE] |
|
|
За это сообщение автора поблагодарили: Logger (3), boomer (1). |
Теги |
d365 for operations, d365fo, inventdim, inventsum, inventupdateonhand, performance, wms, денормализация |
|
|