Calling BPM when using a Customized Form

I have a Customized version of Order Entry that I have added to the menu as a completely new menu item that our repair department uses to create new orders. When in this screen, every line has a quantity of 1 and every release gets marked Make Direct. I created 2 BPM’s to have these values set automatically.

One is a Post-Processing directive on SalesOrder.ChangePartNumMaster that sets a UD field to a value, a UD Checkbox to True, and Invokes the SalesOrder.ChangeSellingQtyMaster Method when the following conditions are met.

  • callContextClient.Customizationid = “RepOrderEntry” AND ttOrderDtl.RowMod = “A”

The other is an In-Transaction Data Directive that sets OrderRel.Make to True when callContextClient.Customizationid = “RepOrderEntry”.

When we upgraded to 10.2.500.7, users started reporting that the values were not auto-populating like they should. In some cases, logging out and back in fixed the issue. In most cases, I have to go to ProgramData and find the .xml file for the form and delete it. That fix would work for a day and then need to be repeated.

I called support and explained the situation. A Webex found that I had 2 versions of the Customization, 1 for all companies and 1 company specific. I cleaned that up so only the company specific version exists. I then removed every Personalization that existed for both forms and sent directions to all the affected users on clearing their Client Cache and removing the form from their favorites. After all that, the issue is still happening on occasion, daily for some users. The support call was transferred to the BPM department where it was reviewed and I was told ‘The suggestion is to use a different condition since BPMs always work or don’t work. The condition seems to be the factor triggering the BPM.’

I’m struggling to find another way to call the BPM because I can only have it firing when in this customized version of Order Entry. While the same users usually work in this screen, there are occasions where other users access this form so I need something that is maintenance free. Something like adding user criteria to the BPM or changing a users Security Group access isn’t ideal. I could set those permanently, but then I would need to prevent the BPM’s from firing when in the regular Order Entry screen.

Does anyone have any ideas on different ways to trigger these BPM’s from only this customized form? Would it be worth going to back to support and explaining the above to try and get a better answer? I personally feel that was a blow-off answer.

Any suggestions are appreciated. Thanks in advance.

You can create a condition widget on your BPM that actually checks the name of the customization that is being run… and this condition can allow/disallow your BPM from running (or do something different).

2 Likes

That would keep the BPM from firing when in a different Order Entry screen, but based on the behavior I described with it not firing when it should be, would that cure the problem?

I’m assuming (not sure how to prove it) that the issue is the BPM isn’t seeing the name of the Customization so callContextClient.Customizationid condition is always coming back false. If that is happening, the condition I’m currently using, or your suggestion, should present the same problem.

I’ve put in a screen shot of one of my conditions.

ONE PROBLEM… the “ChangePartNumMaster” is not always run by all processes that can create a sales order. For example, if you import quotes, it is not run. I have found that in some cases, you must have the same logic in multiple places in order to get it to run… Current customer I am working with adds sales order lines through Epicor Commerce Connect, EDI, Quote Conversion, and manual order entry (plus an automated interface). Each process may or may not use the ChangePartNumMaster BO, and we had to test each one separately, to determine that all of them ran. I know that in one case, we simply chose to not use this BO, and move all the logic to a Data BPM.

I understand exactly what you are saying. In this case its either manually typed, searched and returned, or read with a barcode. When it stops working, neither way of entry will work.

The data directive on OrderRel only has the Customizationid condition. Every time this happens, both the Method Directive and the Data Directive stop working.

I don’t want to fill up a users hard drive with logs, but would a client trace on the affected users account give me some insight?

Use a Information Message to display the text you are comparing. This will show you if the CustomizationID is blank or not.

1 Like

how about using Tim’s suggestion but via DataDirective on the affected tables. DD are for sure visited on any occasion there is a change in the record.

And as Jason suggested, I do this often to make sure i validate the decision flow of my BPM.

Pierre

Using Jason’s suggestion, I found that the Customizationid isn’t being picked up by the BPM.
image

After the user logged out and back in, it suddenly has the Customizationid.
image

So now that I know there are times where the Customizationid isn’t being picked up, I can’t use Tim’s suggestion (even though I like it) since it relies on the Customizationid being present. I’m starting to feel like I need to create a new Customization with a new name since this one has an issue.

If you are doing the exact same thing each time, I would offer that the user clear their client cache by closing Epicor completely (and no other sessions of Epicor running on the machine), and then delete the C:\ProgramData\Epicor*-808 folder(s).

That’s what I did for this user today, except I didn’t go to Options > Clear Client Cache. I logged them out, deleted everything under C:\ProgramData\Epicor and logged them back in and the BPM had the Customizationid.

Usually within a day or 2, the user needs to repeat those steps again.

Have you been editing the Customization in between those times? I find that a few environments need the Cache cleared after every change to the Customization

Other than Validating the Customization during the upgrade and then removing the all companies copy, I haven’t made any changes. I do know that the Clear Client Cache step was performed by the normal users of this form after the all companies copy was removed.

For the users this happens to are they able to personalize the screen and are they?

They can, and they are not.