06.07.2009, 19:19 | #1 |
Banned
|
Ошибка в AX2009 EE: SalesFormLetter_xxx
Коллега сообщает: в указанных классах восточноевропейцы добавили генерацию RecId вручную. К сожалению, забыли пару мест:
SalesFormLetter_PackingSlip\chooseLinesFromWMSArrival: X++: void createParmTable() { if (this.allowCreateParmTable()) { if (!localSalesParmTable.ParmId) { this.createParmTable(localSalesParmTable, localSalesTable, inventSiteId, localSalesTable.SalesName); // PAHA, Error when invoicing from shipment --> //RecId is needed localSalesParmTable.RecId = systemSequence.reserveValues(1, tablenum(SalesParmTable)); // PAHA, Error when invoicing from shipment <-- recordInsertSalesParmTable.add(localSalesParmTable); salesParmTableMap.insert(this.salesParmTableMapKey(localSalesParmTable.SalesId, inventSiteId, '', '', ''), localSalesParmTable); salesParmSubTable = SalesParmSubTable::createFromSalesParmTable(localSalesParmTable,false); recordInsertSalesParmSubTable.add(salesParmSubTable); tableRefUsed = true; this.allowCreateParmTable(this.allowEmptyTable()); } } } X++: void createParmTable() { if (this.allowCreateParmTable()) { localSalesParmTable.clear(); localSalesParmTable.TableRefId = tableRef; this.createParmTable(localSalesParmTable, SalesTable::find(previousSalesId)); // PAHA, Error when invoicing from shipment --> //RecId is needed localSalesParmTable.RecId = systemSequence.reserveValues(1, tablenum(SalesParmTable)); // PAHA, Error when invoicing from shipment <-- recordInsertSalesParmTable.add(localSalesParmTable); salesParmTableMap.insert(this.salesParmTableMapKey(localSalesParmTable.SalesId, '', '', '', ''), localSalesParmTable); localSalesParmSubTable = SalesParmSubTable::createFromSalesParmTable(localSalesParmTable,false); recordInsertSalesParmSubTable.add(localSalesParmSubTable); tableRefUsed = true; this.allowCreateParmTable(this.allowEmptyTable()); } } |
|
06.07.2009, 21:41 | #2 |
Microsoft Dynamics
|
А Ваш коллега не задумался, для чего была добавлена генерация RecId?
Просто везде после строчки: X++: localSalesParmTable.RecId = systemSequence.reserveValues(1, tablenum(SalesParmTable)); X++: AddressTrans_RU::createFromSalesParmTable(localSalesParmTable); PlInventPackageParm::updateFromSalesParmTable(localSalesParmTable); В вышеприведенных методах SalesFormLetter_PackingSlip\chooseLinesFromWMSArrival, SalesFormLetter_Invoice\chooseLinesFromWMSShipment эти вызовы не используются.
__________________
You should use Bing before asking dumb questions. Последний раз редактировалось Jabberwocky; 06.07.2009 в 21:43. |
|
|
За это сообщение автора поблагодарили: EVGL (3). |
06.07.2009, 21:51 | #3 |
Banned
|
Спасибо за разъяснение, передал коллеге!
|
|
06.07.2009, 22:48 | #4 |
Участник
|
Хм, а что при вставке записи recId не перезатирается ? Или там добавлен код подавляющий это ?
|
|
07.07.2009, 07:04 | #5 |
Участник
|
Цитата:
Цитата:
Сообщение от Jabberwocky
А Ваш коллега не задумался, для чего была добавлена генерация RecId?
Просто везде после строчки: X++: localSalesParmTable.RecId = systemSequence.reserveValues(1, tablenum(SalesParmTable)); X++: AddressTrans_RU::createFromSalesParmTable(localSalesParmTable); PlInventPackageParm::updateFromSalesParmTable(localSalesParmTable); В вышеприведенных методах SalesFormLetter_PackingSlip\chooseLinesFromWMSArrival, SalesFormLetter_Invoice\chooseLinesFromWMSShipment эти вызовы не используются. Цитата:
X++: this.recordInsertListInit() X++: systemSequence = new systemSequence(); systemSequence.suspendRecIds(tableNum(SalesParmLine)); systemSequence.suspendRecIds(tableNum(SalesParmTable)); X++: AddressTrans_RU::createFromSalesParmTable(localSalesParmTable); PlInventPackageParm::updateFromSalesParmTable(localSalesParmTable); Последний раз редактировалось SRF; 07.07.2009 в 07:09. |
|
|
За это сообщение автора поблагодарили: EVGL (5). |
07.07.2009, 11:32 | #6 |
Banned
|
Коллега Пауль комментирует:
Цитата:
kewl, also ist die sql-fehlermeldung die kommt nicht by design
Цитата:
Похоже, сообщение об ошибке SQL [при создании накладной из отгрузки] все-таки не было предусмотрено проектом
|
|
09.02.2012, 19:35 | #7 |
Читатель
|
Beware of ...
Вот вроде бы все ничего, но только при вызове методов reSelect и reArrange порой пересоздаются записи SalesParmTable. А вот создание AddressTrans_RU для них никто не предусмотрел...
И еще - при создании записи AddressTrans_RU методом createFromIds почему-то никто не подумал, что с недавних пор некоторые таблицы связаны с таблицей Address посредством DirPartyTable. |
|
Теги |
recid, salesformletter, заказ на продажу, ошибка |
|
|