02.02.2017, 13:38 | #1 |
Злыдни
|
Покупка нескольких ОС (ошибка)
В ходе проверки приобретения нескольких ОС (МОС) на версии AX 2012 R3 столкнулся с ошибкой при проверке строк закупки. Закупается 5 штук, например, ноутбуков стоимостью 25000 каждый. Подтверждаю заказ на покупку и "Количество ОС для номенклатуры не соотвествует количеству указанных инвентарных номеров" (орфография - фиг с ней).
Кто-то добрый в таблице RAssetPurchTrans организовал следующую проверку (метод checkBeforePost()): X++: if (! _line.Category && localAcquisitionPrice <= rAssetParameters.LowCostAmountLimit) { if (RAssetPurchTrans::exist(_line)) { return checkFailed("@GLS116219"); } return true; } X++: public static boolean exist(Common _common) { return (select firstonly rassetPurchTrans where rassetPurchTrans.TableRecId == _common.RecId && rassetPurchTrans.TableTableId == _common.TableId).RecId != 0; } Проверять надо не наличие записей, а на совпадение количества в строке покупки с количеством записей в таблице RAssetPurchTrans, связанных со строкой. (интересно, кто-нибудь тестировал процесс покупки ОС в российском подразделении?)
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
02.02.2017, 15:54 | #2 |
Злыдни
|
Добавил метод countRec(), заменил проверку exist() на сравнение countRec с количеством по строке к немедленной поставке (поставке). Нормально отработала покупка пяти ноутбуков, карточки перешли в статус куплено. Представляю, каким геморроем оборачивалась закупка спецодежды в AX 2012 R3.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|