Good Morning,
In my company we're having some trouble, the thing is that we modify a BOM version and when we want to Estimate a order we found that the Estimation Process takes to long. Debugging the process we find the next piece of code (found in the BOMHierarchyCheck class):
boolean scanUpBOM(
BOMVersion version,
ConfigId config,
TransDate fromDate,
TransDate toDate,
boolean forceSubItemId // If true there must be a sub itemId
)
{
ConfigTable configTable;
boolean ret = true;
if (! this.insert(version.ItemId,''))
return false;
if (! super(version,'',fromDate,toDate,forceSubItemId))
return false;
this.delete(version.ItemId,'');
//
while select configTable
index hint ItemIdx
where configTable.ItemId == version.ItemId
{
if (! this.insert(configTable.ItemId,configTable.ConfigId))
return false;
if (! super(version,configTable.ConfigId,fromDate,toDate,forceSubItemId))
return false;
this.delete(configTable.ItemId,configTable.ConfigId);
}
if (checkValidate)
ret = version.validateWrite() && ret;
return ret;
}
And we find that the main cause of the issue is due to while in the configtable query. Since it checks every BOM config. Why the program does that? This process starts because of BOM in the BOMTable has a check on the CheckBom field. What would happen if I uncheck it? And what would happen if the system doesn't do the process related to the config table.
Sorry for my english
And thank you before hand.
*This post is locked for comments