04.12.2013, 14:57 | #141 |
Участник
|
Именно так. Но теоретически можно представить представить себе ситуацию когда не содержащий ошибок компиляции код таким образом скрывается от выполнения, но не скрывается от компиляции. Например, для того что бы работали перекрестные ссылки, или просто чтобы бы при очередной компиляции проверять не появились ли ошибки в этом коде, связанные с изменениями в других объектах.
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
09.12.2013, 21:50 | #142 |
Сенбернар
|
Дивный код попался...
X++: TNow=TimeNow(); super(); switch(true) { case (23*3600 + 55*60 <tnow ): infolog.shutDown(true); return; break; }
__________________
Best Regards, Roman |
|
29.01.2014, 19:08 | #143 |
Участник
|
Коллега нашел: AX 2012 CU5, \Classes\RunBaseBatch\canGoBatch
X++: /// <summary> /// Returns false /// </summary> /// <returns> /// false /// </returns> /// <remarks> /// This method must be in this class because it is called from the dialogRunbase class. /// </remarks> /*MAN The method must return false when the class is not batchable. */ public boolean canGoBatch() { return true; } |
|
31.01.2014, 10:47 | #144 |
Участник
|
|
|
01.02.2014, 13:25 | #145 |
Участник
|
небось индусам отдавали на аутсорс комменты писать
|
|
19.02.2014, 03:42 | #146 |
Banned
|
В последнее время много приходится работать с шаблонами Sure Step. Русская версия с руководством для руководителя проекта вызывает восторг, просто по полу катался:
Цитата:
Работа, связанная с любым изменением, начинается только после согласования расчетной стоимости и воздействия изменения на график посредством подписания рукописной формы запроса на изменение назначенными менеджерами проекта обеих сторон.
|
|
19.02.2014, 06:09 | #147 |
Участник
|
А мне стиль напомнил http://m.youtube.com/watch?v=e-qDHM0...%3De-qDHM0slB0
|
|
20.02.2014, 20:06 | #148 |
Участник
|
X++: ..... catch (Exception::DuplicateKeyException) { // Prevent an endless loop if (tryCount < 5) { retry; } else { throw Exception::DuplicateKeyExceptionNotRecovered; } } |
|
20.02.2014, 22:23 | #149 |
Участник
|
Может быть, на то, что в это время в другой сессии кто-нить удалит запись с таким же набором значений полей, входящих в уникальные индексы
|
|
20.02.2014, 22:55 | #150 |
Модератор
|
Варианты
Так как SERIALIZABLE уровень изоляции не используется, даже при использовании конструкций вида X++: ttsbegin; if (exists()) { doSomethingBeforeUpdate(); update(); } else { doSomethingBeforeInsert(); insert(); } ttscommit;
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
21.02.2014, 20:36 | #151 |
Участник
|
Цитата:
Сообщение от Vadik
Варианты
Так как SERIALIZABLE уровень изоляции не используется, даже при использовании конструкций вида X++: ttsbegin; if (exists()) { doSomethingBeforeUpdate(); update(); } else { doSomethingBeforeInsert(); insert(); } ttscommit; |
|
26.03.2014, 19:24 | #153 |
Участник
|
Приложение AX 2012 R2 CU7 (6.2.1000.4051), при активации ключа Retail на формах заказов на продажу и заказов на покупку появляется кнопка "Добавить продукты", открывающая форму создания и изменения строк заказа на основе продуктов с возможностью фильтрации последних по каталогу. Там используется времяночка TmpRetailProductsToAdd, по данным которой при закрытии формы собственно создаются и изменияются строки заказа. Разработчикам пришло в голову, что пользователи могут на этой форме поменять не только количество, но и аналитики хранения/отслеживания номенклатуры, поэтому они завели "фиктивный" FormDS на базе InventDim (разумеется, запретив сохранять что-либо через него), а на сохранение времяночки повесили такой чудо-код (\Forms\RetailAddItems\Data Sources\TmpInventTable\Methods\write):
X++: public void write() { InventDim inventDimLocal; inventDimLocal.ConfigId = inventDim.ConfigId; inventDimLocal.InventColorId = inventDim.InventColorId; inventDimLocal.InventSizeId = inventDim.InventSizeId; inventDimLocal.InventStyleId = inventDim.InventStyleId; inventDimLocal.InventSiteId = inventDim.InventSiteId; inventDimLocal.InventLocationId = inventDim.InventLocationId; inventDimLocal.InventBatchId = inventDim.InventBatchId; inventDimLocal.wmsLocationId = inventDim.wmsLocationId; inventDimLocal.wmsPalletId = inventDim.wmsPalletId; inventDimLocal.inventSerialId = InventDim.inventSerialId; tmpInventTable.InventDim = InventDim::findOrCreate(inventDimLocal).InventDimId; super(); } |
|
|
За это сообщение автора поблагодарили: belugin (5), S.Kuskov (2). |
14.05.2014, 20:43 | #154 |
Участник
|
Приложение AX 2012 R2 CU7 (6.2.1000.4051), интересно, при каком параде планет здесь должен будет отработать бразильский функционал?..
\Data Dictionary\Tables\InventTransferTable\Methods\Update X++: // <GEERU> public void update() { #ISOCountryRegionCodes if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU])) { ttsbegin; this.setInventProfileId_RU(); this.setInventProfileIdTo_RU(); this.updateLinesInventProfile_RU(); super(); // <GBR> if (BrazilParameters::isEnabled()) { this.SysExtensionSerializerMap::postUpdate(); } // </GBR> ttscommit; } else { super(); } } // </GEERU> X++: public static boolean isEnabled() { #ISOCountryRegionCodes return SysCountryRegionCode::isLegalEntityInCountryRegion([#isoBR]); } |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
15.05.2014, 16:38 | #155 |
Banned
|
Русская локализация R3
Каждый раз, когда в русской компании натыкаешься на эти пункты меню, это вызывает неподдельное веселье аудитории. Нравится глубина проработки этой важной для страны темы: целый подмодуль "Alcohol*", включая журнал ежедневного потребления Alcohol Daily Journal, полная интеграция. Последний раз редактировалось EVGL; 15.05.2014 в 16:54. |
|
15.05.2014, 17:08 | #156 |
Участник
|
Угу, только участникам рынка и автоматизаторам (конечным) не смешно Есть слухи, что надо будет каждую продажу сразу регистрировать в единой гос. БД.
__________________
Ivanhoe as is.. |
|
16.05.2014, 18:01 | #157 |
Участник
|
Цитата:
Сообщение от gl00mie
Приложение AX 2012 R2 CU7 (6.2.1000.4051), интересно, при каком параде планет здесь должен будет отработать бразильский функционал?..
\Data Dictionary\Tables\InventTransferTable\Methods\Update X++: // <GEERU> public void update() { #ISOCountryRegionCodes if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU])) { ttsbegin; this.setInventProfileId_RU(); this.setInventProfileIdTo_RU(); this.updateLinesInventProfile_RU(); super(); // <GBR> if (BrazilParameters::isEnabled()) { this.SysExtensionSerializerMap::postUpdate(); } // </GBR> ttscommit; } else { super(); } } // </GEERU> X++: public static boolean isEnabled() { #ISOCountryRegionCodes return SysCountryRegionCode::isLegalEntityInCountryRegion([#isoBR]); } В Бразилию сообщил, и уже сегодня пофиксили. |
|
10.06.2014, 00:29 | #158 |
Участник
|
Доброго времени суток!
Наткнулся на мелкий баг, решил выложить, кто хочет, исправьте Заглянул в DAX 2009, Axapta 3.0, код аналогичен. В 2012й похоже уже всё красиво. Форма ProdParameters, метод numberSeqPostInit() X++: NumberSeqReference numberSeqReferenceProd; NumberSeqReference numberSeqReferenceRoute; ; numberSeqReferenceProd = ProdParameters::numberSeqReference(); numberSeqReferenceRoute = RouteParameters::numberSeqReference(); // инициализуется класс обработчик номерной серии для маршрутов numberSequenceReference_ds.object(fieldnum(NumberSequenceReference, AllowSameAs)).visible( numberSeqReferenceProd.sameAsActive() || numberSeqReferenceProd.sameAsActive()); // но здесь почему-то используется только экзменпляр Prod'а, а Route в проверке не участвует ctrlLabelSameAs.visible(numberSeqReferenceProd.sameAsActive() || numberSeqReferenceProd.sameAsActive()); // и здесь тоже Последний раз редактировалось Cardagant; 10.06.2014 в 00:45. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
10.06.2014, 20:51 | #159 |
Молодой, подающий надежды
|
2012 R2 CU7
В классе RunBaseQuery_RU переменная queryrun объявлена, как SysQueryRun, но в методах самого класса она инициализируется, как QueryRun X++: protected final void initQueryRun() { ... query = this.initNewQuery(); queryrun = new QueryRun(query); } X++: public boolean unpack(container packedClass) { ... if (packedQuery) { queryrun = new QueryRun(packedQuery); } ... } Чтобы все заработало, переменную инициализировать, как X++: queryrun = new SysQueryRun(...)
__________________
Кононов Пётр |
|
|
За это сообщение автора поблагодарили: Ivanhoe (5), gl00mie (2), S.Kuskov (1). |
15.06.2014, 19:57 | #160 |
Участник
|
AX 2012 CU7, форма SalesCopying, метод CustInvoiceTrans\upDateRemainderCache, некорректный расчет ранее возвращенного кол-ва для заказов отгруженных через функционал отложенного перехода права собственности, также ошибка есть в случае использования функционала проектов.
X++: void upDateRemainderCache(CustInvoiceTrans _custInvoiceTrans) { SalesQty qty; PdsCWInventQty cwQty; SalesLine localSalesLine; // <GEERU> GoodsInRouteInventTransIdDelivery_RU inventTransIdDelivery_RU; // </GEERU> if (!creditNoteReturnRemainder.exists(_custInvoiceTrans.RecId)) { localSalesLine = SalesLine::find(_custInvoiceTrans.InventTransId); [qty, cwQty] = SalesLine::pdsRemainReturnLotQtyAllCreditNote(_custInvoiceTrans.InventTransId, localSalesLine.ProjId); // <GEERU> if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU])) { inventTransIdDelivery_RU = _custInvoiceTrans.custInvoiceTrans_RU().InventTransIdDelivery_RU; } if (inventTransIdDelivery_RU) { qty = UnitOfMeasureConverter::convert(-SalesLine::qtyDeliveryToCreditNote_RU(inventTransIdDelivery_RU), UnitOfMeasure::unitOfMeasureIdBySymbol(_custInvoiceTrans.inventTable().inventUnitId()), UnitOfMeasure::unitOfMeasureIdBySymbol(_custInvoiceTrans.SalesUnit), NoYes::Yes, InventTable::itemProduct(_custInvoiceTrans.ItemId)); qty = localSalesLine.type().invoicedInTotal() - qty; } // </GEERU> creditNoteReturnRemainder.insert(_custInvoiceTrans.RecId, qty); cwCreditNoteReturnRemainder.insert(_custInvoiceTrans.RecId, cwQty); } } X++: localSalesLine = SalesLine::find(_custInvoiceTrans.InventTransId); X++: localSalesLine = SalesLine::findInventTransId(_custInvoiceTrans.InventTransId); X++: public server static container pdsRemainReturnLotQtyAllCreditNote( InventTransId _inventTransId, ProjId _projId = SalesLine::find(_inventTransId).ProjId)
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: gl00mie (3), S.Kuskov (1). |