Files
ImportAssist/README.md
T

99 lines
2.3 KiB
Markdown

# ImportAssist
Eigenprojekt zur Weiterbildung in C#, Azure und KI-Integration.
ImportAssist prüft synthetische Rechnungsdaten. Die lokale
Verarbeitung läuft über eine Konsole, einen HTTP-Endpunkt
oder einen Blob-Trigger mit Azurite.
## Voraussetzungen
- .NET-10-SDK gemäß global.json
- Azure Functions Core Tools 4
- Azurite
- Unter Arch Linux: aspnet-targeting-pack
Alle folgenden relativen Pfade beziehen sich auf das Repository.
## Lokal starten
Terminal 1 — Azurite:
```bash
"$HOME/.local/bin/azurite" \
--location "$HOME/.local/share/ImportAssist/azurite"
```
Terminal 2 — Functions-Host:
```bash
cd src/ImportAssist.Functions
func start
```
In local.settings.json werden folgende Values benötigt:
```json
{
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
}
```
## CSV prüfen
Direkt über die Konsole:
```bash
dotnet run --project src/ImportAssist.Cli -- samples/invoices.csv
```
Über einen Blob-Upload:
```bash
dotnet run --project tools/ImportAssist.Upload -- samples/invoices.csv
```
Nach abgeschlossener Verarbeitung den Bericht lesen.
BLOBNAME.csv durch den Namen aus der Upload-Ausgabe ersetzen:
```bash
dotnet run --project tools/ImportAssist.Upload -- result "BLOBNAME.csv"
```
Eingaben liegen im Container imports, Berichte in results.
## CSV-Format
- Kopfzeile: InvoiceId;CustomerId;Amount;Currency
- Vier durch Semikolon getrennte Felder pro Zeile
- Keine Anführungszeichen oder Zeilenumbrüche innerhalb eines Feldes
- Beträge mit Dezimalpunkt, ohne Tausendertrennzeichen
Prüfregeln: Rechnungsnummer und Kundennummer müssen vorhanden
sein; der Betrag muss eine gültige positive Zahl sein.
Die Währung wird bislang nicht fachlich geprüft.
## Prüfberichte
- Completed: Alle Zeilen wurden fachlich geprüft.
Einzelne Rechnungen können fehlerhaft sein.
- Rejected: CSV-Struktur ungültig; keine fachliche Prüfung.
Die Ursache steht in fileErrors.
samples/invoices.csv ergibt eine gültige und vier fehlerhafte
Rechnungen.
samples/invoices-invalid-structure.csv wird wegen einer fehlenden
Spalte in Zeile 3 abgewiesen.
## Beenden
Functions-Host und Azurite jeweils mit Strg+C beenden.
Azurite speichert seine Daten im angegebenen lokalen Verzeichnis.
## Aktueller Umfang
Lokaler Prototyp mit synthetischen Daten.
Cloud-Deployment und KI-Anbindung stehen noch aus.