Document local setup and add malformed CSV sample
This commit is contained in:
1 parent
11e7f68304
commit
b9104e0632
2 files changed
+101
No files matched your search
@@ -0,0 +1,98 @@
|
|||||||
|
# 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.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
InvoiceId;CustomerId;Amount;Currency
|
||||||
|
INV-101;C-100;125.50;EUR
|
||||||
|
INV-102;C-200;89.00
|
||||||
|
Reference in new issue
Block a user