ERP-04: Beleg-/Dokumentexport an ERP #237

Merged
patrick merged 1 commits from feature/erp-04-04-beleg-dokumentexport-an-erp into main 2026-09-28 02:39:42 +02:00
Owner

Zusammenfassung

  • ERP-04: Export von Belegen mit zugeordneten Metadaten an das ERP-System, aufbauend auf erpconnector (ERP-01) und fieldmapping (ENG-04).
  • Neues Paket connect/internal/erpexport: BuildPayload rendert Beleg-Metadaten über eine gespeicherte Feld-Mapping-Konfiguration; Store exportiert über erpconnector.Client.Write, mit Exponential-Backoff-Retry und Deduplizierung je Beleg (UNIQUE (tenant_slug, connector_instance_id, beleg_id)).
  • Kleine Erweiterung von erpconnector.Write: 401/403 werden zusätzlich als ErrPermanent klassifiziert (fuer Retry-Klassifizierung), keine Verhaltensänderung für bestehende Aufrufer.
  • Migration connect/migrations/0010_erp_exports.{up,down}.sql.

Einschränkung

Kein reales ERP-System verfügbar — Tests laufen gegen einen In-Prozess-Referenzserver (wie bei M365-01/DMS2-03), dokumentiert in connect/docs/ERP-04-PRUEFPROTOKOLL.md.

Prüfungen (siehe connect/docs/ERP-04-PRUEFPROTOKOLL.md)

  1. Testbeleg im ERP nach Export mit korrekten Metadaten auffindbar — PASS (TestStore_Start_SuccessWithCorrectMetadata)
  2. Simulierter Exportfehler löst Retry aus — PASS (TestStore_Start_TransientFailureSchedulesRetryThenSucceeds, TestStore_Start_PermanentFailureDoesNotRetry)
  3. Doppelversand im Test ausgeschlossen — PASS (TestStore_Start_AlreadyExportedBelegNotSentTwice)

Test plan

  • go build ./... (Modul connect/)
  • go vet ./... (Modul connect/)
  • go test ./internal/erpexport/... ./internal/erpconnector/... — alle Tests PASS

🤖 Generated with Claude Code

## Zusammenfassung - ERP-04: Export von Belegen mit zugeordneten Metadaten an das ERP-System, aufbauend auf `erpconnector` (ERP-01) und `fieldmapping` (ENG-04). - Neues Paket `connect/internal/erpexport`: `BuildPayload` rendert Beleg-Metadaten über eine gespeicherte Feld-Mapping-Konfiguration; `Store` exportiert über `erpconnector.Client.Write`, mit Exponential-Backoff-Retry und Deduplizierung je Beleg (`UNIQUE (tenant_slug, connector_instance_id, beleg_id)`). - Kleine Erweiterung von `erpconnector.Write`: 401/403 werden zusätzlich als `ErrPermanent` klassifiziert (fuer Retry-Klassifizierung), keine Verhaltensänderung für bestehende Aufrufer. - Migration `connect/migrations/0010_erp_exports.{up,down}.sql`. ## Einschränkung Kein reales ERP-System verfügbar — Tests laufen gegen einen In-Prozess-Referenzserver (wie bei M365-01/DMS2-03), dokumentiert in `connect/docs/ERP-04-PRUEFPROTOKOLL.md`. ## Prüfungen (siehe connect/docs/ERP-04-PRUEFPROTOKOLL.md) 1. Testbeleg im ERP nach Export mit korrekten Metadaten auffindbar — PASS (`TestStore_Start_SuccessWithCorrectMetadata`) 2. Simulierter Exportfehler löst Retry aus — PASS (`TestStore_Start_TransientFailureSchedulesRetryThenSucceeds`, `TestStore_Start_PermanentFailureDoesNotRetry`) 3. Doppelversand im Test ausgeschlossen — PASS (`TestStore_Start_AlreadyExportedBelegNotSentTwice`) ## Test plan - [x] `go build ./...` (Modul `connect/`) - [x] `go vet ./...` (Modul `connect/`) - [x] `go test ./internal/erpexport/... ./internal/erpconnector/...` — alle Tests PASS 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-09-28 02:27:10 +02:00
ERP-04: 04 beleg dokumentexport an erp
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
2ce8102ab2
Export von Belegen mit Feld-Mapping-Metadaten an das ERP, mit
Retry-Backoff und Deduplizierung ueber die Beleg-ID (ERP-04).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick merged commit 28272b1835 into main 2026-09-28 02:39:42 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#237