Centurio System & Module Documentation
🏛️ Platform Architecture 🔑 Login
All Modules / supply_chain / Einkauf & Bestellungen
🛒

Einkauf & Bestellungen

purchasing supply_chain 🛡️ RLS Protected

Lieferantenbestellungen, Preisanfragen (RFQ), Wareneingangserfassung und 3-Wege-Rechnungsabgleich.

Fachliche Bestimmung: Steuert den gesamten Beschaffungsprozess. Erzeugt Bestellungen aus Buy-to-Order-Bedarfen, Streckengeschäften oder Mindestbestandsregeln. Unterstützt Wareneingangsbuchungen mit LVS-Übergabe und automatisiert den 3-Wege-Abgleich (Bestellung ➔ Wareneingang ➔ Eingangsrechnung).

⚡ Workflows & Lifecycles

Procure-to-Pay (P2P) Beschaffungszyklus procure_to_pay_lifecycle

Von der Bedarfsanforderung über die Lieferantenbestellung bis zum Wareneingang.

graph LR A[Bedarfsanforderung / BTO] --> B[Bestellung an Lieferant] B --> C[Wareneingang & Prüfung] C --> D[LVS-Lagerzubuchung] D --> E[3-Wege-Rechnungsprüfung]
1. RFQ
Preisanfrage
Anfrage bei einem oder mehreren Lieferanten.
Aktionen: Angebote vergleichen
2. ORDER
Bestellung
Verbindliche Bestellung auslösen.
Aktionen: PO-Beleg generieren
3. RECEIPT
Wareneingang
Eintreffen der Ware erfassen und Menge/Qualität prüfen.
Aktionen: LVS-Bestand zubuchen
4. INVOICE_MATCH
Rechnungsabgleich
3-Wege-Abgleich gegen Einkaufsrechnung.
Aktionen: Zur Zahlung freigeben

Auftragsbestätigung prüfen cascade:business.order_confirmation.check

Kaskade (review_gated).

1. match
AB ↔ Bestellung abgleichen
purchasing
Aktionen: order_confirmation.match
2. project
Projekt / Kostenstelle zuordnen
projects
Aktionen: link_project
3. task
Liefertermin / Preise überwachen
tasks
Aktionen: create_task

Auftragsbestätigung ↔ Bestellung abgleichen cascade_target:business.order_confirmation.match

Kaskade (review_gated).

1. cascade
Auftragsbestätigung ↔ Bestellung abgleichen

Benutzerbefehl: goods receipt agent plan:command_goods_receipt_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. goods_receipt_agent
goods_receipt_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "goods_receipt_agent", "condition_fact": null}
Aktionen: goods_receipt_agent

Benutzerbefehl: procurement coordinator agent plan:command_procurement_coordinator_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. procurement_coordinator_agent
procurement_coordinator_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "procurement_coordinator_agent", "condition_fact": null}
Aktionen: procurement_coordinator_agent

Benutzerbefehl: procurement rule function agent plan:command_procurement_rule_function_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. procurement_rule_function_agent
procurement_rule_function_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "procurement_rule_function_agent", "condition_fact": null}
Aktionen: procurement_rule_function_agent

Benutzerbefehl: procurement run function agent plan:command_procurement_run_function_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. procurement_run_function_agent
procurement_run_function_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "procurement_run_function_agent", "condition_fact": null}
Aktionen: procurement_run_function_agent

Benutzerbefehl: purchase agent plan:command_purchase_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. purchase_agent
purchase_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "purchase_agent", "condition_fact": null}
Aktionen: purchase_agent

Benutzerbefehl: three way match agent plan:command_three_way_match_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. three_way_match_agent
three_way_match_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "three_way_match_agent", "condition_fact": null}
Aktionen: three_way_match_agent

Wareneingang gebucht plan:goods_receipt_followup

Geprüfter Durable-Plan (durable_plan), Start: domain_event.

1. three_way_match_agent
three_way_match_agent
{"key": "step_0", "label": "Bestellung, Wareneingang und Rechnung abgleichen", "adapter": "agent.execute", "agent": "three_way_match_agent", "condition_fact": null}
Aktionen: three_way_match_agent

Dropship status:dropship_line

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. needs_supplier
needs_supplier
Status «needs_supplier» der Zustandsmaschine Dropship.
2. requested
requested
Status «requested» der Zustandsmaschine Dropship.
3. ordered
ordered
Status «ordered» der Zustandsmaschine Dropship.
4. confirmed
confirmed
Status «confirmed» der Zustandsmaschine Dropship.
5. shipped
shipped
Status «shipped» der Zustandsmaschine Dropship.
6. delivered
delivered
Status «delivered» der Zustandsmaschine Dropship.
7. issue
issue
Status «issue» der Zustandsmaschine Dropship.
8. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Dropship.

Wareneingang status:goods_receipt

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Wareneingang.
2. posted
posted
Status «posted» der Zustandsmaschine Wareneingang.
3. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Wareneingang.

Bestellung status:purchase

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Bestellung.
2. sent
sent
Status «sent» der Zustandsmaschine Bestellung.
3. partially_received
partially_received
Status «partially_received» der Zustandsmaschine Bestellung.
4. received
received
Status «received» der Zustandsmaschine Bestellung.
5. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Bestellung.

Bestellanforderung status:purchase_requisition

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Bestellanforderung.
2. submitted
submitted
Status «submitted» der Zustandsmaschine Bestellanforderung.
3. approved
approved
Status «approved» der Zustandsmaschine Bestellanforderung.
4. rejected
rejected
Status «rejected» der Zustandsmaschine Bestellanforderung.
5. ordered
ordered
Status «ordered» der Zustandsmaschine Bestellanforderung.
6. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Bestellanforderung.

Preisanfrage status:purchase_rfq

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Preisanfrage.
2. sent
sent
Status «sent» der Zustandsmaschine Preisanfrage.
3. partially_quoted
partially_quoted
Status «partially_quoted» der Zustandsmaschine Preisanfrage.
4. quoted
quoted
Status «quoted» der Zustandsmaschine Preisanfrage.
5. ordered
ordered
Status «ordered» der Zustandsmaschine Preisanfrage.
6. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Preisanfrage.

Lieferantenangebot status:supplier_quote

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Lieferantenangebot.
2. received
received
Status «received» der Zustandsmaschine Lieferantenangebot.
3. accepted
accepted
Status «accepted» der Zustandsmaschine Lieferantenangebot.
4. rejected
rejected
Status «rejected» der Zustandsmaschine Lieferantenangebot.

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

Registrierte Fachoperationen und System-Capabilities dieses Moduls zur Steuerung von Workflows, Kaskaden und KI-Agenten.

Gesamt: 90 manual_entry: 1 engine: 62 reviewed: 1 review_gated: 2 operator_surface: 4 engine_step: 7 durable_plan: 7 observable_only: 6
Capability & Schlüssel Fachliche Bezeichnung Ausführung / Coverage Risikostufe & Freigabe Effekte & Kaskaden
Agent-Einstieg purchase_agent agent_entry:purchase_agent
Agent-Einstieg purchase_agent
Quelle: code:module_agent_map
manual_entry
✓ Auto
Keine Seiteneffekte deklariert
Abruf aus Rahmenvertrag capability:contract_call_off
Op: contract_call_off
Intent: contract_call_off
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • engine:contract_call_off
Direktversand-Lieferant setzen capability:dropship.assign_supplier
Op: dropship.assign_supplier
Intent: assign_dropship_supplier
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • dropship.assigned
Liefernachweis buchen capability:dropship.confirm_delivery
Op: dropship.confirm_delivery
Intent: confirm_delivery
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • dropship.delivered
Dropship: assign supplier capability:dropship.dropship.assign_supplier
Op: dropship.dropship.assign_supplier
Objekt: dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.assign_supplier
Dropship: cancel capability:dropship.dropship.cancel
Op: dropship.dropship.cancel
Objekt: dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.cancel
Dropship: confirm delivery capability:dropship.dropship.confirm_delivery
Op: dropship.dropship.confirm_delivery
Objekt: dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.confirm_delivery
Dropship: create for quote capability:dropship.dropship.create_for_quote
Op: dropship.dropship.create_for_quote
Objekt: dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.create_for_quote
Dropship: report issue capability:dropship.dropship.report_issue
Op: dropship.dropship.report_issue
Objekt: dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.report_issue
Dropship: set tracking capability:dropship.dropship.set_tracking
Op: dropship.dropship.set_tracking
Objekt: dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.set_tracking
Rechnungsfreigabe vorab capability:dropship.release_billing
Op: dropship.release_billing
Intent: release_dropship_billing
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • dropship.billing_released
Tracking erfassen capability:dropship.set_tracking
Op: dropship.set_tracking
Intent: update_dropship
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • dropship.tracked
Lieferantenabrechnung erstellen capability:generate_supplier_settlement
Op: generate_supplier_settlement
Objekt: contract
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • contract.settlement_generated
Wareneingang buchen capability:goods_receipt.post
Op: goods_receipt.post
Intent: post_goods_receipt
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • goods_receipt.posted
Auftragsbestätigung ↔ Bestellung abgleichen capability:order_confirmation.match
Op: order_confirmation.match
Objekt: task
Quelle: code:capability_registry
reviewed
🔒 Freigabe nötig Risiko: business_record
  • cascade:business.order_confirmation.match
Nachschub planen capability:prepare_replenishment_drafts
Op: prepare_replenishment_drafts
Intent: plan_replenishment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • engine:prepare_replenishment_drafts
Procurement: create rule capability:procurement.procurement.create_rule
Op: procurement.procurement.create_rule
Objekt: procurement
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • procurement.create_rule
Procurement: delete rule capability:procurement.procurement.delete_rule
Op: procurement.procurement.delete_rule
Objekt: procurement
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • procurement.delete_rule
Procurement: update rule capability:procurement.procurement.update_rule
Op: procurement.procurement.update_rule
Objekt: procurement
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • procurement.update_rule
Nachschublauf ausführen capability:procurement.run
Op: procurement.run
Intent: run_procurement
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • procurement_run.finished
Position zur Bestellung capability:purchase.add_item
Op: purchase.add_item
Intent: update_purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.item_added
Bestellung freigeben capability:purchase.approve
Op: purchase.approve
Intent: approve_purchase
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • purchase.approved
Angebot vergeben capability:purchase.award_quote
Op: purchase.award_quote
Intent: award_quote
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • quote.awarded
  • purchase.created
Bestellung stornieren capability:purchase.cancel
Op: purchase.cancel
Intent: cancel_purchase
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • purchase.cancelled
Auftragsbestätigung buchen capability:purchase.confirm_supplier
Op: purchase.confirm_supplier
Intent: confirm_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.supplier_confirmed
Bestellung anlegen capability:purchase.create
Op: purchase.create
Intent: create_purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.created
Bestellung versenden capability:purchase.send
Op: purchase.send
Intent: send_purchase
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • purchase.sent
Lieferant zur Anfrage capability:purchase_rfq.add_supplier
Op: purchase_rfq.add_supplier
Intent: manage_rfq
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • rfq.supplier_added
Preisanfrage anlegen capability:purchase_rfq.create
Op: purchase_rfq.create
Intent: create_rfq
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • rfq.created
Anfrage an Lieferant senden capability:purchase_rfq.send_invite
Op: purchase_rfq.send_invite
Intent: send_rfq
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • rfq.invite_sent
Rahmenabruf Einkauf capability:purchasing.blanket.call_off
Op: purchasing.blanket.call_off
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.blanket.call_off
Vertragspreis aktualisieren capability:purchasing.contract.price_update
Op: purchasing.contract.price_update
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.contract.price_update
Goods Receipt: apply weigh measurements capability:purchasing.goods_receipt.apply_weigh_measurements
Op: purchasing.goods_receipt.apply_weigh_measurements
Objekt: goods_receipt
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • goods_receipt.apply_weigh_measurements
Goods Receipt: create capability:purchasing.goods_receipt.create
Op: purchasing.goods_receipt.create
Objekt: goods_receipt
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • goods_receipt.create
Goods Receipt: post capability:purchasing.goods_receipt.post
Op: purchasing.goods_receipt.post
Objekt: goods_receipt
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • goods_receipt.post
Goods Receipt: update draft capability:purchasing.goods_receipt.update_draft
Op: purchasing.goods_receipt.update_draft
Objekt: goods_receipt
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • goods_receipt.update_draft
Goods Receipt: update item tracking capability:purchasing.goods_receipt.update_item_tracking
Op: purchasing.goods_receipt.update_item_tracking
Objekt: goods_receipt
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • goods_receipt.update_item_tracking
WE Quarantäne capability:purchasing.gr.quality_hold
Op: purchasing.gr.quality_hold
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.gr.quality_hold
WE freigeben capability:purchasing.gr.release_quality
Op: purchasing.gr.release_quality
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.gr.release_quality
PO unter Limit freigeben capability:purchasing.po.auto_approve_under_limit
Op: purchasing.po.auto_approve_under_limit
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.po.auto_approve_under_limit
Bestellungen konsolidieren capability:purchasing.po.consolidate
Op: purchasing.po.consolidate
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.po.consolidate
Bestellung anmahnen capability:purchasing.po.expedite
Op: purchasing.po.expedite
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.po.expedite
3-Wege-Abgleich capability:purchasing.po.three_way_match
Op: purchasing.po.three_way_match
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.po.three_way_match
Purchase: add item to purchase capability:purchasing.purchase.add_item_to_purchase
Op: purchasing.purchase.add_item_to_purchase
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.add_item_to_purchase
Purchase: apply quantity billed capability:purchasing.purchase.apply_quantity_billed
Op: purchasing.purchase.apply_quantity_billed
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.apply_quantity_billed
Purchase: approve capability:purchasing.purchase.approve
Op: purchasing.purchase.approve
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.approve
Purchase: cancel capability:purchasing.purchase.cancel
Op: purchasing.purchase.cancel
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.cancel
Purchase: confirm supplier capability:purchasing.purchase.confirm_supplier
Op: purchasing.purchase.confirm_supplier
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.confirm_supplier
Purchase: confirm tax context capability:purchasing.purchase.confirm_tax_context
Op: purchasing.purchase.confirm_tax_context
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.confirm_tax_context
Purchase: create capability:purchasing.purchase.create
Op: purchasing.purchase.create
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.create
Purchase: create receipt from purchase capability:purchasing.purchase.create_receipt_from_purchase
Op: purchasing.purchase.create_receipt_from_purchase
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.create_receipt_from_purchase
Purchase: send capability:purchasing.purchase.send
Op: purchasing.purchase.send
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.send
Purchase: update capability:purchasing.purchase.update
Op: purchasing.purchase.update
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.update
Purchase: update grouping settings capability:purchasing.purchase.update_grouping_settings
Op: purchasing.purchase.update_grouping_settings
Objekt: purchase
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchase.update_grouping_settings
Lieferantenretour capability:purchasing.return_to_vendor
Op: purchasing.return_to_vendor
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.return_to_vendor
Anfrage bezuschlagen capability:purchasing.rfq.award
Op: purchasing.rfq.award
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.rfq.award
Lieferantenbewertung capability:purchasing.supplier.scorecard.refresh
Op: purchasing.supplier.scorecard.refresh
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • purchasing.supplier.scorecard.refresh
BANF freigeben capability:requisition.approve
Op: requisition.approve
Intent: approve_requisition
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • requisition.approved
BANF in Bestellung wandeln capability:requisition.convert_to_purchase
Op: requisition.convert_to_purchase
Intent: convert_requisition
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • requisition.converted
  • purchase.created
Bestellanforderung anlegen capability:requisition.create
Op: requisition.create
Intent: create_requisition
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • requisition.created
BANF einreichen capability:requisition.submit
Op: requisition.submit
Intent: submit_requisition
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • requisition.submitted
Bestellung an Lieferanten senden capability:send_purchase
Op: send_purchase
Objekt: purchase_order
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • purchase.sent
Lieferantenangebot erfassen capability:supplier_quote.record
Op: supplier_quote.record
Intent: record_supplier_quote
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • supplier_quote.received
BMEcat Lieferantenkatalog importieren capability:uip.catalog.import_bmecat
Op: uip.catalog.import_bmecat
Intent: import_bmecat_catalog
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • supplier_catalog.imported
Auftragsbestätigung prüfen cascade:business.order_confirmation.check
Auftragsbestätigung prüfen
Quelle: code:cascade_process
review_gated
✓ Auto
Keine Seiteneffekte deklariert
Auftragsbestätigung ↔ Bestellung abgleichen cascade_target:business.order_confirmation.match
Op: order_confirmation.match
Auftragsbestätigung ↔ Bestellung abgleichen
Quelle: code:cascade_target
review_gated
🔒 Freigabe nötig
Keine Seiteneffekte deklariert
goods_receipt: create form form_surface_anchor:goods_receipt.create
Objekt: goods_receipt
Quelle: code:erp_form_surface
operator_surface
✓ Auto
Keine Seiteneffekte deklariert
goods_receipt: edit form form_surface_anchor:goods_receipt.edit
Objekt: goods_receipt
Quelle: code:erp_form_surface
operator_surface
✓ Auto
Keine Seiteneffekte deklariert
purchase: edit form form_surface_anchor:purchase.edit
Objekt: purchase
Quelle: code:erp_form_surface
operator_surface
✓ Auto
Keine Seiteneffekte deklariert
reordering_rule: create form form_surface_anchor:reordering_rule.create
Objekt: reordering_rule
Quelle: code:erp_form_surface
operator_surface
✓ Auto
Keine Seiteneffekte deklariert
confirm purchase supplier gateway:confirm_purchase_supplier
Op: confirm_purchase_supplier
confirm purchase supplier
Quelle: code:engine_facade
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
Abruf aus Rahmenvertrag gateway:contract_call_off
Op: contract_call_off
Abruf aus Rahmenvertrag
Quelle: code:reviewed_gateway
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
generate supplier settlement gateway:generate_supplier_settlement
Op: generate_supplier_settlement
generate supplier settlement
Quelle: code:engine_facade
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
post goods receipt gateway:post_goods_receipt
Op: post_goods_receipt
post goods receipt
Quelle: code:engine_facade
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
Nachschub planen gateway:replenishment_planning
Op: prepare_replenishment_drafts
Nachschub planen
Quelle: code:reviewed_gateway
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
send purchase gateway:send_purchase
Op: send_purchase
send purchase
Quelle: code:engine_facade
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
supplier invoice match gateway:supplier_invoice_match
Op: create_supplier_invoice
supplier invoice match
Quelle: code:engine_facade
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: goods receipt agent plan:command_goods_receipt_agent
Benutzerbefehl: goods receipt agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: procurement coordinator agent plan:command_procurement_coordinator_agent
Benutzerbefehl: procurement coordinator agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: procurement rule function agent plan:command_procurement_rule_function_agent
Benutzerbefehl: procurement rule function agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: procurement run function agent plan:command_procurement_run_function_agent
Benutzerbefehl: procurement run function agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: purchase agent plan:command_purchase_agent
Benutzerbefehl: purchase agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: three way match agent plan:command_three_way_match_agent
Benutzerbefehl: three way match agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Wareneingang gebucht plan:goods_receipt_followup
Wareneingang gebucht
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Dropship status:dropship_line
Objekt: dropship_line
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert
Wareneingang status:goods_receipt
Objekt: goods_receipt
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert
Bestellung status:purchase
Objekt: purchase
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert
Bestellanforderung status:purchase_requisition
Objekt: purchase_requisition
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert
Preisanfrage status:purchase_rfq
Objekt: purchase_rfq
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert
Lieferantenangebot status:supplier_quote
Objekt: supplier_quote
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert

🧠 Fachprozess-Erzählung & Dual Knowledge Architektur

Synthese aus der ideologischen Blaupause (Meta-Fachlogik / Soll), der faktischen System-Implementierung (System-Fachlogik / Ist) und No-Code Customizing für KI-Consultants.

Dual Knowledge Layer
📖

Der durchgängige Businessprozess im Detail (End-to-End Fließtext-Erzählung)

Der durchgängige Beschaffungsprozess in der betrieblichen Praxis

Ein exzellenter Einkauf sichert die Lieferfähigkeit des Gesamtunternehmens zu wettbewerbsfähigen Preisen und verhindert Kapitalbindung in Überbeständen. Centurio ERP bildet den kompletten Procure-to-Pay-Zyklus ab.

1. Bedarfsentstehung & Bedarfsanforderung (Purchase Requisition / BANF)

Bedarfe entstehen an verschiedenen Stellen der Organisation:

  • Materialbedarfsplanung MRP (assembly): Die Stücklistenauflösung offener Fertigungsaufträge detektiert Fehlteile bei Zukaufkomponenten und generiert automatisch eine Bedarfsanforderung (cap:purchasing.purchase_request.create_from_mrp).
  • Meldebestandsunterschreitung (inventory): Fällt der Vorrat im Rohstoff- oder Handelswarenlager unter den Meldebestand, stößt das LVS eine automatisierte Nachbestell-BANF an.
  • Manueller Fachbereichsbedarf: Mitarbeiter erfassen interne Bestellanforderungen (z.B. Werkzeuge, Büromaterial, IT-Geräte oder externe Dienstleistungen).

2. Lieferantenauswahl, Rahmenverträge & Preisanfrage (RFQ)

Liegt kein bestehender Rahmenvertrag vor, startet der Einkäufer den Preisvergleich:

  • Über cap:purchasing.rfq.create wird eine Angebotsanfrage (Request for Quotation - RFQ) an einen oder mehrere qualifizierte Lieferanten (suppliers) gerichtet.
  • Das System erfasst die eingehenden Lieferantenangebote und stellt Staffelpreise, Lieferzeiten, Skontokonditionen und Nebenkosten (Verpackung, Fracht) in einem übersichtlichen Preisspiegel gegenüber.
  • Lieferantenbewertungen (Qualitätsquote, Termintreue vergangener Lieferungen) fließen direkt in die Vergabeentscheidung ein.

3. Genehmigungsworkflow nach Wertgrenzen (Approval Gate)

Zur Einhaltung des Vier-Augen-Prinzips und Vermeidung von Fehlkäufen greift die Autorisierungs-Matrix:

  • Geringwertige Bestellungen (z.B. unter 1.000 €) werden vom Einkäufer direkt freigegeben.
  • Bei Überschreitung definierter Wertgrenzen wird der Bestell-Draft blockiert und erfordert gestaffelte Genehmigungen:
    • 1.000 € bis 10.000 €: Freigabe durch den Einkaufsleiter.
    • Über 10.000 €: Freigabe durch den Finanzvorstand (CFO).
  • Über die Capability cap:purchasing.purchase_order.approve erteilt der Vorgesetzte die digitale Signatur.

4. Verbindliche Bestellung (Purchase Order - PO) & Übermittlung

  • Nach Freigabe wandelt das System die Anforderung in eine offizielle Bestellung (cap:purchasing.purchase_order.create).
  • Der Beleg wird mit Bestellnummer, Lieferanschrift, gewünschtem Liefertermin und Preisen erzeugt und automatisiert per E-Mail, EDIFACT ORDERS oder Lieferantenportal übermittelt (cap:purchasing.purchase_order.send).
  • Bestellbestätigung (AB): Trifft die Bestätigung des Lieferanten ein, erfasst der Sachbearbeiter eventuelle Abweichungen (z.B. geänderter Liefertermin oder Teilmengen) direkt an der Bestellzeile.

5. Lieferterminüberwachung & Mahnwesen (Expediting)

  • Das System überwacht kontinuierlich zugesagte Liefertermine.
  • Droht ein Lieferverzug, erzeugt das Modul automatische Erinnerungen oder Liefermahnungen (cap:purchasing.purchase_order.send_reminder).
  • Bei kritischen Komponenten für die Fertigung wird der Produktionsdisponent über drohende Verzögerungen alarmiert, um den Produktionsplan anzupassen.

6. Wareneingang & Qualitätskontrolle (Goods Receipt)

  • Die Lieferung trifft am Wareneingang ein. Der Lagermitarbeiter identifiziert die Sendung anhand der Bestellnummer oder des Lieferscheins.
  • Über cap:inventory.goods_receipt.create wird die Ware vereinnahmt. Das System vergleicht bestellte Menge gegen gelieferte Menge.
  • Bei Mengendifferenzen bleibt die Bestellung teiloffen; bei Falschlieferung oder Qualitätsmängeln wird eine Reklamation ausgelöst (returns) und die Ware auf das Quarantänelager gebucht.

7. Der revisionssichere 3-Wege-Abgleich (3-Way Matching)

Trifft die Lieferantenrechnung ein, verhindert Centurio ERP Überzahlungen und Fehlbuchungen:

  • Der 3-Wege-Abgleich vergleicht automatisch:
    1. Den genehmigten Preis und die Menge der Bestellung (PO).
    2. Die tatsächlich quittierte Menge des Wareneingangsbelegs.
    3. Die berechneten Preise und Mengen der Eingangsrechnung.
  • Liegen alle Werte innerhalb der Toleranz (z.B. Cent-Rundungsdifferenzen), wird die Rechnung automatisch zur Zahlung freigegeben (cap:invoices.incoming_invoice.approve_for_payment).
  • Treten Abweichungen auf (z.B. Rechnungspreis höher als bestellt), wird die Rechnung gesperrt und dem Einkäufer zur Klärung vorgelegt.

8. Abschluss & Kreditorenbuchung

Nach erfolgreichem 3-Wege-Abgleich übergibt das Einkaufsmodul den Vorgang an die Finanzbuchhaltung: Der Aufwand wird verbucht, die Verbindlichkeit im Kreditoren-OP angelegt und nach Zahlungsziel skontiert beglichen.

🏛️

Meta-Fachlogik: Ideologische Blaupause, Soll-Weltbild & Normen

Meta-Fachlogik: Die ideologische Blaupause & das normative Weltbild

Die Meta-Fachlogik des Einkaufs basiert auf dem SCOR-Modell (sS1 Source Stocked Product), betriebswirtschaftlichen Grundsätzen der Compliance und gesetzlichen Vorgaben zur Funktionstrennung.

1. Compliance, Funktionstrennung & Betrugsprävention

  • Segregation of Duties (Funktionstrennung):
    • Niemand darf eine Bestellung anlegen, den Wareneingang quittieren und die Rechnung freigeben (Vermeidung von Scheinlieferungen und Veruntreuung).
    • Das Soll-Modell erzwingt die strikte personelle Trennung zwischen Bestellauslösung, physischer Warenannahme und Rechnungsfreigabe.
  • Lieferanten-Compliance & LkSG (Lieferkettensorgfaltspflichtengesetz):
    • Unternehmen müssen ihre Lieferanten hinsichtlich Umwelt- und Menschenrechtsstandards bewerten.
    • Das Soll-Modell verlangt die Erfassung von Nachhaltigkeitsnachweisen (z.B. ISO 14001, CSR-Berichte) direkt am Lieferantenstamm.

2. Kaufmännische Prinzipien

  • TCO (Total Cost of Ownership): Die Beschaffungsentscheidung basiert nicht allein auf dem Stückpreis, sondern bezieht Frachtkosten, Verpackung, Zölle, Zahlungsziele und Qualitätskosten (Ausschussrisiko) mit ein.
  • Skonto-Optimierung: Zahlungsziele werden so ausgesteuert, dass Skontofristen (z.B. 2% Skonto innerhalb von 10 Tagen) durch schnelle Rechnungsdurchlaufzeiten voll ausgenutzt werden, da der Skontoertrag auf das Jahr hochgerechnet einer Spitzenrendite entspricht.

3. Invarianten des Soll-Modells

  1. Keine Bestellung ohne dokumentierte Genehmigung ab Überschreitung der Wertgrenze.
  2. Keine Rechnungsfreigabe ohne nachgewiesenen Wareneingang (außer bei expliziter Vorkasse).
  3. Keine nachträgliche Erhöhung der Bestellpreise nach Übermittlung an den Lieferanten ohne Revisionsbeleg.
  4. Jede Preis- oder Mengenabweichung im 3-Wege-Abgleich oberhalb der Toleranz erfordert eine begründete Freigabe.

Normbezug für purchasing

Prüfkatalog Standards-Registry v2026.10.1. Dieser Abschnitt ordnet Prüfreferenzen zu und stellt nicht fest, dass das Modul eine Norm einhält; keine Kataloganforderung ist als PASS bewertet.

Geführte Prüfreferenzen:

  • scor-ds-14.0, SCOR Digital Standard (SCOR-DS) Version 14.0, Ausgabe SCOR-DS 14.0 (2025). Art: reference_process. Lizenz schließt eine inhaltliche Nutzung aus. Keine modulspezifische Kataloganforderung. Die Zuordnung bleibt eine Prüfreferenz.
  • de-gobd-2025, GoBD – Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff, Ausgabe GoBD, Fassung 2019-11-28, geändert 2024-03-11 und 2025-07-14. Art: guidance. Nur öffentliche Zusammenfassung. Keine Volltextprüfung. Kataloganforderungen: gobd-traceability, gobd-immutability, gobd-procedure-documentation, gobd-data-access. Katalogstatus: NOT_ASSESSED.
  • de-ao-145-147, Abgabenordnung (AO) §§ 145–147, Ausgabe AO §§ 145–147, geltende Fassung (Stand 2026-10-25). Art: regulatory. Öffentlicher Text. Die Nennung ist keine Klauselprüfung. Kataloganforderungen: ao-record-keeping, ao-orderliness, ao-retention. Katalogstatus: NOT_ASSESSED.

Plattformweite Katalogwerke mit Geltungsbereich all (unter anderem WCAG 2.2, EN 301 549 V4.1.1, ISO 9241-110:2020, ISO 9241-210:2019, ISO/IEC 25010:2023, ISO 9001:2026, ISO/IEC 27001:2022, APQC PCF 8.0, DSGVO, EU AI Act) umfassen dieses Modul mit. Wo der Volltext fehlt, bleibt der Zugang ohne Quelle, lizenzpflichtig oder nur als öffentliche Zusammenfassung gekennzeichnet. Auch diese Nennung weist keine eingehaltene Vorgabe nach.

⚙️

Systemische Fachlogik: Faktische Umsetzung in Centurio ERP & Capabilities

Systemische Fachlogik: Die faktische Umsetzung in Centurio ERP

Die System-Fachlogik dokumentiert die konkrete Umsetzung im Modul purchasing.

1. Datenmodelle & Semantische Schicht (ORM)

  • PurchaseOrder: Bestellkopf (Felder: id, tenant_id, po_number, supplier_id, status, order_date, expected_delivery_date, total_net_amount, total_tax_amount, currency, payment_term_id, incoterms).
  • PurchaseOrderLine: Bestellzeilen (Felder: purchase_order_id, product_id, ordered_quantity, received_quantity, invoiced_quantity, unit_price, status).
  • PurchaseRequest: Interne Bedarfsanforderung (BANF) aus Werkstatt oder MRP.
  • PurchaseApproval: Autorisierungsnachweis mit Freigabestufe und Zeitstempel.

2. Das Capability-Register

  • cap:purchasing.purchase_request.create: Anlage einer Bedarfsanforderung.
  • cap:purchasing.purchase_request.create_from_mrp: Automatisches Bündeln von Fertigungsfehlteilen in BANFs.
  • cap:purchasing.purchase_order.create: Erzeugung einer Einkaufsbestellung aus einer BANF oder manuell.
  • cap:purchasing.purchase_order.approve: Wertgrenzen-Freigabe durch Einkaufsleiter oder Geschäftsführung.
  • cap:purchasing.purchase_order.send: Versand der Bestellung an den Lieferanten (PDF/EDI).
  • cap:purchasing.purchase_order.record_order_ack: Erfassung der Lieferanten-Auftragsbestätigung.
  • cap:purchasing.purchase_order.send_reminder: Generierung einer Liefermahnung bei Verzug.
  • cap:purchasing.purchase_order.match_three_way: Ausführung des automatischen 3-Wege-Abgleichs.

3. Der Gateway gw:procure_to_pay_approval@v1

Der Bestell-Gateway sichert die Verbindlichkeit ab:

  1. Prüfung: Prüft Wertgrenzen gegen die Benutzerrolle und verifiziert, ob der Lieferant aktiv und nicht gesperrt ist.
  2. Freigabe: Bei Überschreitung der Zeichnungsbefugnis wird eine Genehmigungsaufgabe erzeugt; andernfalls wird die Freigabe sofort erteilt.
  3. Statuswechsel: PurchaseOrder.status = 'approved'.
  4. Outbox-Signal: Feuert PURCHASE_ORDER_APPROVED.

4. Statusmodelle

draft (Entwurf) ➔ waiting_approval (Genehmigung erforderlich) ➔ approved (Freigegeben) ➔ sent (Bestellt) ➔ partially_received (Teilgeliefert) ➔ received (Vollständig geliefert) ➔ matched (3-Wege-Abgleich OK) ➔ completed (Abgeschlossen) oder cancelled (Storniert).

🤖

KI-Consultant Leitfaden: Customizing- & No-Code-Konzept (Soll-Ist-Synthese)

AI Solution Architect Blueprint

KI-Consultant Blueprint: Customizing & No-Code Architektur

Anleitung für Solution Architects zur individuellen Einkaufskonfiguration.

1. Kundenanforderungsanalyse

  • Wie lautet die unternehmensspezifische Zeichnungsberechtigungs-Matrix (Wertgrenzen je Hierarchiestufe)?
  • Werden automatische Nachbestellungen ohne menschliche Freigabe für C-Artikel (z.B. Schrauben, Kartonagen) gewünscht?
  • Welche Toleranzgrenzen gelten für Preisabweichungen beim 3-Wege-Abgleich (z.B. max. 2 € oder max. 1%)?

2. No-Code Zusatzfelder (Custom Fields)

Im No-Code Studio (/semantic/customizing):

  • Auf PurchaseOrder:
    • budget_center_code (Text): Zuordnung zum Kostenstellen-Budget.
    • lksg_risk_acknowledged (Checkbox): Bestätigung der Einhaltung des Lieferkettengesetzes.
    • customs_tariff_group (Text): Zollwarengruppe bei Importen aus Drittländern.
  • Auf PurchaseOrderLine:
    • cost_allocation_project_id (Text): Weiterbelastung der Materialkosten an ein Kundenprojekt.
    • supplier_packaging_unit (Dezimal): Gebindegröße des Lieferanten (z.B. VPE 50 Stk.).

3. No-Code Workflow Canvas DAGs

Blueprint A: Mehrstufige Einkaufs-Wertgrenzenfreigabe (PO Approval DAG)
  • Trigger-Node: PurchaseOrder wechselt auf waiting_approval.
  • Condition-Node 1: po.total_net_amount <= 2500.
    • Action 1: Automatische Freigabe durch System oder Zuweisung an Teamleiter.
  • Condition-Node 2: po.total_net_amount > 2500 AND po.total_net_amount <= 25000.
    • Action 2: Genehmigungsaufgabe an Einkaufsleiter.
  • Condition-Node 3: po.total_net_amount > 25000.
    • Action 3: Genehmigungsaufgabe an Geschäftsführung (CFO).
Blueprint B: Automatisches Lieferanten-Mahnwesen (Supplier Expediting DAG)
  • Trigger-Node: Scheduled Cron (0 7 * * 1-5) – Täglicher Scan.
  • Condition-Node: po.status == 'sent' AND po.expected_delivery_date < current_date AND po.received_quantity < po.ordered_quantity.
  • Action-Node: Generiere Liefermahnung Stufe 1 per E-Mail an Lieferanten und setze Wiedervorlage auf +3 Tage.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

Zentrale Fachbegriffe im Prozesszusammenhang (Operatives Modell)
Bedarfsanforderung (BANF)
Interner Antrag zur Beschaffung von Materialien oder Fremddienstleistungen.
3-Wege-Abgleich (Three-Way Match)
Automatisierter Vergleich zwischen Bestellung, Wareneingang und Eingangsrechnung.
RFQ (Request for Quotation)
Ausschreibung oder Angebotsanfrage an Lieferanten zum Preis- und Konditionenvergleich.
Lieferantenbewertung
Objektive Messung von Termintreue, Mengentreue und Qualitätsquote vergangener Lieferungen.
Wertgrenzen-Matrix
Organisatorische Vorgabe von Zeichnungsbefugnissen je Mitarbeiter- und Führungsebene.
Liefermahnung (Expediting)
Schriftliche Aufforderung zur Erfüllung bei drohendem oder eingetretenem Lieferverzug.
Rahmenkontrakt
Langfristige Vereinbarung über Abnahmemengen und Festpreise mit periodischen Lieferabrufen.
📥 Eingänge & Trigger (Inputs)
  • Materialbedarfsanforderungen aus der MRP-Planung der Fertigung
  • LVS-Meldebestandsunterschreitungen aus dem Lager
  • Manuelle Bestellanforderungen von Kostenstellen und Fachbereichen
  • Ersatzteilbedarfe aus Wartungs- und Außendienstaufträgen
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Verbindliche Einkaufsbestellungen (PDF/EDI) an Lieferanten
  • Lieferantenanfragen (RFQ) mit Vergleichs-Preisspiegeln
  • Wareneingangsavis für die Lagerlogistik
  • Rechnungsfreigaben nach 3-Wege-Abgleich für die Kreditorenbuchhaltung
  • Lieferantenbewertungs-Reports für das strategische Einkaufscontrolling
⚡ Kaskaden & Folgeprozesse (Cascades)
  • purchase_order_sent -> expect_goods_receipt: Bereitstellung des Avis im Lager
  • goods_receipt_confirmed -> trigger_invoice_matching: Prüfung wartender Eingangsrechnungen
  • matching_approved -> release_payment_order: Zahlungsfreigabe in der Buchhaltung
  • delivery_delayed -> alert_production_planner: Warnung bei Materialengpässen
🛡️ Nebenprozesse & Resilienz
  • Mängelrüge und Rücksendung bei schadhaftem Wareneingang
  • Klärung von Preisabweichungen zwischen Bestellung und Lieferantenrechnung
  • Verwaltung von Lieferanten-Rahmenverträgen und periodischen Abrufen
  • Zollabfertigung und Importabwicklung bei Beschaffung im Drittland
💡 No-Code Checkliste & Praxistipps
  • Wertgrenzen für Freigaben je Kostenstelle und Benutzerrolle festlegen
  • Lieferanten-Zahlungsbedingungen und Standard-Skontosätze pflegen
  • Toleranzgrenzen für Cent- und Prozentabweichungen beim 3-Wege-Abgleich einstellen
  • No-Code Zusatzfelder für Budgetcodes und Lieferkettengesetz auf PurchaseOrder anlegen

🗄️ Data Models & Fields

ProcurementNeeds procurement_needs RLS Aktiv
24 Fields / Columns

Tabelle procurement_needs

Feldname Data Type Required Schlüssel Functional Meaning
run_id UUID Ja * FK ➔ procurement_runs.id Feld run_id
rule_id UUID Ja * FK ➔ reordering_rules.id Feld rule_id
product_id UUID Ja * FK ➔ products.id Feld product_id
location_id UUID Nein FK ➔ locations.id Feld location_id
supplier_info_id UUID Nein FK ➔ product_supplierinfo.id Feld supplier_info_id
physical_quantity NUMERIC(14, 4) Ja * - Feld physical_quantity
reserved_quantity NUMERIC(14, 4) Ja * - Feld reserved_quantity
incoming_quantity NUMERIC(14, 4) Ja * - Feld incoming_quantity
forecast_quantity NUMERIC(14, 4) Ja * - Feld forecast_quantity
requested_quantity NUMERIC(14, 4) Ja * - Feld requested_quantity
ordered_quantity NUMERIC(14, 4) Ja * - Feld ordered_quantity
status VARCHAR(48) Ja * - Feld status
purchase_id UUID Nein FK ➔ purchases.id Feld purchase_id
purchase_item_id UUID Nein FK ➔ purchase_items.id Feld purchase_item_id
explanation TEXT Ja * - Feld explanation
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
ProcurementRuns procurement_runs RLS Aktiv
16 Fields / Columns

Tabelle procurement_runs

Feldname Data Type Required Schlüssel Functional Meaning
status VARCHAR(48) Ja * - Feld status
trigger VARCHAR(32) Ja * - Feld trigger
started_at DATETIME Ja * - Feld started_at
finished_at DATETIME Nein - Feld finished_at
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
summary JSONB Ja * - Feld summary
error_message TEXT Nein - Feld error_message
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

🔌 Entry Points (UI & APIs)

Art Method Endpoint / Path Titel & Zweck Required Role
⚡ REST API DELETE /api/v1/purchasing/procurement/rules/{rule_id}
delete_reordering_rule
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API GET /api/v1/dropshipping
list_lines
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/dropshipping/meta
meta
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/goods-receipts
list_receipts
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/goods-receipts/{receipt_id}
get_receipt
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/goods-receipts/{receipt_id}/labels.pdf
goods_receipt_labels_pdf
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/goods-receipts/{receipt_id}/landed-costs
list_landed_costs
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/procurement/rules
list_reordering_rules
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/procurement/runs
list_procurement_runs
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/procurement/runs/{run_id}/needs
list_procurement_needs
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/purchases
list_purchases
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/purchases/open
list_open_purchases
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/purchases/{purchase_id}
get_purchase
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/purchases/{purchase_id}/matching
get_purchase_matching
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/purchases/{purchase_id}/pdf
get_purchase_pdf
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/reports/supplier-scorecard
supplier_scorecard_report
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/requisitions
list_purchase_requisitions
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/requisitions/{requisition_id}
get_purchase_requisition
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/rfqs
list_rfqs
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/rfqs/{rfq_id}
get_rfq
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/rfqs/{rfq_id}/compare
compare_rfq_quotes
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/settings
get_purchasing_settings
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/supplier-portal/purchases
list_purchases
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /api/v1/purchasing/supplier-portal/rfqs
list_rfqs
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /dropshipping
dropshipping_page
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing
purchasing_page
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/new
purchase_create_page
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/orders/{purchase_id}
purchase_order_detail_page
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/receipts/{receipt_id}
goods_receipt_detail_page
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/tab/procurement
purchasing_tab_procurement
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/tab/purchases
purchasing_tab_purchases
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/tab/receipts
purchasing_tab_receipts
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/{purchase_id}
purchase_order_detail_page
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API GET /purchasing/{purchase_id}/pdf
purchase_order_pdf_view
Semantic binding: inventory_only; mutation=False
purchasing
⚡ REST API PATCH /api/v1/purchasing/goods-receipts/{receipt_id}
update_receipt_draft
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API PATCH /api/v1/purchasing/goods-receipts/{receipt_id}/items/{item_id}/tracking
update_receipt_item_tracking
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API PATCH /api/v1/purchasing/procurement/rules/{rule_id}
update_reordering_rule
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/quotes/{quote_id}/create
create_for_quote
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/{line_id}/cancel
cancel
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/{line_id}/delivered
delivered
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/{line_id}/issue
issue
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/{line_id}/release-billing
release_billing
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/{line_id}/supplier
assign_supplier
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/dropshipping/{line_id}/tracking
tracking
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/goods-receipts
create_receipt
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/goods-receipts/{receipt_id}/landed-costs
create_landed_cost
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/goods-receipts/{receipt_id}/post
post_receipt
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/goods-receipts/{receipt_id}/print-labels
print_goods_receipt_labels
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/procurement/rules
create_reordering_rule
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/procurement/run
run_procurement
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases
create_purchase
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/approve
approve_purchase
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/confirm-supplier
confirm_purchase_supplier
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/items
add_item_to_purchase
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/receive
quick_receive_purchase
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/send
send_purchase
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/send-email
send_purchase_email
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/purchases/{purchase_id}/tax-context
confirm_purchase_tax_context
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/requisitions
create_purchase_requisition
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/requisitions/{requisition_id}/approve
approve_purchase_requisition
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/requisitions/{requisition_id}/convert-to-purchase
convert_purchase_requisition
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/requisitions/{requisition_id}/reject
reject_purchase_requisition
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/requisitions/{requisition_id}/submit
submit_purchase_requisition
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/rfqs
create_rfq
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/rfqs/{rfq_id}/quotes
record_supplier_quote
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/rfqs/{rfq_id}/quotes/{quote_id}/purchase
create_purchase_from_quote
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/rfqs/{rfq_id}/suppliers
add_rfq_supplier
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/supplier-portal/invoices
upload_invoice
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/supplier-portal/rfqs/{rfq_id}/respond
respond_rfq
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing/supplier-portal/suppliers/{supplier_id}/access-token
issue_access_token
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /purchasing/settings/grouping
web_update_purchasing_grouping
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API PUT /api/v1/purchasing/settings
update_purchasing_settings
Semantic binding: operator_surface; mutation=True
purchasing
⚡ REST API POST /api/v1/purchasing
Bestellung anlegen
Erzeugt neue Einkaufsbestellung
purchasing:write

🛡️ Regulatory & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • GoBD Nachvollziehbarkeit
  • HGB §377 (Rügepflicht bei Wareneingang)
Related Modules:
➔ suppliers ➔ inventory ➔ dropship ➔ crossdock