Ein Kommandozeilentool, um in JTL-Wawi für Netto-Kunden individuelle Artikelpreise mit nur zwei Nachkommastellen zu erzeugen. Das Programm ist derzeit in einem frühen Alpha-Status, es gibt noch keine wirkliche Fehlerprüfung bzw. es werden auch keine Plausibilitätsprüfungen für die übergebenen Parameter vorgenommen.

 

Übersicht

  1. Generelles
  2. Programmparameter
  3. Beispiele
  4. Download
  5. Danke und Feedback

1. Generelles

Das Programm liest entweder eine übergebene .csv-Datei aus und erzeugt daraus eine entsprechende Ausgabedatei, oder es liest den letzten Artikel aus der Datenbank und erzeugt daraus eine entsprechende Ausgabedatei. Import und Export der Dateien erfolgt dann über die Ameise und entsprechende Vorlagen.

Die einzulesende .csv muss folgenden Vorgaben entsprechen:

  • die erste Spalte enthält immer den Schlüssel zur Identifizierung, dies kann bspw. der interne Schlüssel oder die Artikelnummer sein
  • es muss eine Spalte mit Eingangswerten und mindestens eine Spalte mit Individualwerten geben, diese werden jeweils durch entsprechende Parameter festgelegt
  • werden mehrere Spalten mit Individualwerten übergeben, so müssen diese aufeinanderfolgen
  • der Export der Zahlenwerte muss auf 4 Stellen nach dem Komma festgelegt sein
  • alle anderen Spalten werden ignoriert und nicht in die Ausgabedatei geschrieben
  • die Ausgabedatei wird entsprechend der Eingabedatei erzeugt

Wird der letzte Artikel der Datenbank gelesen, dann wird eine .csv erzeugt, welche folgende Vorgaben erfüllt:

  • die erste Spalte enthält den Schlüssel zur Identifizierung, es wird der Wert angenommen, welcher als Schlüsselspalte angegeben wurde (Standard ist kArtikel)
  • die zweite Spalte ist immer der Eingangswert
  • die dritte und folgende Spalten sind die gerundeten Individualpreise
  • es gibt keine Spaltenüberschrift und zwangsläufig nur eine Zeile

 

2. Programmparameter

Folgende Argumente nimmt das Programm entgegen:

-i=“Quelldatei“
Legt den Pfad und den Namen zur einzulesenden Quelldatei fest. Diese muss als .csv vorliegen

-o=“Zieldatei“
Legt den Pfad und den Namen der Ausgabedatei fest. Es wird eine .csv erzeugt, existiert die Datei, dann wird diese überschrieben.

-m
Mathematisch statt kaufmännisch runden, Standard ist kaufmännisch runden.

-I=Zahl
Spaltennummer der Eingangswerte, wenn -I nicht gesetzt wird, dann ist dies 1

-O=Zahl
Spaltennummer des ersten Individualwertes, wenn -O nicht gesetzt wird, dann ist dies 2

-M=Zahl
Anzahl der Individualpreisspalten, falls die .csv mehrere Individualwerte enthält, wird bei -O beginnend gezählt

-k
Individualpreise, welche größer dem gesetzten Schwellenwert sind, behalten; nur in Verbindung mit -t möglich, wenn nicht gesetzt, dann ist dies nein

-t=Zahl
Schwelle des abweichenden Individualpreises in Cent, wenn nicht gesetzt, dann ist dies 1

-l=“Logdatei“
Legt den Pfad und den Namen der Logdatei fest, wenn gesetzt, dann werden die Ergebnisse zusätzlich in eine Logdatei geschrieben, existiert die Datei, dann wird diese überschrieben

-v
Ausgabe der Aktionen am Bildschirm, wenn -v nicht gesetzt ist, erfolgt keine Ausgabe

-d=“x“
Angabe des Spaltentrenners x, wenn dieser nicht gesetzt ist, dann ist dies „;“

-h
Erste Zeile enthält die Spaltenüberschriften, Standard wenn nicht gesetzt ist nein

-q
Text in Anführungsstrichen, Standard wenn nicht gesetzt ist nein

-a
Alles runden, Standard ist nein, dann werden nur Werte mit mehr als zwei Nachkommastellen gerundet, ignoriert wenn gesetzt die Angabe von -k

-L
den letzten Artikeleintrag der Datenbank ermitteln und dafür eine csv schreiben, erfordert die Angabe von -o, -s, -D, -u und -p, funktioniert nicht bei Variationsartikeln, es wird immer nur der letzte Eintrag genommen

-s=Server
Pfad zum Server, auf welchem die Datenbank liegt

-D=Datenbank
Angabe der zu verwendenden Datenbank

-u=Benutzer
Benutzername zur Datenbank, sollte ein Benutzer sein, welcher nur lesen darf

-p=Passwort
Passwort für den Benutzer

-c=Name
Name der Indexspalte, welche beim Erzeugen der .csv beim Aufruf des Parameters -L ausgelesen wird, Standard ist kArtikel

 

3. Beispiele

Ein einfaches Beispiel mit Ein- und Ausgabedatei und einer Individualpreisspalte, bei der alle Werte gerundet werden

B2B_Netto_Runder.exe -i=“\\Pfad_zur_Eingabedatei\Dateiname.csv“ -o=“\\Pfad_zur_Ausgabedatei\Dateiname.csv“ -a

 

Beim zweiten Beispiel werden alle Individualwerte, welche größer als die Differenz von Eingangswert und Schwellenwert sind, behalten. Der Schwellenwert ist dabei auf 10 ct gesetzt. Zusätzlich wird die Ausgabe am Bildschirm angezeigt.

B2B_Netto_Runder.exe -i=“\\Pfad_zur_Eingabedatei\Dateiname.csv“ -o=“\\Pfad_zur_Ausgabedatei\Dateiname.csv“ -k -t=10 -v

 

Beim dritten Beispiel wird der letzte Wert der Artikeldatenbank gelesen und es wird eine Ausgabedatei mit 3 Individualpreisspalten erzeugt. Zusätzlich wird eine andere Indexspalte aus der Datenbank gelesen und es wird eine Logdatei geschrieben.

B2B_Netto_Runder.exe -l=“\\Pfad_zur_Logdatei\Dateiname.txt“ -o=“\\Pfad_zur_Ausgabedatei\Dateiname.csv“ -M=3 -L -s=Server\SQL_Server_Instanz -D=Mandant_1 -u=sa -p=passwort -c=cArtNr

 

Damit das Ganze als Workflow lauffähig wird, muss es noch in eine Batch-Datei gepackt werden, welche die Daten als .csv per Ameise exportiert, verarbeitet und anschließend wieder importiert. (Beim letzten Beispiel entfällt natürlich der Export)

 

4. Download

Das Programm, welches mit VB.Net geschrieben wurde, kann hier heruntergeladen werden:

www.digitalcelluloid.de/B2B_Netto_Runder.zip

Die Funktion zum kaufmännischen Runden wurde von der Seite https://www.donkarl.com?FAQ2.1 übernommen. Das Copyright für die Funktion liegt bei Konrad Marfurt, Luke Chung und Karl Donaubauer. Bei Bedarf kann ich auf Anfrage auch gerne den Sourcecode zur Verfügung stellen.

 

5. Danke und Feedback

Das Tool ist ein privates Projekt, welches in meiner Freizeit entstanden ist. Danksagungen, Fragen, Feedback, Verbesserungsvorschläge etc. könnt ihr gerne an wawi@digitalcelluloid.de senden, ich versuche euch dann zeitnah zu antworten.