|
20.02.2014, 22:55 | #1 |
Модератор
|
Варианты
Так как SERIALIZABLE уровень изоляции не используется, даже при использовании конструкций вида X++: ttsbegin; if (exists()) { doSomethingBeforeUpdate(); update(); } else { doSomethingBeforeInsert(); insert(); } ttscommit;
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
21.02.2014, 20:36 | #2 |
Участник
|
Цитата:
Сообщение от Vadik
Варианты
Так как SERIALIZABLE уровень изоляции не используется, даже при использовании конструкций вида X++: ttsbegin; if (exists()) { doSomethingBeforeUpdate(); update(); } else { doSomethingBeforeInsert(); insert(); } ttscommit; |
|
20.02.2014, 22:23 | #3 |
Участник
|
Может быть, на то, что в это время в другой сессии кто-нить удалит запись с таким же набором значений полей, входящих в уникальные индексы
|
|
26.03.2014, 19:24 | #5 |
Участник
|
Приложение 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 | #6 |
Участник
|
Приложение 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). |
16.05.2014, 18:01 | #7 |
Участник
|
Цитата:
Сообщение от 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 | #8 |
Участник
|
Доброго времени суток!
Наткнулся на мелкий баг, решил выложить, кто хочет, исправьте Заглянул в 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 | #9 |
Молодой, подающий надежды
|
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 | #10 |
Участник
|
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). |
15.05.2014, 16:38 | #11 |
Banned
|
Русская локализация R3
Каждый раз, когда в русской компании натыкаешься на эти пункты меню, это вызывает неподдельное веселье аудитории. Нравится глубина проработки этой важной для страны темы: целый подмодуль "Alcohol*", включая журнал ежедневного потребления Alcohol Daily Journal, полная интеграция. Последний раз редактировалось EVGL; 15.05.2014 в 16:54. |
|
15.05.2014, 17:08 | #12 |
Участник
|
Угу, только участникам рынка и автоматизаторам (конечным) не смешно Есть слухи, что надо будет каждую продажу сразу регистрировать в единой гос. БД.
__________________
Ivanhoe as is.. |
|
18.07.2014, 19:38 | #13 |
Участник
|
X++: //First of all, I'd like to appologise to whoever is going to maintain this code. //It was originally created for the Loan management system (and is works perfectly for that), but //because of time constraints this class will also be used for investment register //- which has never been properly spec'ed. //So allot of things are being thrown to the AxnLRCreateJournals class to that class's main method //to make it work for investment register. //Again, I am sorry - CL |
|
|
За это сообщение автора поблагодарили: Logger (1). |
28.07.2014, 17:21 | #14 |
Участник
|
X++: // Calculate the number of years and the number for (monthCounter = month; monthCounter > 12; monthCounter -= 12) { yr += 1; } |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
29.07.2014, 14:47 | #15 |
Участник
|
skuull, эта пять!
|
|
29.07.2014, 17:36 | #16 |
Участник
|
|
|
30.07.2014, 05:53 | #17 |
NavAx
|
Так ты посмотри, что этот код делает. Судя по аббревиатуре, это заглушка для польской локализации. Насколько помню, там так грязно было, что по другому никак.
__________________
Isn't it nice when things just work? |
|
30.07.2014, 08:09 | #18 |
Участник
|
Это имя компании
|
|
|
За это сообщение автора поблагодарили: macklakov (1). |
28.10.2014, 18:46 | #19 |
Участник
|
Цитата:
hi there
Thanks for reading my message. I have no IT backgroung and only CAN use email and web surfing. I want to become ms dynamics ax consultant ( not programmer). So anyone kind enough to tell me the study route from scratch to become ms dynamics ax consultant. Also how long it can be take without any IT background. THANKS. |
|
21.11.2014, 15:55 | #20 |
Дмитрий Ерин
|
AX2009, AX2012, sys слой:
X++: final class TaxSalesInvoice extends Tax { SalesCalcTax salesFormLetter; ... } Аналогичные объявления в классах TaxSales, TaxPurch, TaxPurchInvoice, может еще где-то... Наверно я чего-то не догоняю, но эта невинная "шутка" стоила битого часа впустую потерянного времени
__________________
|
|
|
За это сообщение автора поблагодарили: macklakov (1), Logger (2), ivas (3). |