I have a relatively complex Method Data Directive process.
This directive has two pieces, one of which runs in Pre-Processing and then if necessary, triggers a Post-Processing.
Why this is needed to be in two pieces is because this directive is responsible for releasing the Credit-Hold and that part has to be done in the Post-Processing.
Now here is the problem.
The Credit-Override should not happen all the time, an evaluation based on Pre-Processing values determines that, and when the Post-Processing’s evaluation has finished, I need to set a flag from True to False as well.
The problem is that it seems in Post-Processing Epicor does not have access to tt tables, So I cannot just go ahead and set a column on those, so I use the Db.table function. When use that combined with Db.Validate() BPM throws an error and when I do not use Db.Validate() it just does not update the column in the database.
So I guess my question in one sentence is:
How can I update a database field that is a Customer field (ends in _c) in Post-Processing?
I am using Update directive on OrderHed table.
This is a screenshot of the Post-Processing.
The BPM malfunctions and gets stick at the CustomCode (encircled in purple) and does not move to Email section:
If MasterUpdate is available in a module I almost always use that because Master (usually) only runs once, whereas Update can run multiple times in one save. Might want to think about that since your BPM is going to fire off emails.
Personally, I don’t put any email alerts in BPM’s either. I shove that into a Function that’s scheduled to run periodically during business hours so users don’t get 3 emails in 2 minutes when someone is futzing with a record.
This was a stupid issue.
I had a ton of directives running on the same method and this was causing conflict.
Sorry for the late response.
I missed the notifications