Loading

Document Types

A document type declares that a pair of your datastores — a header and its lines — behaves as a transactional document. Sales invoice, purchase order, quotation, despatch note, credit note: the same shape each time.

Where to find it

Architect Panel → ERP - Setup:

  • Documents — the console — work with actual documents
  • Document Types — declare a type and point it at a binding
  • Document Conversion Map — which field becomes which when one type becomes another

Architect Panel → Data:

  • Record Numbering — the number scheme that allocates references

The engine owns no data

A document type stores no records of its own. It points at a binding whose header and line roles name your datastores.

So adopting documents requires migrating nothing — an existing orders datastore can be declared a document type and carry on holding exactly the same rows.

Defining one

Each type carries a name, its binding, and its direction — sales-side or purchase-side. Direction matters because it determines the sign of any stock movement or ledger posting the document produces: a despatch takes stock out, a goods receipt puts it in.

Numbering

Pair each type with a number scheme so references are allocated rather than typed. A predictable sequence per type per entity is what auditors expect, and it removes an entire category of duplicate-reference problems.

Choosing your types

Declare a type per genuinely different lifecycle, not per layout variation.

A pro-forma following exactly the same path as a normal invoice is a flag on the invoice, not a separate type. Two types sharing a status list and a conversion map are usually one type wearing two hats — and every extra type multiplies the transitions and maps you have to maintain.

Worked example

A distributor declares four types: Quotation, Sales Order, Despatch Note and Sales Invoice, all sales-side, each over its own header and lines datastores which already existed. Each gets a number scheme. Credit Note is a fifth type because its lifecycle genuinely differs — it can only be raised against an invoice.

Recommendations

  • One type per lifecycle, not per layout.
  • Always pair with a number scheme.
  • Set direction deliberately — it drives the sign of everything downstream.
  • Declare existing datastores as types rather than building new ones.