public void reserveItem(ItemId _itemId,InventTransId _inventTransId, Purchline _purchline) { InventTrans inventTrans; InventTransOrigin inventTransOrigin; InventMovement inventMovement; InventUpd_Reservation inventUpd_Reservation ; InventDim inventdim; // Reserve an item select inventTrans where inventTrans.ItemId == _itemId && inventTrans.StatusReceipt == StatusReceipt::None && inventTrans.StatusIssue == StatusIssue::OnOrder exists join inventTransOrigin where inventTransOrigin.RecId == inventTrans.InventTransOrigin && inventTransOrigin.InventTransId == _inventTransId && inventTrans.MarkingRefInventTransOrigin == InventTransOrigin::findByInventTransId(_purchline.InventTransId).RecId; inventdim = inventTrans.inventDim(); inventdim.inventBatchId = strFmt("%1-%2",_purchline.PurchId,_purchline.InventTransId ); inventdim = inventdim::findDim(inventdim); if(inventTrans.RecId) { Inventmovement = inventTrans.inventmovement(true); inventUpd_Reservation = InventUpd_Reservation::newInventDim(inventmovement,inventdim ? inventdim : inventTrans.inventDim(),inventTrans.Qty, false); inventUpd_Reservation.updatenow(); } } public void removeReserveItem(ItemId _itemId,InventTransId _inventTransId) { InventTrans inventTrans; InventTransOrigin inventTransOrigin; InventMovement inventMovement; InventUpd_Reservation inventUpd_Reservation ; // Remove reservations and markings on a reserved transfer order while select inventTrans where inventTrans.ItemId == _itemId && inventTrans.StatusReceipt == StatusReceipt::None && (inventTrans.StatusIssue == StatusIssue::ReservPhysical || inventTrans.StatusIssue == StatusIssue::ReservOrdered) exists join inventTransOrigin where inventTransOrigin.RecId == inventTrans.InventTransOrigin && inventTransOrigin.InventTransId == _inventTransId { if (inventTrans.StatusIssue == StatusIssue::ReservPhysical || inventTrans.StatusIssue == StatusIssue::ReservOrdered) { Inventmovement = inventTrans.inventmovement(true); inventUpd_Reservation = InventUpd_Reservation::newInventDim(inventmovement,inventTrans.inventDim(), -1 * inventTrans.Qty, false); inventUpd_Reservation.updatenow(); } } }
This blog is contains coding reference related to Microsoft AX 2012 and D365 finance and operations and Power platform
Thursday, January 30, 2025
Reserve and unreserve Item using X++
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment