Business requirement:
update planned order upon modification of a salesline without master scheduling.
Sometimes you want to see changes made on a SalesLine immediately on the reference Planned Order, without Master Scheduling.
This post describes how you can make a little code adaptation to achieve this. The changed planned order belongs to the dynamic master plan, which seems most logic in these cases.
Solution:
X++ code to be added Add following method to the class SalesLineType and call it in the update method of the class SalesLineType.
static void Jimmy_synchPO(SalesLine _salesLine)
{
ReqPO reqPO;
;
//parameters : ReqPlanId _reqPlanId,InventTransRefId _refId,boolean _forupdate = false)
reqPO = ReqPO::find(ReqPlanSched::defaultDynamicId(),
_salesLine.reqTrans().reqTransSettled(_salesLine.reqTrans().selectCov()).RefId,
true);
if (reqPO)
{
// whatever field in reqPO to be updated based on some information on the referenced SalesLine
reqPO.Qty = _salesLine.SalesQty;
if (reqPO.validateWrite())
reqPO.update();
}
}
{
ReqPO reqPO;
;
//parameters : ReqPlanId _reqPlanId,InventTransRefId _refId,boolean _forupdate = false)
reqPO = ReqPO::find(ReqPlanSched::defaultDynamicId(),
_salesLine.reqTrans().reqTransSettled(_salesLine.reqTrans().selectCov()).RefId,
true);
if (reqPO)
{
// whatever field in reqPO to be updated based on some information on the referenced SalesLine
reqPO.Qty = _salesLine.SalesQty;
if (reqPO.validateWrite())
reqPO.update();
}
}