---
title: "Manufacturing"
description: "Stücklisten. Jede App ist ein Modul auf einem gemeinsamen Datenmodell."
canonical: "https://obop.dev/de/apps/manufacturing/"
lang: "de"
---

# Manufacturing

## Wofür sie gedacht ist

Define what a product is made of and plan manufacturing orders through draft, confirmed, in progress and done. Component stock is not consumed automatically.

## Was das Paket leistet und was nicht

Bills of materials and manufacturing orders with a draft, confirmed, in progress and done flow. Component stock is not consumed automatically.

## Modelle

### `manufacturing_bom`

A recipe: the components needed to make a product

Lesegruppe: `manufacturing.user`. Schreibgruppe: `manufacturing.manager`.

| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
| `product_id` | ref → product | `none` | nein | `manufacturing.user` | im Klartext | The finished product the recipe makes |
| `name` | text | `none` | nein | `manufacturing.user` | im Klartext | Name of the recipe, for example Standard assembly |
| `quantity` | number | `none` | nein | `manufacturing.user` | im Klartext | Units of the finished product one run produces |
| `instructions` | longtext | `none` | nein | `manufacturing.user` | im Klartext | Assembly notes for the shop floor |
| `active` | bool | `none` | nein | `manufacturing.user` | im Klartext | Whether the recipe can be used for new orders |

### `manufacturing_bom_line`

One component of a bill of materials

Lesegruppe: `manufacturing.user`. Schreibgruppe: `manufacturing.manager`.

| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
| `bom_id` | ref → manufacturing_bom | `none` | nein | `manufacturing.user` | im Klartext | The recipe the component belongs to |
| `component_id` | ref → product | `none` | nein | `manufacturing.user` | im Klartext | The product consumed |
| `quantity` | number | `none` | nein | `manufacturing.user` | im Klartext | Units of the component used per run |

### `manufacturing_order`

An instruction to produce a quantity of a product

Lesegruppe: `manufacturing.user`. Schreibgruppe: `manufacturing.user`.

| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
| `reference` | text | `none` | nein | `manufacturing.user` | im Klartext | Order number, for example MO-0042 |
| `bom_id` | ref → manufacturing_bom | `none` | nein | `manufacturing.user` | im Klartext | The recipe to follow |
| `quantity` | number | `none` | nein | `manufacturing.user` | im Klartext | Units of the finished product to make |
| `planned_on` | date | `none` | nein | `manufacturing.user` | im Klartext | Date production should start (YYYY-MM-DD) |
| `deadline` | date | `none` | nein | `manufacturing.user` | im Klartext | Date the goods are needed (YYYY-MM-DD) |
| `responsible` | text | `internal` | ja | `manufacturing.user` | maskiert | Name of the person in charge of the run |
| `state` | select (draft, confirmed, in_progress, done, cancelled) | `none` | nein | `manufacturing.user` | im Klartext | Order status: draft, confirmed, in_progress, done, cancelled |

## Workflows

### `manufacturing_order`

| Aktion | Bewegt | Wer sie ausführen darf | Freigabe |
|---|---|---|---|
| `manufacturing_order.confirm` | state: draft → confirmed | `manufacturing.manager` | nein |
| `manufacturing_order.start` | state: confirmed → in_progress | `manufacturing.user` | nein |
| `manufacturing_order.finish` | state: in_progress → done | `manufacturing.user` | nein |
| `manufacturing_order.cancel` | state: draft → cancelled | `manufacturing.user` | nein |

## Berechtigungsgruppen

Von dieser App verwendete Gruppen:

- `manufacturing.manager`
- `manufacturing.user`

## Freigabeschritte

Kein Schritt dieser App braucht eine Freigabe, abgesehen vom Löschen von Datensätzen.

## Was Agenten tun können und was nicht

Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.

Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: `manufacturing_bom.delete`, `manufacturing_bom_line.delete`, `manufacturing_order.delete`.

Personenbezogene Daten werden als Platzhalter maskiert: `manufacturing_order.responsible`.

## Abhängigkeiten

- `product`

## Installation

Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:

```bash
obop modules install-from manufacturing
```

Erfordert eine Datenbank und Administratorrechte.

## Selbst bauen

[Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden](/de/docs/reference/module-manifest/)
