How to Manually Disable a "Stuck" BPM

Writing this for anyone in the future who needs to turn off a Data Directive/Method Directive for an on-prem installation manually.

This is not official advice. Use at your own risk.

  1. Try disabling BPMs through the Epicor’s UI first. Go to Data Directive / Method Directive screen and disable it there. You do not need to use these steps if the UI responds to you.
  2. Find the BPM you want to disable via a SQL statement. SELECT * FROM Ice.BpDirective
  3. Update the IsEnabled field on the BpDirective row you want to disable. Set it to 0.
  4. In the Epicor Administration Console, click on Recycle IIS Application Pool
  5. Done. The BPM is now disabled and unloaded from server memory.

This can be very handy if your BpDirective table itself has a BPM. In that situation, the bpm on that table may prevent any updates to BPMs at all, effectively locking you out of all BPM changes.

Comments

There also exists a conversion in Conversion Workbench “BPMUpd_E1xtoE11_001” that recompiles BPMs. This may also be needed depending on the scope of your… problems.

Make sure you do step #4. It appears Epicor compiles BPMs into server memory. This may also explain why recycling the app pool takes so long, because it’s compiling every enabled BPM you’ve got. I haven’t found any compiled binaries (dll’s, exe’s) that change when I update a BPM, so I can only guess this is the full truth.

3 Likes