First receipt record in BPM is consumed?

,

I’ve got a quizzer.

I wrote a BPM that will prevent the receipt of inventory based on certain critera. Ever since I implemented it (Method Directive) the first serial number in the receipt is not being created.

I am not looking at serial numbers, and the entire receipt is stopped if any issues arise. I can’t figure out why 4/5 or 2/3 serial numbers are getting recorded when the full receipt is allowed?

I know I need to probably post more specifics, but I was hoping this type of thing has been seen before and I could look at some items before I pasted a bunch of screenshots and code examples.

Not here, a simple test would be does it record it with your Method Directive turned off.

I’m doing a query that will look at our history. Some of the results looks as though this may be an non-bpm issue.

EDIT: Nope. I fixed my query and it’s only been since I enabled the BPM. Very strange. I’ll be running some tests in production tomorrow.

Ok, I disabled my BPM. The receipt happened as expected - no SN issues.

Here is a snapshot of my BPM (Erp.ReceiptsFromMfg.ReceiveMfgPartToInventory-Pre-Processing):

Each block I assign a number to a variable. Some are from the dsPartTranRow, and some are using linq. I only throw an exception if the qty received is > ProdQty.

Somehow this logic is messing up the recording of the SNTran/PartTranSNTran tables. I received both jobs and got no errors on either one. They both completed/closed normally.

Another wrinkle (support sent me to this site for help :rofl:)

I moved the Pre-Processing BPM to PreUpdate, since this is the first step in the tracing.

When I do everything correctly (meaning the BPM fires, but doesn’t stop) I get the following weirdness:

I enter the 4 serial numbers:

I save the receipt:
image

Here is what the serial number selection looks like now:

I’m just unsure if I should call this an Epicor bug? They seem to be telling me it’s outside of support since it’s a BPM. I’m only reading from the BO datasets, doing a linq query, and then comparing the totals. If it’s off it throws a flag. I’m not changing any data, and yet a serial number record disappears out of the dataset.

I’m going to play around with the BPM and see if I can pinpoint what is causing the issue. Maybe that will shed some more light on what my options are.