|
13.08.2007, 22:29 | #1 |
Участник
|
Косячок в классе InventAdj_Cancel (fetchMode)
Наткнулся сегодня на «интересный» способ указывать fetchMode в Query. Так, в методе InventAdj_Cancel.updateMultipleInvent() есть такие интересные строчки (AX 3.0 SP5 FP1)
X++: inventSettlementDataSource = inventClosingDataSource.addDataSource(
tableNum(InventSettlement));
inventSettlementDataSource.fetchMode(JoinMode::INNERJOIN); X++: inventTransDataSource = inventSettlementDataSource.addDataSource(
TableNum(InventTrans));
inventTransDataSource.fetchMode(JoinMode::ExistsJoin); X++: if(fetchMode) { /* выборка 1:1 */ } Использование JoinMode::InnerJoin в AX 3.0 SP5 FP1 для установки fetchMode встречается еще в методах RAssetCreateTaxAccount.new() и Tax.queryTaxCodeIntersection(), JoinMode::ExistsJoin для этого вроде, к счастью, нигде больше не используется. |
|
|
За это сообщение автора поблагодарили: Logger (2), vladz (1). |
13.08.2007, 23:49 | #2 |
Banned
|
Да. Смешно читать, как M. F. Pontoppidan надувает щеки и с гордостью пишет, что в версии 4.0 устранены все отклонения от Best Practices. Во-первых, не устранены, а во-вторых, все это сделали чисто механически, и с прикладной точки зрения код едва ли улучшился.
Мне это отдаленно напоминает одного программиста-дуболома из бывшего австрийского Коламбуса. При переходе на 3.0, как вы помните, проверка на ttsbegin перед .update() была ужесточена. Так этот кретин выгрузил весь код из VAR-слоя в XPO (!) и в текстовом редакторе обрамил все вызовы: ttsbegin; xxx.update(); ttscommit; Нетрудно догадаться, что приложение перестало работать совсем. Последний раз редактировалось EVGL; 13.08.2007 в 23:55. |
|
14.08.2007, 00:46 | #3 |
Member
|
Цитата:
Сообщение от EVGL
...
в версии 4.0 устранены все отклонения от Best Practices. ... Скомпилируйте какой-нибудь класс Global... Только это... Нажмите сначала Сервис\Параметры, кнопочка Компилятор, в поле Уровень диагностики Уровень 4. Только это не все. Потом Кнопочка Рекомендации и в самом верху в поле Уровень предупреждения выберите Все, а не Ошибки. 983 отклонений от ВР. Или мой "любимый" класс WebFormHtml 1100 отклонений от ВР. Причем если в Global в восточноевропейской версии может быть код локализаторов (лень смотреть, но раньше был), то в WebFormHtml они точно не лазили. Так чего они там такого "сделали" с отклонениями? По умолчанию проверку по ВР попросили сообщать только об ошибках?
__________________
С уважением, glibs® |
|