Hi,
I have written following code for BOM report against sales order qty, and its showing only two levels of bom and not drilling to lowest level.
public Void bomMain()
{
BOMVersion bomVersion;
BOM bom;
queryRun = new QueryRun(queryStr(SalesTableBOM));
ttsbegin;
while (queryRun.next())
{
salesTable = queryRun.get(tableNum(SalesTable));
salesLine = queryRun.get(tableNum(SalesLine));
inventTable = InventTable::find(salesLine.ItemId);
select * from bomVersion
where bomVersion.ItemId == salesLine.ItemId;
{
while select bom
where bom.BOMId == bomVersion.BOMId
{
this.bomChild(bom.ItemId);
this.insertTmp(bom, NoYes::No);
}
}
}
ttsCommit;
info("Done");
}
------------------------------------------------------------------------------------------------------------
public void bomChild(BOMId _bom)
{
BOMVersion bomVersion;
BOM bom;
void test()
{
select * from bomVersion
where bomVersion.ItemId == _bom;
{
while select bom
where bom.BOMId == bomVersion.BOMId
{
this.insertTmp(bom, NoYes::Yes);
}
}
}
select * from bomVersion
where bomVersion.ItemId == _bom;
{
while select bom
where bom.BOMId == bomVersion.BOMId
{
test();
this.insertTmp(bom, NoYes::Yes);
}
}
}
Thanks in Advance,
*This post is locked for comments
I have the same question (0)