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.
- 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.
- Find the BPM you want to disable via a SQL statement. SELECT * FROM Ice.BpDirective
- Update the IsEnabled field on the BpDirective row you want to disable. Set it to 0.
- In the Epicor Administration Console, click on Recycle IIS Application Pool
- 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.