12.03.2019, 15:50 | #361 |
Moderator
|
Версия 8.1.3, метод SSRSReportRunController.CheckBatchJobStatus() содержит следующий замечательный код:
X++: UserConnection userConnection; try { userConnection = new UserConnection(); userConnection.ttsbegin(); // Update teh batch job status to 'Waiting' select pessimisticLock firstonly * from batchJobUpdate where batchJob.RecId == batchJobUpdate.RecId; if (batchJobUpdate) { batchJobUpdate.Status = BatchStatus::Waiting; batchJobUpdate.update(); } userConnection.ttscommit(); } finally { userConnection.finalize(); } Лечится это достаточно простым путем: Надо найти в вашей системе батч с именем "Report Data Cleanup" и просто его удалить. При следущей печати отчета, система прокашляется и создаст нужный батч. |
|
|
За это сообщение автора поблагодарили: Vadik (1), trud (5), gl00mie (5). |
12.03.2019, 18:55 | #362 |
Banned
|
Цитата:
Или там насквозь хитрый batchJobUpdate.update() который сам себе write() ? если писать batchJobUpdate.setConnection(userConnection)) то это скроет ошибку за счет нового соединения. Так? |
|
12.03.2019, 19:00 | #363 |
Moderator
|
Ну по факту, вообще обновлять batchJob в рамках текущего соединения - негуманно. Он там будет заблокирован на какое-то время и я не уверен что батч сервер будет себя корректно вести в такой ситуации. Просто учитывая что они в userConnection начинают и завершают транзакции, а в обычном дефолтном соединении - нет, они действительно просто забыли табличку к userConnection присоединить.
|
|
15.03.2019, 12:13 | #364 |
Участник
|
X++: static void Job64(Args _args) { QueryBuildDataSource qbds; Query query; ; query = new query(); qbds = query.addDataSource(tableNum(DimensionFinancialTag)); qbds.addRange(fieldnum(DimensionFinancialTag, FinancialTagCategory)).value(queryValue(5637145326)); qbds.addRange(fieldnum(DimensionFinancialTag, Value)).value('" ", !IFRS'); info(query.tostring()); } Цитата:
SELECT * FROM DimensionFinancialTag(DimensionFinancialTag_1)
WHERE ((FinancialTagCategory = 5637145326)) AND ((Value = N' ' AND NOT (Value = N'IFRS'))) |
|
16.03.2019, 08:51 | #365 |
Участник
|
Не очень понятно что именно нужно, но если речь идет про то, что в результате объединение по AND, то так было всегда, причем есть некоторые хитрости, например:
Отличия операторов ! и != в фильтрах Gustav: Unsorted, или Записки DAX-дилетанта - II |
|
05.04.2019, 16:34 | #366 |
Участник
|
Забавный код в классе ProjFormLetter_invoice
X++: public static void projPrintFormLetter(ProjInvoiceJour _projInvoiceJour, ProjFormLetter _projFormLetter = null, RecordSortedList _journalList = null, boolean _blCheck = false) { Args parameters = new Args(); if (isConfigurationkeyEnabled(configurationKeyNum(Project))) { .... } else { parameters.caller(_projFormLetter); parameters.parmEnumType(enumNum(PrintCopyOriginal)); parameters.parmEnum(PrintCopyOriginal::OriginalPrint); if (_journalList) { parameters.object(_journalList); } else { parameters.record(_projInvoiceJour); } //Calls the SSRS ProjInvoice report if (!_blCheck) { MenuFunction menuFunction = new MenuFunction(menuitemOutputStr(ProjInvoice), MenuItemType::Output); menuFunction.run(parameters); } } } |
|
09.04.2019, 08:42 | #367 |
Участник
|
No comments
X++: if (isConfigurationkeyEnabled(configurationKeyNum(Project))) { docTypes.addEnd(PrintMgmtDocumentType::SIProjInvoice); docTypes.addEnd(PrintMgmtDocumentType::SIProjInvoiceWithBR); docTypes.addEnd(PrintMgmtDocumentType::SIManagedProjInvoice); docTypes.addEnd(PrintMgmtDocumentType::ProjCustRetentionReleaseInvoice); docTypes.addEnd(PrintMgmtDocumentType::ProjectQuotation); } else if (isConfigurationkeyEnabled(configurationKeyNum(Project))) { docTypes.addEnd(PrintMgmtDocumentType::ProjectInvoice); } |
|
09.04.2019, 15:35 | #368 |
Moderator
|
Разбавлю тему традиционной жалобой на высокие технологии:
Судя по сообщению службы поддержки, новый вариант D365FOE Tier-2 instance (это который основан на Azure Service Framework, aka "Self-service deployment") не совместим с Data Integrator. Соответственно продемонстрировать клиенту возможность интеграции D365FOE с D365CE не представляется возможным в принципе. |
|
09.04.2019, 16:33 | #369 |
Участник
|
Что-то MVP которые были на саммите с тобой не согласны. Все насколько круто что хочется петь
Цитата:
While I was at the MVP Summit a few weeks ago, I was inspired to write my first Dynamics 365 Poem. This poem releases my true inner feelings about integrating Dynamics 365 for Finance and Operations with Dynamics 365 Customer Engagement.
|
|
09.04.2019, 17:05 | #370 |
Moderator
|
Цитата:
Сообщение от trud
Что-то MVP которые были на саммите с тобой не согласны. Все насколько круто что хочется петь
https://www.youtube.com/watch?v=twJc...ature=youtu.be |
|
10.04.2019, 04:56 | #371 |
Участник
|
Цитата:
Сообщение от fed
Разбавлю тему традиционной жалобой на высокие технологии:
Судя по сообщению службы поддержки, новый вариант D365FOE Tier-2 instance (это который основан на Azure Service Framework, aka "Self-service deployment") не совместим с Data Integrator. Соответственно продемонстрировать клиенту возможность интеграции D365FOE с D365CE не представляется возможным в принципе. |
|
10.04.2019, 09:10 | #372 |
Участник
|
А я уж подумал, что оно теперь само всё заинтегрировано
__________________
Ivanhoe as is.. |
|
10.04.2019, 11:57 | #373 |
Участник
|
В последнем DAX2009RU8 наткнулся на замечательный кусочек кода в reqTrans.findCommon():
X++: if (reqTrans.RefType == ReqRefType::TransferDemand) { select firstonly reqTrans index hint RefIdx where reqTrans.ReqPlanId == reqTrans.ReqPlanId && reqTrans.RefType == ReqRefType::TransferPlannedOrder && reqTrans.RefId == reqTrans.RefId; } Хе, я эту фигню нашел сегодня в 4-ке. )) |
|
10.04.2019, 12:12 | #374 |
Участник
|
Цитата:
Сообщение от fed
В последнем DAX2009RU8 наткнулся на замечательный кусочек кода в reqTrans.findCommon():
X++: if (reqTrans.RefType == ReqRefType::TransferDemand) { select firstonly reqTrans index hint RefIdx where reqTrans.ReqPlanId == reqTrans.ReqPlanId && reqTrans.RefType == ReqRefType::TransferPlannedOrder && reqTrans.RefId == reqTrans.RefId; } Можно починить примерно вот так: X++: reqTransCaller=reqTrans; select firstonly reqTrans index hint RefIdx where reqTrans.ReqPlanId == reqTransCaller.ReqPlanId && reqTrans.RefType == ReqRefType::TransferPlannedOrder && reqTrans.RefId == reqTransCaller.RefId; Хе, я эту фигню нашел сегодня в 4-ке |
|
10.05.2019, 10:57 | #375 |
Moderator
|
Вчера натолкнулись на замечательную ошибку. Модуль ER выдавал сообщение о неправильности значений некоторых параметров. При этом на глаз, все требуемые параметры были правильными и не пустыми. Я нашим консам выдал идею, что возможно глючит система кэширования и часть серверов не видят обновления сделанные с другого сервера. Надо мол подождать до утра и снова попробовать.
Реальность оказалась гораздо интереснее: Система кэширования просто забыла записать данные в БД. На экране вчера показывались одни параметры, а сегодня - совсем другие. Судя по всему ситуация была примерно такая: 1. Консы указали в параметрах ER ссылки на некоторый тип DocuType. 2. Потом этот тип кто-то удалил. (И похоже что delete action из DocuType на ERParameters нету - хотя не проверял). 3. Потом консы поменяли тип документа на правильный и типа изменения сохранили. 4. Потом примерно полдня система показывала на экране измененные значения полей (трем разным консам, мне и еще паре пользователей), а в БД хранила другие значения (и код класса читал именно их). 5. Потом кэш устарел и был зачищен. Мы снова увидели старые и неверные значения полей. V10.0.0 PU24. Сломали то ли систему кэширования, то ли систему записи в БД. Воспроизводить пока не пытались - времени не было. P.S. Добавлю что это был Productive Instance, поэтому простые домашние средства типа рестарта IIS были не доступны. Оставалось либо ждать часиков 8, либо бороться с поддержкой (вероятно - более 8 часов). Последний раз редактировалось fed; 10.05.2019 в 11:04. |
|
20.05.2019, 16:36 | #376 |
Участник
|
Странное
В коде класса провайдера PsaProjInvoiceDP вроде бы единственное место с упоминанием расчета LineTaxAmount из projInvoiceEmpl выглядит вот так Интересно действительно ли литовские фанаты проектов на выходе отчета хотят видеть такой результат X++: // <GEEHU><GEEPL> if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoHU, #isoPL])) { tmpPSAProjInvoice.LineTaxAmount = projInvoiceEmpl.TaxAmount; } // </GEEPL></GEEHU> if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoHU, #isoLT])) { // There may be tax amounts that should be excluded from the invoice. Remove the excluded amounts from the line's tax amount. tmpPSAProjInvoice.LineTaxAmount -= PSAProjInvoiceRPTHelperEE::getExcludedTaxAmount(projInvoiceJour.LedgerVoucher, _cursor); } |
|
20.05.2019, 16:49 | #377 |
Участник
|
Из того же класса неполиткорректное:
"а полякам запиши дату дважды, чтобы уж точно дошло" X++: if (_cursor.TableId == tableNum(ProjInvoiceCost)) { tmpPSAProjInvoice.TransDate = projInvoiceCost.TransDate; // <GEEHU><GEEPL> if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoHU, #isoPL])) { tmpPSAProjInvoice.LineTaxAmount = projInvoiceCost.TaxAmount; } // </GEEPL></GEEHU> if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoHU, #isoLT])) { // There may be tax amounts that should be excluded from the invoice. Remove the excluded amounts from the line's tax amount. tmpPSAProjInvoice.LineTaxAmount -= PSAProjInvoiceRPTHelperEE::getExcludedTaxAmount(projInvoiceJour.LedgerVoucher, _cursor); } // <GEEPL> if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoPL])) { tmpPSAProjInvoice.TransDate = projInvoiceCost.TransDate; } // </GEEPL> } |
|
20.05.2019, 21:35 | #378 |
Участник
|
Это все результат потуавтоматического слияния GLS слоя с SYS лет десять назад.
|
|
27.05.2019, 08:27 | #379 |
Участник
|
X++: // Change report format of project invoice report whose project type is fixed price or time & material if (this.parmReportName() == ssrsReportStr(psaContractLineInvoice, Report)) { this.parmReportName(ssrsReportStr(PSAContractLineInvoice, Report_AE)); } else if (this.parmReportName() == ssrsReportStr(PsaProjInvoice, Report)) { this.parmReportName(ssrsReportStr(PsaProjInvoice, Report_AE)); } |
|
28.05.2019, 00:42 | #380 |
Модератор
|
Если Вы пытаетесь запустить project invoice на 10.0.1 в ОАЭ, трясите саппорт на приватный хотфикс, "нормальный" фикс будет только в 10.0.4
__________________
-ТСЯ или -ТЬСЯ ? |
|