Code to approve bom for product in Ax 2012.
void God_setBOMActive(BOMId bomid,str 20 approver1)
{
BOMVersion BOMVersion1;
BOMApprove bomApprove = new BOMApprove();
RecId approver = HcmWorker::findByPersonnelNumber(approver1).RecId;
boolean ret=true;
try
{
select forUpdate BOMVersion1 where BOMVersion1.BOMId==bomid;
BOMVersion1.selectForUpdate();
BOMVersion1.Approved = true;
BOMVersion1.Active = true;
BOMVersion1.Approver = approver;
ttsBegin;
BOMVersion1.write();
ttsCommit;
bomApprove.init();
bomApprove.parmApprover(approver);
bomApprove.parmBOMId(bomid);
bomApprove.run();
}
catch
{
info(strFmt("(%1) approval failed.", bomid));
}
}