Files
Workflow/tasks/beleg_abgleich.md
T

40 lines
1.9 KiB
Markdown
Raw Normal View History

# `beleg_abgleich` — Felder zweier Datensätze vergleichen
**Zweck:** Automatischer Abgleich z. B. Bestellung ↔ Rechnung („Dunkelverarbeitung"): Stimmen alle Vergleichsfelder innerhalb der Toleranz, kann der Workflow direkt weiter (z. B. Zahlungsfreigabe); Abweichungen landen strukturiert im Kontext für eine manuelle Klärung. Typische Quellen sind die `*_json`-Ausgaben von `ki_dok_extrakt`.
**Parameter**
| Name | Pflicht? | Default | Beschreibung |
|---|---|---|---|
| `a` | **ja** | — | JSON-Objekt A |
| `b` | **ja** | — | JSON-Objekt B |
| `vergleich` (`feld`) | **ja** | — | Zu vergleichendes Feld (gleicher Name in A und B); wiederholbar |
| `vergleich` (`feld_a`/`feld_b`) | nein | — | Alternativ unterschiedliche Feldnamen in A und B |
| `vergleich` (`toleranz`) | nein | *(exakt)* | Toleranz absolut (`0.5`) oder relativ (`2%`); ohne Angabe exakter String-Vergleich (case-insensitiv) |
| `output_var` | nein | `abgleich` | Prefix der Ausgabevariablen |
**Eingangswerte:** Die JSON-Objekte unter `<a>` und `<b>` (Platzhalter erlaubt; einzelner `{{var}}` wird roh übernommen).
**Ausgangswerte:**
- `<prefix>_ok``"1"` wenn alle Vergleiche bestanden, sonst `"0"`
- `<prefix>_diff_json` — JSON-Liste der Abweichungen `[{feld, wert_a, wert_b, toleranz}]`
- `<prefix>_diff_text` — lesbare Abweichungsliste (für Mails)
**XML-Beispiel**
```xml
<task type="beleg_abgleich" id="dreiwege">
<config>
<a>{{bestellung_json}}</a>
<b>{{rechnung_json}}</b>
<vergleich feld="betrag_brutto" toleranz="2%"/>
<vergleich feld="positionen" toleranz="0"/>
<vergleich feld="lieferant"/>
<vergleich feld_a="re_betrag" feld_b="betrag" toleranz="1%"/>
<output_var>abgleich</output_var>
</config>
</task>
```
**Hinweis:** `<a>` und `<b>` müssen JSON-Objekte enthalten, sonst endet der Task mit Fehler. Die relative Toleranz bezieht sich auf den Wert aus A.