|
![]() |
#1 |
Участник
|
Цитата:
обратите внимание, что в вашем утверждении ничего не сказано про время ![]() Цитата:
которые вместо использования стандартных механизмов выполняют закат солнца вручную. |
|
![]() |
#2 |
Участник
|
Цитата:
о времени давно уже сказано до нас, что оно - деньги. я тут писал модуль симуляции розничных цен для крупнейшего поставщика автозапчастей, и уверяю тебя, эти люди порвут кого угодно, если новая цена не будет появляться чуть раньше реального времени. ![]() вторая часть комментария эмоциональная, но не конструктивная. глобальный кэш -- вполне себе стандартный механизм, как раз созданный для того, где кеширование таблиц не очень эффективно. впрочем, это, как я понимаю, тема для обширных дискуссий. тем более, что используется он не для всех случаев при поиске цен. например, тот же приснопамятный метод findDisc: X++: // To avoid flooding the cache the most granualated setup isn't cached. // ADAXBasis - Begin cacheMode = !(_itemCode == ADAXTableCategoryGroupAll::Table && _accountCode == ADAXTableGroupOfContractGroupAll::Table); // ADAXBasis - End Для моего конкретного случая, когда нужно загружать сотни тысяч новых цен, я это дело отключил. А вот как бы сделать так, чтоб Ваня заинтересовался косяком, про который я написал, и пофиксили бы это дело в консерватории...
__________________
Felix nihil admirari |
|
![]() |
#3 |
Участник
|
Да, но только проблема этого кеширования в том, что кеш сбрасывается только для АОСа, на котором происходило "шевеление", а на других оставшихся АОСах глобальный кеш остается неизменным
![]()
__________________
Sergey Nefedov |
|
![]() |
#4 |
Участник
|
ничего подобного! почитайте же по ссылке что написано: кэш реально global.
__________________
Felix nihil admirari |
|
![]() |
#5 |
Участник
|
Цитата:
![]()
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: kashperuk (3). |
![]() |
#6 |
Участник
|
Цитата:
![]() Цитата:
![]() |
|
![]() |
#7 |
Участник
|
AX2012 R2, R3
__________________
Felix nihil admirari |
|
![]() |
#8 |
Участник
|
__________________
Ivanhoe as is.. |
|
![]() |
#9 |
Участник
|
на рабочем проекте я получил ситуацию, когда флажок "цена найдена" был взведён, а переданный буфер оказался пустым. повторять конкретно на том классе сейчас у меня времени нет, но суть примерно такова:
X++: static void tmxTestCustTable(Args _args) { PriceDiscTable priceTable; PriceDiscTable foundPriceTable; PriceDiscTable foundPriceTableData; int maxCust = 5; int i = 1; while select priceTable { info(strFmt("in loop %1: %2", i, priceTable.RecId)); if(i == 2) { foundPriceTable = priceTable; foundPriceTableData = priceTable.data(); info("<-- let's say this is what we were looking for..."); } if(i>maxCust) { break; } else { i++; } } info("---------------------------------------"); info(strFmt("priceTable buffer after %1", priceTable.RecId)); info(strFmt("found reference after %1", foundPriceTable.RecId)); info(strFmt("found buffer after %1", foundPriceTableData.RecId)); } X++: Message (10:19:22 am)
in loop 1: 5637351352
in loop 2: 5637349038
<-- let's say this is what we were looking for...
in loop 3: 5637349039
in loop 4: 5637344655
in loop 5: 5637339598
in loop 6: 5637331591
---------------------------------------
priceTable buffer after 5637331591
found reference after 5637331591
found buffer after 5637349038
__________________
Felix nihil admirari |
|
|
|