02.12.2014, 12:27 | #1 |
Участник
|
Это фича, или я что-то не так делаю?
AX2012 R2
Обновляю цену на строке закупки X++: purchLine.PurchPrice = MyPrice; purchLine.LineAmount = purchLine.calcLineAmount(); purchLine.update() При отладке наткнулась на сообщение: "Cannot create a record in Relationship between the purchase order line and the inventory transactions originator (InventTransOriginPurchLine). Inventory transactions originator: SomeInvTransNum123, SomeInvTransNum123. The record already exists" Которое потом "исчезает". Далее вышла на волшебный метод InventTransOriginPurchLine-> writeOriginOwnerRelationship() Где написано следующее : X++: catch (Exception::DuplicateKeyException) { if (xSession::lastDuplicateKeyViolatingTable() == inventTransOriginPurchLine) { update_recordset inventTransOriginPurchLine setting InventTransOrigin = _inventTransOriginId where inventTransOriginPurchLine.PurchLineInventTransId == _purchLineInventTransId && inventTransOriginPurchLine.PurchLineDataAreaId == _purchLineDataAreaId && inventTransOriginPurchLine.InventTransOrigin != _inventTransOriginId; } else { throw Exception::DuplicateKeyException; } infolog.clear(logCount); } Вот вопрос : обновление цены на purchLine неправильно реализовано, или все так и должно быть, и надо просто смириться? Последний раз редактировалось IKA; 02.12.2014 в 12:34. |
|