|
![]() |
#1 |
Участник
|
Основная проблема как мне кажется - научить вьюху отбирать из InventSumDelta записи с нужным TTSid - актуальным для текущей сессии.
Можно в служебную табличку (XXServiceTable ) в начале транзакции (в методе application.ttsNotifyPostBegin писать соответствие ttsId и @@SPID - до конца транзакции ни ttsId ни @@SPID не поменяется. А за пределами транзакции для уже поюзанного номера ttsId выборка из InventSumDelta всегда пустая) Ну а затем во вьюхе добавить условие - фильтровать InventSumDelta.TTsId по значению прописанного в вспомогательной табличке. Его легко достать через подзапрос X++: select ttsId from XXServiceTable where sid = @@SPID По идее это все не должно утяжелить запрос. Данные в InvnetSumDelta игрушечные по сравнению с Inventsum. Она практически всегда пустая. Последний раз редактировалось Logger; 19.05.2017 в 12:09. |
|
![]() |
#2 |
Участник
|
Цитата:
Далее, для запросов (без forupdate) в Ax2012 всё ещё используется Read Committed Snapshot Isolation? Если всё это так, то "чужие" записи в ней просто невозможно увидеть, т.е. условие по ttsId, казалось бы, просто не нужно (оно лишь оптимизирует выборку)... |
|
|
За это сообщение автора поблагодарили: Logger (3). |