DocTypes
Een DocType is Frappes kernmodel — als een databasetabel, maar met schema, permissies, lifecycle-hooks en gegenereerde UI.
Wat een DocType heeft
| Eigenschap | Doel |
|---|---|
| Naam | Enkelvoud conventie (Sales Invoice, niet Sales Invoices) |
| Module | Bij welke app/module hoort het |
| Velden | Kolommen — elk met type, label en eigenschappen (zie Veldtypes hieronder) |
| Permissies | Regels per rol |
| Naamgeving | Hoe nieuwe records hun primary key krijgen (Naming Series, hash, op veld) |
| Workflow | Optionele toestandsmachine |
Soorten DocType
| Type | Gebruik |
|---|---|
| Document | Heeft DB-tabel; gebruikers maken veel records |
| Single | Slechts één record — voor instellingen (System Settings, Email Settings) |
| Child Table | Embedded in een parent — Sales Invoice Item zit in Sales Invoice |
| Submittable | Heeft Submit-actie; ingediende records zijn immutable, wijzigingen via Cancel + Amend |
Standard vs Custom
| Type | Herkomst |
|---|---|
| Standard | Gedefinieerd door een app — code in <app>/<module>/doctype/ |
| Custom | Aangemaakt in het Desk door admin — opgeslagen in de database |
Voor eenmalige behoeften is een Custom DocType snel. Voor herbruikbare modellen over meerdere sites: maak een Frappe-app. Zie Ontwikkelaars.
Naamgevingsconventies
- DocTypes zijn enkelvoud:
Sales Invoice, nietSales Invoices - Veldnamen zijn snake_case:
customer_name,posting_date - Title Case in labels (wat gebruikers zien), snake_case in fieldnames (wat code gebruikt)
Veldtypes
Bij het definiëren van een DocType heeft elk veld een type dat opslag en rendering bepaalt.
Tekst & inhoud
| Type | Opslag | Gebruik |
|---|---|---|
| Data | varchar(140) | Korte strings — namen, codes |
| Small Text | text | Tot ~64KB |
| Long Text | longtext | Tot 4GB — artikelen, inhoud |
| Text Editor | longtext | Rich HTML-bewerking |
| Code | longtext | Code met syntax highlighting |
| Markdown Editor | longtext | Markdown met preview |
| HTML Editor | longtext | Directe HTML-bewerking |
Getallen
| Type | Opslag | Gebruik |
|---|---|---|
| Int | int | Hele getallen |
| Float | float | Drijvende komma |
| Currency | decimal(18,6) | Geldbedragen — locale-geformatteerd |
| Percent | float | Getoond met %-achtervoegsel |
Datums
| Type | Format |
|---|---|
| Date | YYYY-MM-DD |
| Time | HH:MM:SS |
| Datetime | YYYY-MM-DD HH:MM:SS |
| Duration | Uren/min/sec — interval |
Selectie & links
| Type | Gebruik |
|---|---|
| Select | Dropdown met vaste opties |
| Link | Verwijzing naar ander DocType — autocomplete |
| Dynamic Link | Link waarvan het target-DocType zelf een veld is |
| Table | Child table — embedded lijst |
| Table MultiSelect | Multi-select uit ander DocType |
| Autocomplete | Vrije tekst met suggesties |
Bestanden & media
| Type | Gebruik |
|---|---|
| Attach | Bestandslink — slaat URL op |
| Attach Image | Zelfde met image-preview |
| Color | Color picker — hex-waarde |
| Signature | Tekencanvas, opgeslagen als image |
Layout
| Type | Gebruik |
|---|---|
| Section Break | Visuele groepering |
| Column Break | Nieuwe kolom in huidige sectie |
| Tab Break | Top-level tab |
| Fold | Inklapbare groep |
| HTML | Statische HTML in het formulier |
| Heading | Visuele kop |
Speciaal
| Type | Gebruik |
|---|---|
| Check | Boolean — 0 of 1 |
| Password | Encrypted opgeslagen |
| JSON | Geldige JSON; gevalideerd bij save |
| Geolocation | Kaartkiezer |
| Rating | Sterrenwidget |
| Read Only | Alleen tonen, geen invoer |
| Barcode | Rendert barcode uit waarde |
Last updated 3 days ago
Was this helpful?