Forum Discussion
Hello guys, I just want to say thanks; the AML scripts suggested were fine, but I had an issue with the source_id of the parent parts. Right now the work-around I am using is to first run a query in SQL to get the part IDs from the item numbers, copy those to a txt file, and use the txt file as the input for the batch loader. So, just a small extra-step. Thank you everyone, and Jeff from Customer Support
If it is one time activity fine but if it is a regular activity you can create your own action and use it in AML
Step 1: Create a C# method in ARAS named PartBOMDelete
Step 2: Copy the below method
Innovator inn = this.getInnovator();
List < string > PartIDs = new List < string > ();
var itemNumber = this.getProperty("parent_item");
string getWhereClause = "[Part].item_number IN ('" + itemNumber.Replace(",", "','")+ "')";
Item partItem = inn.newItem("Part", "get");
partItem.setAttribute("select", "id");
partItem.setAttribute("where", getWhereClause);
partItem = partItem.apply();
if (!partItem.isError())
{
int count = partItem.getItemCount();
for (int i = 0; i < count; i++)
{
PartIDs.Add(partItem.getItemByIndex(i).getID());
}
}
string partIdsInfo = string.Join("','", PartIDs);
string deleteWhereClause = "[Part_BOM].source_id IN ('" + partIdsInfo + "')";
if (!string.IsNullOrEmpty(partIdsInfo))
{
Item removeBom = inn.newItem("Part BOM", "delete");
removeBom.setAttribute("where", deleteWhereClause);
removeBom = removeBom.apply();
if (removeBom.isError())
{
return inn.newError(removeBom.getErrorString());
}
}
return inn.newResult("Part BOM deleted Successfully");
Step 3: Save and Unlock the Method
Step 4: Run the below AML query whenever required in Innovator Admin
<AML>
<Item action='PartBOMDelete' type='Method'>
<parent_item>Itemnumber1,itemnumber2,itemnumber3</parent_item>
</Item>
</AML>
Here we have created a custom action that will delete the Part BOM based on item number. Input here is Itemnumber1,itemnumber2,itemnumber3 and you can give any number of comma separated part number and note that it will delete only in latest generation.
Thank You
Gobikrishnan R
- Former_Member7 years agoIdeator I
Thank you very much, I will definitely give this a try. This may be an activity we use regularly so defining a method is a brilliant idea.
Kind regards,
Pmateo