Dynamics 365 Field Service : Create purchase orders
A Purchase Order (PO) in Dynamics 365 Field Service allows organizations to manage the procurement of products and services needed for work orders, inventory replenishment, or customer delivery.
When is it used?
- Stock levels in warehouses or vans are below minimum thresholds.
- Field agents require parts to fulfill work orders.
- A customer requests parts that are not in stock (backorder).
- To maintain vendor relationships and track external purchases.
Typical Flow:
1. Detect need for replenishment
- System detects stock levels below reorder point.
2. Create Purchase Order
- A PO record is created and linked to a vendor and warehouse.
3. Submit for approval (optional)
- Some businesses configure approval workflows.
4. Receive Products
- When vendor ships items, receiving is recorded.
5. Adjust inventory
- Stock levels are updated once the items are received.
Technical Components & Dataverse Tables
Relationships
- Purchase Order → Vendor (N:1)
- Purchase Order → Warehouse (N:1)
- Purchase Order → Purchase Order Products (1\:N)
- Purchase Order Product → Product (N:1)
Out-of-the-box Configuration Steps
Create a Purchase Order
1. Navigate to Field Service > Inventory > Purchase Orders.
2. Click + New.
3. Enter:
- Vendor
- Warehouse
- Status = Draft (initial)
4. Add Products:
- Select products, set quantities.
5. Submit for approval (if workflows enabled).
6. Change status to Submitted or Approved.
7. When items arrive, set status to Received.
Technical Flow: Under the Hood
Here’s what happens step by step:
User creates PO (UI / API)
- Record inserted into `msdyn_purchaseorder`.
- Plugins validate:
- Vendor existence.
- Warehouse association.
- Correct price lists.
Add products
- For each product, a record is created in `msdyn_purchaseorderproduct`.
- Quantity, unit price, tax calculated.
Status change triggers workflows
- Draft → Submitted:
- Triggers Power Automate Flow or plugin for approval.
- Submitted → Approved:
- Locks PO for editing.
- Approved → Received:
- Automatically creates `msdyn_inventoryadjustment` records.
- Stock levels updated in `msdyn_productinventory`.
Adjust Inventory
When PO is received, system:
- Creates inventory transaction records.
- Updates warehouse stock.
Security Roles
- Field Service Admin: Full CRUD
- Field Service Dispatcher: Read, create
- Field Technician: View-only
Gotchas (Important Points)
- Vendor must be linked to a price list.
- Warehouse must have capacity defined.
- Multi-warehouse scenarios need separate POs per warehouse.
- Work order-linked POs automatically reserve inventory for the work order.
- Plugins/Flows should handle partial receipts (not all products delivered at once).
Customization Ideas
- Auto-create POs when stock falls below threshold (plugin or Power Automate).
- Integrate directly with supplier APIs (EDI, XML, JSON).
- Add custom fields like Expected Delivery Date, Shipping Costs.
- Dashboard for procurement analytics (PO status, vendor performance).
Published on:
Learn moreRelated posts
Power Platform Environment Deep Dive (Part 2)
In Microsoft Power Platform, choosing the right environment type is important because each environment is designed for a different business pu...
Power Platform Environment Deep Dive (Part 1)
Today, in the business enterpriese world, Power Platform enables organization to build application, automate workflow, analyze data crea...
Book Review : Life 3.0 by Max Tegmark
This is the third book I’ve read this year, and even though I’m still in the early chapters, it already feels like my favorite read of the yea...
Dataverse Views Demystified: Making Data Work for You
In Microsoft Dataverse, users do not always see all the data stored in a table. What they can view depends on their security permissions, role...
Decode & Fix : Shared App host initialization has timed out in Microsoft Power Apps
Issue :While working with apps in the Microsoft Power Platform, we encountered a critical issue where the application failed to load pro...
Dataverse Integration Patterns: Sync vs Async vs Event-driven (Real Use Cases)
As organizations start using Microsoft Power Platform, Microsoft Dataverse is no longer just a place to store data—it becomes a key part of ho...
Book Review : Don't Believe Everything You Think by Joseph Nguyen
My second book of this year is "Don’t Believe Everything You Think" by Joseph Nguyen. This book was recommended by a friend who strongly belie...
Book Review : Scary Smart by Mo Gawdat
The first book I read in 2026 was Scary Smart by Mo Gawdat, the former Chief Business Officer at Google.In today’s world, Artificial Intellige...
Managing Temporary User Access in Dataverse with Access Teams
Access Teams let you give people access to one specific record, not the whole table.Access Teams in Microsoft Dataverse are a powerful way to ...
