BPM for Inventory Transfer needed

I’m looking for help to create a BPM to block users from doing an inventory transfer on a lot tracked part if they forget to pick the lot number on the From warehouse. This is a glitch that Epicor has not fixed since 10.1 and every time it happens I have to get them to make a fix to correct the part that now has a blank negative lot transaction. It gets annoying because it takes at least a day for them to figure out what I need and then it still never works out right in the end.

Any help on how to write that would be great. I can’t make it just a required field since that prevents inventory transfers of SN tracked parts since that LOT field is left blank and inactive.

Not sure i have the right method, but something along these lines?

I had something like this very similar setup to prevent some other issues, they worked great in 9, but going to 10 they stopped working. I’ll have to check them and see if it’s the same logic as you described to see if it may present the same problem of being ineffective.

I get the following if a part is Lot Controlled and I don’t enter one:

image

1 Like

There is an Update and an UpdateExt method. Be sure to run a trace to see which one you would need.

Here is an example of one I had for making Part Class mandatory but I had to do that via extended properties. This BPM didn’t work after going to 10.1.

That’s what I would expect to see, but amazingly it does not come up when you forget a from lot number on my system. I can reproduce it at any time too.

Do you have QOH that has no Lot Assigned? Like if the following

  1. The part was originally not Lot Controlled, and there was 10 on hand.
  2. The part is changed to Lot Controlled, but those existing 10 get assigned lot ""
  3. Since "" is a “valid” lot for some of the parts, it assumes those are the ones being transferred.

Just thinking out loud…

EDIT

Never mind. Cannot turn on Lot Control with a non-zero QOH.

No, it was done on a part that has always been lot controlled, has no QOH without a lot number, and when the process happens we end up with a negative blank lot number on the from warehouse. Of course you can’t fix that either because every other function prompts you with the “lot required” error. Every part in our DB is either LOT or SN controlled and I can take any part and mess it up this way. I’m up to case number 7 with support on getting fixes to remove the negatives from the mistake.

I have something similar but I run it on Erp.InvTransfer.PreCommitTransfer

1 Like

That’s where I assumed I would have to write it against. I just created this. Similar or the same as yours?

Have you run a trace to see what BO’s and Methods are being called, then verifying that no BPM’s circumventing the intended checks of E10?

Here’s the BOs and methods called (in order) when I did a test

Erp.Proxy.BO.InvTransfer.ChangeLot
Erp.Proxy.BO.InvTransfer.MasterInventoryBinTests
Erp.Proxy.BO.InvTransfer.PreCommitTransfer
Erp.Proxy.BO.LotSelectUpdate.ChkForNeedsLotAttrs
Erp.Proxy.BO.InvTransfer.CommitTransfer
Erp.Proxy.BO.Part.GetList
Erp.Proxy.BO.InvTransfer.GetTransferRecord
Ice.Proxy.BO.XDocTypeCtrl.GetList

Should that be “Added”, “Changed”, or “Updated”? I can never keep them exactly straight.

I check the part to see if Part.Tracklots is true but otherwise the same.

That is a good question and why I posted this, I hoped someone would know the proper context. Also in response to your other questions, we have no other BPM’s on that method directive at all. We have maybe 6 in total on other directives, and I think 4 are circumvented by required field check box in extended properties now. I need to verify that and remove them if they are.

The trace shows

Does that mean that “Update Row” should be used?

Seeing as how we don’t have much custom programming I’m unfamiliar with how to run a trace, so I’m glad you did to see what is used. :slight_smile: I will try it against the PreCommitTransfer as Ron noted, as well as check it against the Part.Tracklots value. It sounds like it works for him, so hopefully it does for me to.

To trace …

  1. Click the Tracing Otions icon on the toolbar (no idea where it is on the Modern Shell)
    image
  2. Enable Tracing
  3. Enable Track Chanegs Only
  4. Apply
  5. Clear log (this is just to flush out any prior log info)
    image

Now go use E10 as normal, then return to that Tracing options

  1. Click View

EDIT

DON’T FORGET TO UNCHECK the ‘Enable Trace Logging’ and click Apply or OK, when you’re done !!!

1 Like

Thanks Calvin.
Ron, when I setup the BPM on PreCommitTransfer I do not have the option to check against the field Part.TrackLots, the only option available for a field is the ttInvTrans.TrackLots field. Can you link the BPM to check other tables not present in the current method?

Not a big deal on the field check… it’s a success for this test… Now to try a SN controlled part to make sure it wont prevent that from going through.