Clearing out Material Request Queue

Hi all,
We are just now trying to start utilizing the Material Request queue, but looks like we have a lot (about 12k) of old requests that are now obsolete. Is there a good way to clear everything out that doesn’t involve deleting them manually one-by-one?


If it helps, you can select a bunch of rows and delete them all at once. This doesn’t work in all areas of Epicor, but it does in this instance ; )

1 Like

That doesnt work for me :frowning:

Get a computer that no one is using, highlight everything in the queue, click delete and put a weight on the Enter key and come back in a few hours.

1 Like

@lgraham mass delete suggestion worked in 9.05 and then in 10.0 it went away, then in 10.2.400 it was restored. If you are on a version prior to 10.2.400 Epicor has a Data Fix you can get that will let you mass delete by Plant… not sure about providing a date range.
Here is the EpicCare KB Article:


Could just delete all of the queue records from the database table. Not ideal, but shouldn’t hurt anything if you haven’t been using it.

1 Like

Oh wow! Good to know! We’re on 10.2.400

1 Like

Ok yeah we are on 10.2.300 still. Thanks for the replies, i think I will just clear out the MtlQueue table for now.

I went a different route, using my Free Mouse Clicker on my way out the door to lunch :wink:


Thanks for help here fellas. I handled deleting the entries with a BPM that triggers off of PO Receipt UpdateMaster. It looks for any created Material Queues, and deletes them. Note that MaterialQueue.DeleteByID doesn’t seem to work. I used the RowMod = D trick.


Any chance you can share that BPM. I’m looking to do the same thing.

Man this is one of the first BPMs I made, its pretty sketchy. Here is the custom code.

BPM:  Receipt.UpdateMaster - Delete auto generated Material Request Queue 
Date:         23 May 22
Author:       Terry Raymond
Purpose:      Material transfer requests are automatically generated upon PO Reciept.  These are inconsistent, sometimes wrong, we've not used them.  But if these entries exist, it prevents a sales order from being shipped/closed.  BPM deletes any material transfer requests upon receiving a line to a packing slip.
Requirements: None


//Temporary debug window
gOutputMessage = "Items in material queue:\n";
gOutputMessage += "\n\n";

//See if any material reuquest queue entries
var Query = 
  from MtlQueue_Row in Db.MtlQueue
  where MtlQueue_Row.Company == callContextClient.CurrentCompany
  select MtlQueue_Row.MtlQueueSeq;

//Select them one at a time for widgets
foreach (int MtlQueueSeq in Query) {
  if (MtlQueueSeq != null) { //should never be null, but check just in case 
    gOutputMessage += "Found item:"+ MtlQueueSeq  +"\n";
    gMtlQueueSeq = MtlQueueSeq;
    return; //stop if one is found.  Rest of BPM will execute with ID set.

And the condition:

Thanks, I’ll see if I can figure it out

I just ran across this - These Material Request Queue entries are caused by the Auto Move checkbox not being selected. So just check that box instead of making goofy BPMs!
This is for when the shop knows to take items from one dept’s output to another’s input, without being told to do it by Epicor, nor having Epicor track that movement.


Gotta be kidding me - so “Auto Move” kind of means “Don’t do anything, someone else will move it”?

Or does it actually create the move transactions?

@SteveFossey Just do nothing. I have a few bpms that force this in case the user in an end activity or non conformance unsets it.

1 Like

It assumes the person who ended activity is going to take the product to the next operation. We have yet to use the material queue for moving WIP. I could see it for a forklift operator or something in a huge facility but for a company with 100K SF and adjacent work centers, not a value added transaction.