Prevent Sales Order without Valid Part Number

We booked, shipped and invoiced a sales order with a valid part number. It wreaked some havoc. Is there a setting in Company Configuration that would require a valid part number in sales order entry?

I looked all over to no avail.

Thanks in advance,

Randy Weber

I don’t know of any setting out of the box that would do this.

You could easily address this through a BPM on the ChangePartNum or ChangeRevisionNUm method.


there is not. Epicor will allow you to add a part on the fly in the sales
order, make it direct or purchase it direct to the order, ship it and
invoice it

If you do not want that to happen you will have to write a simple BPM when
the part is not part of your part master to pop up a notice to the user and
not allow them to enter the order line until a valid part number is entered

Mark Wagner
Sr. Partner

Capstone Alliance Partners 888.597.2227 Ext. 71
<888.597.2227%20Ext.%20714>2 | 904.412.6847 (cell)

1 Like

i used a method directive, salesorder.masterupdate

here’s the code i wrote. you can remove the part revision portion. you can modify to check the part table.

Erp.Tables.Part Part;
Erp.Tables.PartRev PartRev;
Erp.Tables.Company Company;

// check if they are adding a line
foreach (var ttOrderDtl_iterator in (from ttOrderDtl_Row in ttOrderDtl
where string.Equals(ttOrderDtl_Row.RowMod, IceRow.ROWSTATE_ADDED, StringComparison.OrdinalIgnoreCase)
|| string.Equals(ttOrderDtl_Row.RowMod, IceRow.ROWSTATE_UPDATED, StringComparison.OrdinalIgnoreCase)
select ttOrderDtl_Row))

var ttOrderDtlRow = ttOrderDtl_iterator;

PartRev = (from PartRev_Row in Db.PartRev
        where string.Compare(ttOrderDtlRow.Company, PartRev_Row.Company, true) == 0 
					&& string.Compare(ttOrderDtlRow.PartNum, PartRev_Row.PartNum, true) == 0
					&& string.Compare(ttOrderDtlRow.RevisionNum,PartRev_Row.RevisionNum, true) == 0
        select PartRev_Row).FirstOrDefault();

	if (PartRev == null)
		CallContext.Current.ExceptionManager.AddBLException("Error: The part number and revision does not exist.");