At least one BOM line must be attached to this line

Hi Guys,

I´m tyring to post & register a BOM journal in AX 2012 R3, but when I run my code I get this error:

At least one BOM line must be attached to this line.

I think that I missing a link field or somethng like that,

Anyone can help me with this.

This is the code that I’m using:

journalTable.clear();
journalTable.initValue();
journalTable.initFromInventJournalName(InventJournalName::find(InventParameters::find().BomJournalNameId));
journalTable.JournalId = journalTableData.nextJournalId();
journalTable.insert();

journalTrans.clear();
journalTrans.initFromInventJournalTable(journalTable);
journalTrans.initFromInventTable(InventTable::find(“22-590-125”));
journalTrans.InventDimId = “NDIM0000007”;
journalTrans.Qty = 1;
journalTrans.PriceUnit = InventTableModule::find(journalTrans.ItemId, ModuleInventPurchSales::Invent).pcsPrice();
journalTrans.CostAmount = journalTrans.Qty * journalTrans.PriceUnit;
journalTrans.InventTransId = “LOTE002951085”;
journalTrans.BOMLine = NoYes::No;
journalTrans.insert();

inventTransId = journalTrans.InventTransId;

journalTrans.clear();
journalTrans.initFromInventJournalTable(journalTable);
journalTrans.initFromInventTable(InventTable::find(“22-590-126”));
journalTrans.InventDimId = “NDIM0000007”;
journalTrans.Qty = -1*1;
journalTrans.PriceUnit = InventTableModule::find(journalTrans.ItemId, ModuleInventPurchSales::Invent).pcsPrice();
journalTrans.CostAmount = journalTrans.Qty * journalTrans.PriceUnit;
journalTrans.InventTransId = NumberSeq::newGetNum(InventParameters::numRefInventTransId()).num();
journalTrans.TransDate = today();
journalTrans.BOMLine = NoYes::Yes;
journalTrans.InventTransIdFather = inventTransId;
journalTrans.insert();

if(InventJournalCheckPost::newPostJournal(journalTable).validate())

InventJournalCheckPost::newPostJournal(journalTable).run();

Thank you in Advance

The validation is actually done at \Classes\InventMov_Jour_BOM\journalCheckTrans

You should be able to debug and find the issue.

The inventTransId update is handled by insert(), you may not need an explicit update.