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?
@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:
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.
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
Help:
https://www.epiusers.help/t/clearing-out-material-request-queue/65482
https://www.epiusers.help/t/when-is-rowmod-required/69779
https://www.epiusers.help/t/force-rowmod-on-quote-order-lines/67356
***********************************************/
//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.
}
}
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.
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.