Epicor BPM Data Directives and the Workflow Designer: When to Use Each, With an Example
epicor bpm data form
Also searched as
- epicor bpm data form designer
- epicor bpm workflow designer
- epicor bpm form
Short answer
Searches for an Epicor BPM data form usually mean the Data Directive, which fires when a table row is added, updated or deleted, designed on the BPM Workflow Designer canvas. A Method Directive fires around a business object method such as Update or GetNew. Use a Data Directive for rules about the data itself and a Method Directive for rules about the action.
Applies to: Epicor Kinetic and Epicor ERP 10 Business Process Management; directive types and designer layout can differ slightly by version
How to build a data directive in the Workflow Designer
- 1Open BPM Directive Maintenance from the menu and choose New Directive, then select Data Directive.
- 2Pick the table the directive applies to, for example Part, and choose the trigger such as a row being added or updated.
- 3Open the Workflow Designer for the directive; the start shape represents the trigger.
- 4Add condition shapes, for example a check that a field is empty, and connect the true and false paths.
- 5On the path that needs action, add an action such as Raise Exception, Set Field, Send Email or a Custom Code block.
- 6Save, set the directive to Enabled and Group or company as needed, and run a test update that should be blocked.
- 7Review the BPM Audit log or exception message, and then promote the directive to production using export and import.
Data directive versus method directive
A Data Directive is tied to a table. It reacts to row changes, regardless of which program made them, so a rule such as a product code is required on every part holds for Part Maintenance, DMT, REST calls and integrations. This is its main advantage for data integrity.
A Method Directive is tied to a method of a business object, such as Update on Part or SubmitForApproval. It runs before or after the method, or in place of base processing, and sees the whole dataset passed to the method. Use it for rules that depend on what the user did rather than what the data became, and for adding behavior after a specific action.
The Workflow Designer canvas
The Workflow Designer is the visual editor for the logic of a directive. You place shapes for conditions and actions, connect them and set properties on each. For complex logic, a Custom Code block lets you write C# against the dataset, and Epicor Functions allow you to call shared logic.
Keep the canvas simple. One directive with a short chain of conditions is easier to support than a large tree. Name shapes meaningfully, and put long logic in a function so it can be tested and reused.
Worked example: block a part without a product code
Create a Data Directive on the Part table triggered when a row is added or updated. Add a condition that tests whether ProdCode is blank. On the true path add a Raise Exception action with a clear message, such as Product code is required. The save is rejected for every entry route, including imports.
Test with Part Maintenance and with a DMT load of one row. If you only want the rule for new parts, restrict the condition to added rows. If the rule must not block system processes, add a condition on the user or the calling program.
Try it here, free
Epicor BPM Directive Design Template
A fill-in design document for BPM method and data directives covering trigger, conditions, actions, testing and rollback.
Common pitfalls
- !Building a method directive for a data rule, so imports and APIs bypass it.
- !Using a data directive to do heavy work on every update of a busy table.
- !Raising generic exception messages that do not tell the user what to fix.
- !Leaving directives enabled in the wrong company or group.
- !Editing production directives directly instead of promoting from test.
How an ERP-grounded AI assistant handles this
An assistant grounded in your BPM definitions can list which directives fire on a table, in what order, and which one raised a given exception message, which is the usual starting point when users report a blocked save. It reads definitions and logs and leaves changes to your developers.
Frequently asked questions
What is an Epicor BPM data form?
There is no separate object by that name in common use. People usually mean the Data Directive, a BPM rule triggered by changes to a table, built in the BPM Workflow Designer.
When should I use a data directive instead of a method directive?
Use a data directive when the rule is about the data and must hold for every entry route. Use a method directive when the rule depends on a specific action or method call.
Can a data directive stop a DMT import?
Yes, because the directive fires on the table change, whichever program causes it. Raised exceptions reject the row and appear in the import results.
Can I write code in the Workflow Designer?
Yes. A Custom Code block accepts C# and can access the dataset for the directive. For reusable logic, call an Epicor Function.
Related
How to Create a BPM Method Directive in Epicor Kinetic
In Epicor Kinetic, open Business Process Management > Method Directive Maintenance (the BPM Workbench), pick the business object and method, choose Pre-Processing, Base Processing or Post-Processing, then add a condition and actions such as Show Message or Set Field. Enable it and test in a pilot company before production.
How-toEpicor BPM Custom Code Examples: Set, Query, Validate, Call and Refresh
A BPM Custom Code block is a C# snippet that runs inside a Method or Data directive and can read the incoming temp tables (ttOrderHed, ttOrderDtl and so on), query the database through Db, and call business objects. Below are tested-pattern examples for setting a field, looking up a record, validating and raising an error, and calling a service, plus how to make the client see data you changed.
Error fixFixing Epicor BusinessObjectException: BPM Directive Errors
A BusinessObjectException that says "A Business Process Management (BPM) directive has raised the following error" means a directive on that business object stopped the transaction, either deliberately via a Raise Exception widget or accidentally via an unhandled .NET error in Custom Code. Expand the InnerException on the error dialog to see the real message and the directive name, then open BPM Designer for that object and method to find the widget that fired.
How-toFixing a Slow Epicor BAQ (Business Activity Query)
A slow BAQ in Epicor is usually caused by unindexed join columns, a subquery or calculated field forcing a table scan, or the BAQ pulling far more rows than the dashboard actually displays before filtering client-side. Fix it by reading the SQL Server execution plan Epicor generates, moving filters into the BAQ criteria instead of the dashboard filter panel, and replacing subqueries with joins where possible.
How-toEpicor MRP Runs but Generates No Suggestions
When Epicor's MRP process completes without a job or purchase suggestion for a part you expect one for, the cause is almost always the part's own configuration (Part Class Type, Make Direct, Non-MRP flag, planning Time Fence) or the demand not being linked in a way MRP recognizes, not a defect in the MRP engine. Work through the part's Planning tab, its safety stock and lead time setup, and the demand source (sales order line status, job material requirement) before assuming the run itself failed.
Error fixFixing Epicor REST v2 API 401 Unauthorized Errors
A 401 Unauthorized calling Epicor's REST v2 (api/v2/odata) endpoint almost always comes down to one of three things: a missing or wrong x-api-key header, valid credentials but an API key scoped to a different company than the one in the URL, or REST services simply not enabled for that endpoint. Confirm the API key exists and is active in Application Studio (or the classic REST API help page), matches the company segment in the URL, and that the account used for Basic auth or OAuth has the right security group.
AI for ERPAI for Epicor Kinetic, Beyond What Prism Covers
Add AI to Epicor Kinetic beyond Prism: private LLM over BAQs, BPM data, and REST v2, on-prem or private cloud, with honest guidance on when Prism already covers you.
AI for ERPPrivate AI for Epicor Kinetic Cloud, Outside the Multi-Tenant Boundary
Run a private LLM on Epicor Kinetic private cloud or Kinetic Cloud data via BAQs, REST v2 and Data Fabric, keeping sensitive manufacturing data off shared AI.
Stuck on Epicor Kinetic?
Talk to engineers who work inside Epicor Kinetic every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- Epicor BPM Directive Design TemplateA fill-in design document for BPM method and data directives covering trigger, conditions, actions, testing and rollback.
- Epicor Kinetic BPM Directive Inventory WorksheetAn editable register of your Epicor directives with owner, purpose, risk score and review date, exportable to Excel.
- Epicor BPM Directive Overhead CalculatorSee how many milliseconds and server hours your BPM directives add per transaction and per day.
ERP fixes and how-tos
- How to Create a BPM Method Directive in Epicor KineticHow to build a Method Directive in Epicor Kinetic: choose the business object method, pre or post processing, add conditions and actions, test, and deploy safely.
- Fixing Epicor BusinessObjectException: BPM Directive ErrorsA BusinessObjectException wrapping a BPM directive error in Epicor means a Pre-Processing, Post-Processing or Data Directive stopped the transaction. Here is how to trace and fix it.
- Epicor BPM Custom Code Examples: Set, Query, Validate, Call and RefreshWorking Epicor Kinetic BPM custom code examples: set a field, query the database, validate input, call a service, and refresh data after changes.
Integrations
- How to add WhatsApp to Epicor KineticHow to connect WhatsApp Business to Epicor Kinetic: REST and BPM triggers, template messages, opt-in rules and two-way replies that post back to the ERP.
- How to add WhatsApp to Epicor Vantage and Epicor 9How to connect WhatsApp Business to Epicor Vantage or Epicor 9 using Service Connect, BPM directives and a small middle service, with on-prem notes.