How to Draw an EPC Diagram in Visio (Event-Driven Process Chain)
An event-driven process chain alternates events and functions, with XOR connectors for decisions. Learn the EPC rules and draw a purchase requisition process in Visio, step by step.
Step by step
- EPC diagram. An EPC (event-driven process chain) is a process map often used in ERP projects. Its strict rule is that events and functions take turns. Here we draw a purchase requisition process in Visio.
- EPC Diagram Shapes. Open the EPC Diagram Shapes stencil in the Shapes pane. It has the Event, Function and XOR shapes used below.
- Start event. An EPC starts with an event, the hexagon. An event is something that has happened, so write it in the past tense. Drop an Event and type Requisition created.
- Function. Next comes a function, the rounded box. A function is work someone does, so name it with a verb and a noun. Drop a Function and type Check budget.
- Control flow. Connect Requisition created to Check budget, so the flow runs from the event to the function.
- XOR connector. Check budget has 2 possible results. In an EPC, a decision is an XOR connector, drawn as a circle, and exactly one path after it is taken. Drop the XOR shape below the function. Then connect Check budget to the XOR.
- Result events. After an XOR split, each path starts with an event that states the result. Drop an Event and type Budget available. Connect the XOR to Budget available. Drop a second Event for the other result and type Budget not available. In this example, that path ends here. Connect the XOR to Budget not available too.
- Events and functions take turns. Every event except an end event is followed by a function. Because the budget is available, purchasing does the next piece of work: drop a Function and type Create purchase order. Connect Budget available to Create purchase order.
- End event. The chain ends with an event again. Drop an Event and type Purchase order sent. Connect Create purchase order to Purchase order sent to finish the main path.
- Done. Click an empty part of the page to deselect the shapes and see the whole chain, from Requisition created to Purchase order sent.
- 3 EPC rules. 3 rules to remember: start and end with an event. Events and functions take turns along each path. An event can't make a decision, so an XOR split only comes after a function.
Common mistakes
- Putting an XOR split straight after an event. An event only says something has happened, so it can't decide anything. Put a function such as Check budget before the XOR, and let the XOR split after it.
- Two events or two functions in a row. Events and functions must take turns. If Requisition created leads straight to Budget available, add the missing function between them, such as Check budget.
- Naming events like tasks. Events are states in the past tense, like Budget available or Purchase order sent. Functions are a verb and a noun, like Check budget or Create purchase order.
- Ending the chain on a function. Every path needs an end event that says the result. After Create purchase order, add Purchase order sent.
When a business analyst uses this
In an ERP fit-gap workshop, a business analyst maps the current purchase requisition approval as an EPC with the procurement team. The XOR after Check budget shows that each request goes down only one path, and each result event, such as Budget not available, becomes a point to confirm against the new system's rules before sign-off.
Questions people ask
What is an EPC diagram?
An event-driven process chain is a process map where events (things that have happened) and functions (work someone does) take turns. Connectors such as XOR show where the process splits or joins.
What does XOR mean in an EPC diagram?
XOR is a connector, drawn as a circle. When it splits the process, exactly one path is taken. An XOR split must come after a function, and each path starts with an event that states the result. An XOR can also join paths back together.
Can an EPC diagram start with a function?
No. An EPC starts with an event, such as Requisition created, that triggers the first function. Each path also ends with an event.