Skip to content

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 Type field 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

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

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

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

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

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

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 Snapshot feature 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.
  • 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.