BC Documents and Sales Cycle
Conceptual Summary
- Documents evolve through the business process: Quote → Order → Shipment → Proforma → Invoice → Credit Memo / Return.
- Each stage has a corresponding document type and table.
- Posted documents are immutable and stored separately for audit and financial reporting.
- Archiving is optional but useful for tracking changes and history.
- Tables are reused across document types with a
Document Typefield to distinguish them.
Documents
1. Quote / Offer
- Document Type: Sales Quote
- Purpose: Non-binding offer to a customer.
- State: Editable until converted or deleted.
- Conversion: Can be converted to a Sales Order.
- Table:
- Header:
Sales Header(Document Type = Quote) - Lines:
Sales Line
- Header:
2. Sales Order
- Document Type: Sales Order
- Purpose: Confirmed customer order.
- State:
- Open: Editable and not yet posted.
- Released: Ready for posting (optional workflow step).
- Posted: Becomes a Posted Sales Shipment and/or Posted Sales Invoice.
- Table:
- Header:
Sales Header(Document Type = Order) - Lines:
Sales Line
- Header:
3. Shipment
- Document Type: Sales Shipment
- Purpose: Confirm delivery of goods and update inventory.
- State:
- Open / Ongoing: Editable until posted.
- Posted: Immutable, creates inventory and COGS entries.
- Tables:
- Ongoing:
Sales Header,Sales Line - Posted:
Sales Shipment Header,Sales Shipment Line
- Ongoing:
4. Proforma Invoice (vorderingstaat)
- Document Type: Sales Proforma Invoice
- Purpose: Informational invoice for the customer before posting the real invoice.
- State:
- Open / Editable: Can be modified.
- Posted (optional): Usually does not create GL entries; optional in some setups.
- Tables:
- Header:
Sales Header(Document Type = Proforma) - Lines:
Sales Line
- Header:
5. Posted Invoice
- Document Type: Posted Sales Invoice
- Purpose: Finalize billing and impact GL.
- State: Immutable (archived for audit).
- Tables:
Sales Invoice Header,Sales Invoice Line
6. Credit Memo
- Document Type: Sales Credit Memo
- Purpose: Reverse or correct a posted invoice.
- State:
- Open: Editable
- Posted: Finalized
- Tables:
- Open:
Sales Header(Document Type = Credit Memo) - Posted:
Sales Cr. Memo Header,Sales Cr. Memo Line
- Open:
7. Return Order
- Document Type: Sales Return Order
- Purpose: Customer returns goods.
- State:
- Open: Editable
- Posted: Becomes a Posted Return Receipt and/or Posted Credit Memo
- Tables:
- Header:
Sales Header(Document Type = Return Order) - Lines:
Sales Line
- Header:
Document States and Lifecycle
| Document Type | Editable | Type | Archiveable | Table(s) | Used |
|---|---|---|---|---|---|
| Quote | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Planning / Customer offer |
| Order | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Projected sales / current orders |
| Ongoing Shipment | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Partial deliveries without posting |
| Posted Shipment | ❌ | posted | ❌ | Sales Shipment Header, Sales Shipment Line |
Fulfilled deliveries / inventory impact |
| Proforma Invoice | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Customer communication / expected invoice |
| Posted Proforma | ❌ | posted | ❌ | Sales Header, Sales Line |
Optional, usually informational |
| Ongoing Invoice | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Invoice prepared but not posted |
| Posted Invoice | ❌ | posted | ❌ | Sales Invoice Header, Sales Invoice Line |
Actual billed sales / revenue |
| Ongoing Credit Memo | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Pending corrections |
| Posted Credit Memo | ❌ | posted | ❌ | Sales Cr. Memo Header, Sales Cr. Memo Line |
Finalized corrections / decreases revenue |
| Ongoing Return Order | ✅ | ongoing | ✅ | Sales Header, Sales Line |
Pending returns |
| Posted Return Order | ❌ | posted | ❌ | Sales Return Header, Sales Return Line |
Finalized returns / inventory impact |
Document Transitions
- Blue: ongoing documents (editable, archiveable, same tables)
- Red: posted documents (immutable, separate tables, GL impact)
---
config:
layout: dagre
title: Business Central Sales Cycle Documents
---
flowchart TD
Q["Quote"] --> SO["Order<br>"]
SO --> SH["Shipment"] & SI["Invoice"]
SH --> SI
SI --> RO["Return Order"] & n2["Credit Memo"]
RO --> CM["Credit Memo"] & n1["Return Receipt"]
n2 --> CM
n3["Invoice"] --> SI
n4["Shipment"] --> SH
n5["Proforma Invoice<br>(Vorderingstaat)"] --> SI
Q@{ shape: doc}
SO@{ shape: doc}
SH@{ shape: doc}
SI@{ shape: doc}
RO@{ shape: doc}
n2@{ shape: doc}
CM@{ shape: doc}
n1@{ shape: doc}
n3@{ shape: doc}
n4@{ shape: doc}
n5@{ shape: doc}
Q:::Sky
SO:::Sky
SH:::Rose
SI:::Rose
RO:::Sky
n2:::Sky
CM:::Rose
n1:::Rose
n3:::Sky
n4:::Sky
n5:::Sky
classDef Rose stroke-width:1px, stroke-dasharray:none, stroke:#FF5978, fill:#FFDFE5, color:#8E2236
classDef Sky stroke-width:1px, stroke-dasharray:none, stroke:#374D7C, fill:#E2EBFF, color:#374D7C
When to use what?
For BI, the following applies:
-
Quotes and Return Receipts are not used very frequently for reporting
-
You cannot use ongoing documents in Sales Line to get the Order Intake. Once posted, the Order is removed from the Sales Header and Sales Line table. Thus, we cannot derive a history of order intake from those tables.
- Instead, you can use the
Snapshotfeature of the Power Partners DWH (BC Edition) solution. - Alternatively, you could use the Archive. However, you would have to make sure that you don't double-count the order, as it can appear multiple times in the Archive table.
- Instead, you can use the
-
However, you can use to Sales Orders to project the sales, as of today. Use the Expected Delivery date as a proxy for when the sale will be posted.
-
You will (almost) always want to use Sales Invoice and Credit Memo together. The amount of the Sales Invoices will increase your sales, while the Credit Memos decrease your sales.