26.03.2008, 16:30 | #1 |
Участник
|
Таблица NumberSequenceGroupRef метод find
X++: public static NumberSequenceGroupRef find(extendedTypeId dataTypeId, NumberSequenceGroupId numberSequenceGroupId, boolean update = true) { ... } Интересно, для чего дефолтный параметр update объявлен как true ? При обработке документов, это приводит к тому что идут блокировки forUpdate на записях таблицы там где это казалось бы необязательно. Например при обработке накладной в методе \Classes\SalesFormLetter_Invoice\allocateNumAndVoucher создается ощущение что во многих местах разработчики поставили вызов NumberSequenceGroupRef::find(...) со значением параметра update по дефолту, по привычке полагая что вызов будет без foupdate блокировок, но блокировки есть - так что при обработке накладных с разных рабочих мест пользователи блокируют одни и те же записи - резко ухудшается параллелизм работы. Итак вопрос : 1. Зачем параметр Update сделан по умолчанию true ? 2. Можно ли в указанном примере \Classes\SalesFormLetter_Invoice\allocateNumAndVoucher при вызове NumberSequenceGroupRef::find() поставить его false ? |
|
|
За это сообщение автора поблагодарили: dn (2). |
26.03.2008, 17:08 | #2 |
Участник
|
В Dynamics AX 2009 значение по умолчанию этого параметра = false
Поэтому думаю, что можно довольно уверенно поменять этот параметр. Но я бы все равно сперва перекрестными ссылками прошелся, посмотрел где метод этот используется.. |
|
|
За это сообщение автора поблагодарили: dn (2), Logger (1). |
27.03.2008, 10:21 | #3 |
Участник
|
|
|
27.03.2008, 11:34 | #4 |
Участник
|
Стоит true.
Есть доказательства/мысли, что должно быть false? |
|
27.03.2008, 14:39 | #5 |
Участник
|
Доказательств нет, но есть соображение что по аналогии с NumberSequenceGroupRef надо поставить false.
Но самый прикол в том что если посмотреть по перекрестным ссылкам, то этот метод нигде не вызывается ! Так что вопрос теряет практический смысл |
|
23.11.2009, 13:05 | #6 |
Участник
|
Цитата:
NumberSequenceTable (по аналогии c InventUpdateTTSControl.setLockInventSumCreate(), когда при обновлении InventSum накладывается блокировка по InventDim либо InventItemLocation)? |
|
23.11.2009, 15:15 | #7 |
Участник
|
Может быть.
Только зачем там эта блокировка ? Да еще и из основного соединения ? Мы просто поменяли дефолтное значение параметра и пока проблем не было. |
|
26.11.2009, 15:37 | #8 |
Участник
|
Может еще в метод findPrintoutJournalNum_CustInvM15_RU таблицы NumberSequenceGroupRef передавать false ?
X++: public static NumberSequenceGroupRef findPrintoutJournalNum_CustInvM15_RU(NumberSequenceGroupId _numberSequenceGroupId, boolean _update = false /*true*/) { return NumberSequenceGroupRef::find(typeId2ExtendedTypeId(typeid(PrintoutJournalNum_CustInvM15_RU)), _numberSequenceGroupId, _update); }
__________________
MS DAX 2012 |
|