![]() |
#10 |
Участник
|
Еще наткнулись. Ка-то странно работает кэш (я про это уже писал, но тогда было только тестирование и как-то не зациклились на этой теме).
У нас в разных компаниях номенклатура ведет себя по разному (например, в производственной это спецификация с номенклатурной группой "Готовая продукция", в торговых домах это номенклатура с номенклатурной группой Товар, ну и т.п.). Поэтому справочник не общий, а в каждой компании свой (есть доработка по вводу и синхронизации определенных номенклатур, но суть не в этом). Так вот, простой код джоба: X++: itemId = 'ВентиляторWRW50/40'; intentTable = InventTable::find(itemId); changeCompany('TRD') { inventTableChg = null; select firstOnly inventTableChg where inventTableChg == itemId; ... } То же происходит если в разных компаниях номера складских лотов совпадают. Если после переключения компании искать складские операции по номеру лота, совпадающему с тем, что был выполнен ранее, то вернется ранее найденный лот. Помогает включения в код запрет кэша: X++: itemId = 'ВентиляторWRW50/40'; intentTable = InventTable::find(itemId); changeCompany('TRD') { inventTableChg = null; inventTableChg.disableCash(true); select firstOnly inventTableChg where inventTableChg == itemId; ... } Такое впечатление, то кэш игнорирует компании. вобщем-то можно было бы отключить кэш DAX для всех таблиц (кэш MS SQL хорошо справляется со своей работой), но InventTrans не кэшируется DAX! Так же понятно, что из-за этой проблемы следует стараться иметь для одних и тех же таблиц в разных компаниях разные уникальные идентификаторы. Но, в нашем случае, это возможно для InventTrans, но не интересно для InvntTable. Можно всегда добавлять disableCach, но в наших разработках мы так и делаем, но есть стандартный код! PS: кстати, без использования disableCash Trasert MS SQL показывает, что к базе данных было только оно обращение, то есть цепочка: поиск в одной компании, changeCompany, поиск в другой компании того же значения обрабатывает DAx независимо от типа кэширования. Последний раз редактировалось Raven Melancholic; 29.08.2009 в 21:16. |
|
|
За это сообщение автора поблагодарили: JeS (1), Kabardian (3). |