Ever answer your own question while composing it?

Well, I feel like typing something, since I just spent a good half hour figuring it out.

The question was going to be, Where are inspection processing reason codes stored? (The one you picked; I’m not asking where you create new ones.) Apparently it’s PartTran. (In a BAQ, link PartTran.NonConfID with NonConf.TranID.)

So I thought instead I’d write a little blurb on the QA flow, because I’m rehashing how convoluted it is, since we hired a new person. Hopefully this helps someone.


The basic idea of QA flow is:

(something) :arrow_right: Inspection Entry :arrow_right: DMR :arrow_right: DMR action(s) :arrow_right: (some kind of credit, if applicable)

The (something) is a PO receipt, RMA or Nonconformance.

The (credit) is an AP debit memo if it your supplier is giving you credit (yes, a debit memo is for supplier credit), or it’s an AR credit memo if this is tied to an RMA that you issued to your customer.

Of course, if you accept a part anywhere in this flow, you break the chain and the part goes to stock or wherever. But you might still give the RMA customer credit, anyway.


Reason Codes

More than just information, they can be tied to GL controls, to determine what accounts to hit.

WARNING: On the subject of accounting: deleting a DMR rejection reverses the transaction quantity properly, but it will probably hit the wrong accounts because it looks a level higher in the hierarchy. If someone remembers the details of that, please comment.

Nonconformance reason codes are of type Scrap. Let that sink in.

Check the appropriate boxes.

Inspection Entry reason codes are of type DMR. Let that sink in.

Check only these boxes:

DMR reason codes are of type… DMR. Finally one that makes sense.

Check the appropriate boxes. (If it’s a failure DMR reason code, check off the 4 boxes on the bottom right.)


Part Transactions

Again, the flow is:
(something) :arrow_right: Inspection Entry :arrow_right: DMR :arrow_right: DMR action(s) :arrow_right: (some kind of credit, if applicable)

Walking through this:


  • PUR-INS for a PO receipt straight to inspection
    • Parts are NOT in inventory OH qty at this point
  • RMA-INS for an RMA
  • STK-INS, MTL-INS for a nonconformance
    • It is at this moment that the parts come out of inventory OH qty

Inspection Entry

  • INS-DMR if failed
  • INS-STK, INS-MTL, INS-SUB, (INS-ASM?) if accepted
  • Once you account for all quantity, the inspection is closed and irreversible)

DMR actions

  • DMR-REJ if rejected (this is reversible [can be deleted])
  • DMR-STK (etc.) if accepted (this is not reversible)


Return to vendor

  • If this is a return for credit, make a new “Reject Material” in the DMR
    • This is horribly named, since “material” usually means part of a job, but this goes for any reject
    • You may need to tweak the cost on the debit memo
    • AP Invoice; Actions > Get DMR Debit Memos
  • If this is to be reworked by the supplier at your expense, you will make a new “Accept – Job Material”
    • First, of course, you need to make a job. It needs a subcontract operation and you’ll do the PO against it. For us, we use a special product group to route the variance as rework costs
  • If this is to be returned so that the supplier can rework it at their expense without giving us a credit, you will still make a new “Accept – Job Material”
    • In other words, do not reject it, even though that makes sense
    • You could reject it and then just delete the rejection when it is returned and do an acceptance instead. But again beware of what accounts it hits when deleting the rejection! You’d be surprised.
    • I really hate the visibility you lose here either way, since it was the vendor’s fault but it always results in an “accept” disposition



  1. Open RMA Processing (It’s called RMA Processing in the menus, but Return Material Authorization when you open the screen)
    a. New RMA; Enter invoice number; customer auto-populates
    b. On Detail tab, enter/find the line; enter reason and quantity; save
    c. New Receipt; normal stuff; probably want to uncheck Request Move (I warned you)
  2. Open RMA Dispositions
    a. Click the binoculars icon; choose RMA
    b. Click New button; normal stuff
  3. Generating the credit
    a. Back to RMA Processing
    b. Picture below - it’s tricky; pay attention
    c. No matter what you do, the credit is generated
  4. Applying the credit
    a. AR Invoice Entry; Actions > Get > RMA and Demand Credits
    b. NOTE: If you do another RMA line against the same order (without posting between), and create a credit memo against it, it will add the memo as another line on the same memo as before



The data

The way this is all linked in the system is miserable, so it takes a lot of effort to extract data for analysis.

NOTE: I strongly recommend only one nonconformance per DMR if you want to analyze by nonconformance reason codes later. Yes, you can tie two nonconformances to one DMR if the parts are the same. But just don’t.


  • Table is NonConf
  • The Nonconformance number is called TranID and it is WAYYYY down the list of fields

PO inspection

  • Table is RcvDtl

Inspection Processing

  • A lot of the info is in the NonConf table, i.e.
    • PartNum
    • PassedQty and PsdCommentText
    • FailedQty and FldCommentText
    • DMRNum
  • But a lot is in PartTran
    • Link them as such: PartTran.NonConfID with NonConf.TranID (and on Company, of course)
    • InvAdjReason is the inspection reason code
    • SysDate or TranDate is the inspection date (you can’t backdate an inspection!)


  • DMRHead is what you expect
  • DMRActn is all actions, including rejections, debit memos and acceptances

Supplier credit

  • The actual debit memo is an AP Invoice
  • This is linked to the DMR action of the debit memo. Sure, that’s obvious, but this means you can’t link the DMR rejection itself directly to the accounting side, to verify that you actually got the credit for the parts. You’d just have to look at the total dollars on the DMR vs. the total of all linked invoices.


That or after I post it, something dawns on me to try, and that ends up being it.


Yes! More times that I care to acknowledge. It’s the act of having to explain the issue to someone else and sure as heck the answer if in front of you as you work on describing it.

1 Like

And since you seem to understand this process pretty well…

Any Idea how to do an RMA for a BTO shipment?

The typical flow is:

PO Rcpt (PUR-UKN) -> Cust Shipment (UKN-CUS) -> RMA Issued -> RMA Rcpt(CUS-INS) -> RMA Disp (INS-???)

I’m getting hung up as there doesn’t seem to be a way to do a RMA dispostion to put the BTO item back into “UKN”, For us to eventually do an RMA to send it back to the original supplier.

Sorry, we never do buy-to-order. I would have no idea.

@ckrusen I think this would required an INS-DMR and then a DMR-REJ which the reason code being set to sent the cost back to the GL tied to the UKN transaction. That is the best I can do or you.

@JasonMcD Great job documented this for everyone. My colleague @lmeeks has just been dealing with the internal material for this, not the customer side. This level of detail would have saved her some time. Maybe we need to have this as a topic at one of our Southeast EUG meetings. Our two companies could present the details and take the many questions we would probably receive. :wink:

Again great job!

As for answering a question, I agree with that too. All the time! Actually did it with a consultant on site this past week. LOL

@jeowings Thanks. There are at least three slideshows I combined there, plus random bits I learned along the way (the hard way, of course).

Ha, I’m not much of a presenter but maybe. I’m not much of an advocate of the Epicor quality module… But I was quality engineer here for three years before the Epicor thing came along.

There is so much more on this topic. I tried to hit the tricky stuff here. I had looked at inspection plans early on, but that’s just a ridiculous amount of micromanaging for what we do. And the setup is atrocious.

totally agree with you on this mate

I learned today from Carolina @ the EUG that if you have a part that goes to inspection from receiving a PO and you pass 100% of the parts, the passed comments disappear. Their only home is the nonconformance, and if none fail, there is no NC, so the comments are lost.

Just FYI, for anyone trying to research this.

Edit: This is only for older versions. It has been fixed.