I’ve been tasked to create a solution for a situation that we have uncovered in the BookDtl Table.
We have an Orders Received report that references the BookOrder/BookDtl/BookRel Table because it manages changes over time of each line. Everything functions really well with it unless a line is deleted from the sales order. PartNum and LineDesc don’t exist in the BookDtl table, they get referenced from the OrderDtl Table.
When a line is deleted, we lose reference to both of those because they no longer exist in OrderDtl.
I’ve talked to Epicor about this, “That is core design”, and I’ve created an enhancement request to add Part/description information into the BookDtl Table.
However, until the day that is actually done I need to build a work around to do this.
I made my BookDtl.UD Fields, regenerated the database, and then realized I wasn’t sure how I was going to copy data from the Order Detail information into the BookDtl table. I’ve set fields via BPM’s but not like this.
That’s what I could use the help with. A BPM that copies OrderDtl.PartNum -->BookDtl.PartNum_c when the line is created or updated, but not when the line is deleted from the Order.
I’ve taken a couple stabs at it here, but I’m not having much luck. Thank you.
We’ve talked internally about trying to prevent deletions. That brought up the whole discussion about what a Delete vs a Void actually represented on the order however.
The delete more representing an input error by our user. Of which we would no longer want that to show on the order / Customer facing reports etc.
That’s where I’m struggling the ‘how’ to get the data to copy into the BookDtl table.
Along the same line as what @Randy said, it may be easier to build a business process around how your company uses Epicor. If a deleted line is really a mistake, why even bother capturing it? You could put a BPM in place that only allows a person or two to delete the line while all other order changes just use the close line functionality which then flags the record as voided.
If we input a line for Part A, yesterday for $100, we captured that in yesterday’s total Orders Received Amount.
Today if that line for Part A is deleted, The bookdtl shows -$100, and a status of ‘del’. But we lose visibility into what that partNum was, because it is only referenced on the OrderDtl table.
The part numbers are tagged to additional pieces of information, right? Attributes / Classes / Groups. All of which I can’t reconcile once I lose that reference part number.
I see what you are saying. The BookDtl does have the Product Group. I think it really comes down to what the requirements are. Does Finance really care about something being deleted that was a mistake? They may, but that is a question for them. I personally would not care about something being deleted, I would be more concerned about the data being correct.
Have you traced the transactions to see what the sequence of events are? I have never done anything like this. My first step would be to find out what the system is doing.