Cannot delete a Rcv with wrong UOM, and missing PO

Hi all, I found a very old RcvDtl record causing error “Unit of measure not found for Class:Count UOM:BOTTLE” in Time Phase Report, which “BOTTLE” doesn’t belong to “Count” UOMClass
This Rcv isn’t invoiced and doesn’t have related PartTran, the corresponding PO seems is deleted.
How can I delete or “correct” it?

It gives same error message when trying to open in Rcv Maintenance.
I’m trying updatable BAQ on test database but there isn’t a PO for it:
“Program:bo/Receipt/Receipt.p Method:validateReceiptType Field:PONum Message:Purchase Order not on file for this Supplier”

Yikes…
Aside from contacting Epicor Support…
First, ensure you try these ideas in your non-live environment.

  1. Recreate the PO and try deleting
  2. Create the false UOM to try to delete it.
  3. Change the qty to zero, save, then delete.
  4. Change the PO/Line/Rel, save, then delete.
  • Recreate the PO:
    • Anyway to “assign” a PONum? Seems it is auto-generated.
      Try modifying an existing PO’s PONum through updateable BAQ:
      “Method:poHeaderValidateNewPONum Message:Invalid Purchase Order Number. Must be less than the configuration starting number of 1”
  • Created the false UOM:
    • Can open in Rcv Entry, but cannot delete/modify the RcvHead/Detail due to lack of corresponding POheader/Detail
      (error window is blank, summary has "The Server application has returned an error. (7243) (7211) ", but can find in appserver log “No POHeader record is available. (91)” at bo/Receipt/Receipt.p)
      So cannot point to another PO, delete nor change qty
    • Updateable BAQ on RcvHeader/Dtl doesn’t work neither, without the PO

'm considering SQL into the database… seems it is an orphan record without referring or being referred, and we are not in maintenance

If there is not a corresponding PartTran record, you may be correct that it is an orphaned record. Obviously, use SQL at your own risk. I would look back here to see if anyone else knows of other tables that could hold related data.

Confirm that you have RcvDetail records with no corresponding RcvHeader records. If so, contact support.

It has RcvHeader and a PONum/Line/Rel, but the PO is probably deleted so any action against the RcvHeader/Dtl gives error that “PO not exist”.

I’m not sure about PO’s, but you can specify a prior SO number in order entry, by going into Company Config and set the initial number to 0. After creating the "out of sequnce PO (or order in my case), set the next number setting back to what it was.

Oh the trick is enter a LARGE Starting PO, Epicor allows only custom PONum smaller than the “Starting PO” number.
Seems working in test database which I made some irreversible settings there, I’ll copy the Live db and test it tomorrow, check if everything is alright and report back. :grinning:

Yes. My bad. The entering the starting number as zero is a trick we have to do to skip ahead. For whatever reason, the company wants Sales order numbers to start with a code for the year plus 4 sequential digits. All SO’s in 2017 are 217xxxx, in 2018 they are 218xxxx.

But the starting order number field in Company Config only allows for a 6 digit number. So to set the order number to advance to 2180001, I have to set it to 0, then use DMT to create order 2180000. The next one created by the system will be will be 2180001.

Seems any in-system action wouldn’t work with a “false UOM”, following actions works perfectly if I “correct” the UOM by BPM ABL code or add the “false UOM” to the UOMClass

  • can’t open in Rcv Entry as UOM conversion error
  • Stuck in updatable BAQ
    • only RcvDtl in the BAQ (BO: Receipt.UpdateExt), it’d say “no header records found”
    • include also RcvHead, “Program:bo/Receipt/Receipt.p Method:RcvHeadCreateRow Message:This is a duplicate entry of an existing record.”
    • Using “Receipt.Update” shows no error on screen, but didn’t actually update and leaves error log on appserver “Mismatched number of parameters passed to routine Update bo/Receipt/Receipt.p.”

Is BPM ABL a good way to go or the easy way, just add the false UOM? The false UOM belongs to other UOMClass and has been used, but I can still delete it and cause error on further testing… strange. So not going to switch the class