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