99 lines
2.3 KiB
Markdown
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.
|