BPM to prevent over-claiming completed op quantities in MES

Hello everyone!

I’ve been tasked with finding a solution to an obstacle we’re having concerning employees overclaiming completed op quantities when ending production activity and reporting their completed amount in MES. We’ve discussed wanting to specifically catch these inaccurate quantities before they are updated on the database and job. Essentially, the best way we could prohibit any employee that is working on any op from overclaiming their completed quantity on that operation. So LaborQty (the quantity the employee enters in MES) never exceeds ProdQty.

I did some trace logging in MES on a test job/op and found the value I claimed on that op when I was in “End Production Activity”. I also found the “update” method being called from the LaborImpl Business Object as a potential place to implement a Pre-Processing Method Directive. But then I also thought another route involving a hold and a directive to filter and stop the claimed/completed quantities that are greater than the expected/allocated quantities for that op and corresponding job.

Side Note: We also thought it might be better to base this preventative measure off of employee labor hours, cycle time, and the quantity they claimed. I haven’t explored this option as much, but was wondering if it might be a better way in general.

I have spent some time designing the possible configurations or approaches, but I thought it would be best to reach out here and understand the perspectives and insights from more of the experienced users than myself who know some of the best ways to accomplish this.

Thank you in advance for any insight you can provide!

I did something similar with Qtys for Ending Activity

  • where I compared JobHead.ProdQty with ( proposed value + sum (LaborDtl.LaborQty))
  • and threw up messageboxes with feedback before users committed.
    — however, I used a form customization due to some limitation in V8. (Can’t remember now what it was). I’m guessing E10 BPM would work though.

Also some users have liked when I’ve added reference fields for ProdQty and Prior Completed Qtys right on the End Activity form. Won’t prevent error entry but…

And do you use the Report Qty form? I kind of remember users can make mistakes there and then get locked into a bad complete qty on the End Activity form? But… would need to verify this now.

I just enabled our BPM that controls quantities reported, as well as received (or shipped). It has stopped all of our erroneous reporting.

We have not done any reference fields for the quantities previously reported, but that may be a good idea to do.

The one thing you have to consider is what do you do with scrap/non conformance? For us, anything that is lost due to setup mistakes, tool breaking, etc… is not going to be redone on the order. Our BPM will also “complete” operations if they report the full quantity that is left in WIP.

Did you set this BPM up as a data directive or a method directive? Also, who table did you tie it too? I am trying to prevent erroneous quantity complete issues in our database to prevent errors in non-conformance costs pulled from jobs.

I put it in three places (Method Directive):

Erp.ReceiptsFromMfg.PreUpdate:Pre-Processing
Erp.LaborUpdate:Pre-Processing
Erp.CustShip.UpdateMaster:Pre-Processing

The first one is to make sure they don’t over receive the job. *
The second keeps them from over reporting at the operation level.
The last one is for our make to order jobs.

*WARNING: do not do this with serial numbers. Epicor and I are in a “discussion” where they are telling me to use a data directive. I created a BPM where I did nothing with the incoming data (didn’t even read it). I created a variable and wrote a value to that variable. When I did, it loses the first serial number in the dataset. Since serial numbers are kind of a control in and of themselves soit is ok for us to skip this check due to the bug…

Hello Mike. I’m looking at implementing the same thing for our company. Can you please share your solution on this? If you have detailed step by step instructions that would be wonderful. Thank you for your time.

Good morning Andrew,

Here’s what I found on another post that solved this problem.
It ended up working really well for us.

qty greater than completed BPM.docx (453.2 KB)

Thanks for the quick reply. I’ll try this and let you know the results. Thanks again.

Sure, no problem. Hope it works out well for you.

Hi Mike,
I am fairly new to BPM’s Can you expand what exacting the Custom Code is under the “Actions”
2023-11-29_11h48_56

Hi Karen,
If I understand your question correctly, the action 0 widget raises an exception that prevents the user from proceeding. It’s not custom code, it’s a text field where you specify what text is in the error box that the user will see if the conditions are met. If you download the .docx file above in this conversation, it goes through this step.

@KBMihaila are you asking what the custom code is on that widget? You just click ion the blue link thing and it will open up a window where you can see/edit it.

1 Like

Hi Mike,
I understand now. But I am getting the following error message when I “Check the Syntax”

I’m just going off of screen shots, but I’m assuming that you need to create a variable in your BPM to set. So on the variables tab, create a new boolean variable call any_recs. Then I’m assuming that variable is used in the condition after the custom code block.

image

1 Like

Oh I see!
In the main BPM Workflow Designer, add a variable, name it “any_recs”, and make it a Boolean type -

Mike,
Excellent! Thanks so much, very appreciated
Karen

1 Like

Sure, happy to help!