Format der Eingabedatei für Bestandsprognosen - Optimierungssoftware

Format der Eingabedatei für Bestandsprognosen


Home » Ressourcen » Hier

Zur Lieferung von Bestandsprognosen kann Lokad tabellarische Daten, die als Textdatei oder Excel-Blatt formatiert sind, importieren. Die Tabellen sollten sich an Lokads Richtlinien halten. Dateien sollten im Lokad-Konto gespeichert sein. In der Praxis unterstützt Lokad auch viele Apps von Drittanbietern und die von Lokad direkt aus den Apps autogenerierten Dateien. Doch wenn keine eingebaute Unterstützung vorhanden ist, müssen die Dateien für Lokad manuell erstellt werden. Auf dieser Seite werden die Angaben zum Format für die Bestandsprognosen erklärt.


Übersicht

Zur Erstellung eines Berichts benötigt Lokad mindestens zwei tabellarische Dateien:
  • Lokad_Items enthält eine Liste der SKU / Strichcodes / Referenzen / Produkte, die berechnet werden sollen.
  • Lokad_Orders enthält eine Liste der beobachteten Verkäufe / Bestellungen / Verbrauch, also des historischen Bedarfs.

Beide Dateien müssen tabellarische Daten enthalten: In der ersten Zeile befinden sich die Spaltenüberschriften, während die eigentlichen Daten in den nächsten Zeilen stehen. Lokad unterstützt die meisten Plain-Text-Formate wie CSV (Comma-separated values), TSV (Tab-separated values) oder sogar Microsoft Excel Blätter, wenn die Excel-Arbeitsmappe eine einfache tabellarische Form besitzt. Lokad versucht Dateien mit solchen Endungen zu laden .tsv .csv .xlsx .xls .txt. Außerdem lässt Lokad eine Reihe anderer Formate zu.

Außerdem kann auch eine optionale Datei, Lokad_Parts, bereitgestellt werden, in der eine Liste von Bausätzen / Paketen / Stücklisten / Bauteilen enthalten ist. Eine zusätzliche optionale Datei, Lokad_Settings, kann Überschreibungen der Bestandseinstellungen enthalten.

In den nächsten Absätzen erläutern wir die erwarteten Spaltennamen für Artikel und Bestellungen. Die meisten Softwares für Commerce Management können Flatfiles exportieren. Nur befolgen diese selten die Namensbedingungen für Spalten von Lokad. Beispielsweise ist es erforderlich, dass die Bestellmenge in Lokad als Quantity bezeichnet wird und sie in Ihrem System vielleicht als Qty erscheint. Um dieses Problem zu lösen, können Sie ein Envision-Skript nutzen, um Ihre Flatfiles aufzubereiten und die notwendigen Veränderungen vorzunehmen.

Beispieldateien

Download sample files

Der Inhalt der Musterdatei Lokad_Items.tsv sieht wie folgt aus:

Id	LabelName	ServiceLevel	LeadTime	StockOnHand	StockOnOrder	
1	Candy Canes 200g	0.95	3	181	80
2	Orange Stick Candy 100g	0.95	3	400	200
3	Lemon Saf-T-Pops 200g	0.95	3	222	200
4	Caramel Squares 500g	0.95	3	121	50
5	Orange Sweethearts 100g	0.9	7	1498	680

Sie können weitere Namen- und Kennzeichnungsspalten in der Datei hinzufügen, wie im Anschluss erklärt wird.

Der Inhalt der Musterdatei Lokad_Orders.tsv sieht so aus:

Id	Date	Quantity
1	2013-07-01	174
1	2013-07-02	96
1	2013-07-03	271
1	2013-07-04	335
1	2013-07-06	72

Regeln zur Dateibenennung

Lokad versucht die im Eingabeordner (der über die Projektkonfiguration eingestellt werden kann) bestehenden Dateien nach gewissen Regeln bezüglich des Dateinamens zu importieren. Genauer versucht Lokad, jegliche Dateien, deren Namen mit Lokad_Items, oder Lokad_Orders, oder Lokad_Parts oder Lokad_Settings beginnen, zu importieren. Dann muss es sich um eine Dateiendung handeln, die unterstützt wird, wie .tsv, .csv, .txt, .xlsx, oder .xls. Die Dateiendung darf auch .g enthalten, wenn die Datei gezippt wurde (lesen Sie dafür den Abschnitt Umgang mit großen Dateien).

Flatfile Maskierung

Wenn Dateien über ein Tool zum Datenimport wie Sync erstellt werden, möchte man in manchen Fällen den Inhalt einer bestimmten Datei überschreiben. Diese Änderungen manuell vorzunehmen scheint keine praktische Lösung zu sein, da die Datei mit der nächsten Aktualisierung vermutlich neu erstellt wird und die vorgenommen Veränderungen überschrieben wird. Daher wird von Lokad ein Feature namens file masking unterstützt, das die Möglichkeit bietet, die Ausgangsdateien eines Tools zum Datenimport dauerhaft zu formatieren.

Wir beziehen uns mit dem Grundnamen auf den Dateinamen ohne seine Endungszusatz (z.B. Lokad_Items für Lokad_Items.tsv). Immer wenn zwei Dateien erkannt werden, die sich nur im Grundnamen unterscheidet, lädt Lokad, wenn eine der beiden Dateien eine Excel-Datei ist, nur die Excel-Datei, während es die andere Datei ignoriert. Das Excel-Blatt maskiert sein Flatfile Pendant.

Tipp: Sollten Sie ein bestimmtes Flatfile maskieren wollen, gehen Sie auf das Tab Files in ihrem Lokad-Konto und greifen Sie auf den Ordner zu. Klicken Sie auf die gewünschte Datei und wählen Sie Download as Excel. Dieses Excel-Blatt können Sie, solange das tabellarische Format beibehalten wird, verändern. Anschließend können Sie das Excel-Blatt erneut auf Lokad, in denselben Ordner, hochladen. Somit maskiert Ihr bearbeitetes Excel-Blatt das originale Flatfile.

Felder in Lokad_Items

Die Datei Lokad_Items enthält die Liste der Artikel, für die eine Prognose erwünscht ist. Gibt es 3 Geschäfte, die einer Prognose bedürfen, mit 1000 Referenzen pro Geschäft, sollte die Datei 3x1000=3000 Zeilen enthalten.

Lokad_Items
IdString erforderlich Die Bezeichnung des Artikels (die historischen Bedarfsdaten werden im Zusammenhang mit dieser Bezeichnung aggregiert. Jede Zeile sollte eine einmalige Bezeichnung besitzen.
LabelFooString optional Eigenschaft, die im Excel-Bericht erscheinen soll. Sehen Sie die Label-Felder weiter unten.
TagFooString optional Eigenschaften des Produkts, die vom Prognose-Engine benutzt werden, um die Genauigkeit der Prognose zu steigern. Sehen Sie Tag-Felder weiter unten.
TagLabelFooString optional Eigenschaft die sich sowohl als Label als auch als Tag verhält.
StockOnHandnumerisch optional Die Anzahl an Artikel, die physisch vorhanden sind. Wenn dieser Wert nicht gegeben wird, können weder StockOnHand noch StockAvailable berechnet werden. Dieses Feld wird praktisch ignoriert, wenn StockAvailable gegeben ist. Doch in der Praxis ist es trotzdem wichtig, dieses Feld einzufügen, da nur diese Menge mit der „wahren“ vorhandenen Bestandsmenge verglichen werden kann.
StockAvailablenumerisch optional Die Anzahl der Artikel, die zur Nutzung verfügbar sind. Im Gegensatz zu StockOnHand werden bei dieser Menge Einheiten berücksichtigt, die bereits verkauft wurden, aber noch nicht entnommen wurden und daher nicht mehr verfügbar sind. Wenn weder StockOnHand noch StockAvailable eingegeben werden, kann keine optimierte Nachbestellmenge berechnet.
StockOnOrdernumerisch optional Die Anzahl an bereits nachbestellten Mengen, die noch nicht vorhanden sind.
LeadTimeInteger optional Die Gesamtanzahl an Tagen, die durch den Bestand gedeckt sein müssen. Siehe auch unser Tutorial zu Durchlaufzeit. Ohne diesen Wert können weder Quantilprognosen noch Quantiltabellen berechnet werden.
LeadTime2Integer optional Nur für Quantiltabellen notwendig. Stellt eine alternative Durchlaufzeit dar, die eine alternative Quantiltabelle erhalten sollte. Wenn dies vorhanden ist, wird ein Feld namens Probability2 zur Ausgabedatei Lokad_Grid hinzugefügt.
LeadTime3Integer optional Wie LeadTime2, aber mit einem Feld Probability3 in der Ausgabedatei.
ServiceLevelnumerisch optional Die erwünschte Wahrscheinlichkeit, keine Fehlbestände zu erleiden. Dieser Wert sollte zwischen 0 und 1 liegen (ausschließlich). Sie auch unser Service-Level-Tutorial. Dieser Wert ist für Quantilprognosen, aber nicht für Quantiltabellen, eine Art gleichzeitiger Quantilprognose für alle möglichen Service Level, nötig.
LotMultiplierInteger optional Dieses Feld zeigt eine mögliche Bedingung bezüglich der Losgröße bei der Nachbestellung an. Dieses Feld wird nur bei Quantilprognosen benutzt. Es deutet die aufgerundete Nummer, die sich laut Lokads Empfehlung auf die Bestellmenge auswirken sollte. Wird das Feld freigelassen, ist der Standardwert 1. Z.B.: wenn LotMultiplier=10 dann schlägt Lokad für Nachbestellungen nur Vielfache von 10 vor, also 10, 20, 30, etc.

Diese Liste von Feldern, die als label oder tags behandelt werden können, kann jetzt auf der Einstellungsseite eines Prognoseprojekts eingestellt werden. Daher ist es nicht mehr notwendig, die Felder mit einem Präfix wie Tag oder Label zu versehen, was Sie über Lokads Benutzeroberfläche erledigen können.

Label-Felder

Jegliche Felder, die den Token Label als Präfix tragen, werden als zusätzliche Spalte in Lokad Excel-Bericht eingefügt. Enthält beispielsweise Ihre TSV-Datei ein Feld namens LabelProductName, ist im Bericht eine Spalte namens ProductName vorhanden (das Label Präfix wird dann vom Namen entfernt). Durch diese Konvertierung können uneingeschränkt beliebig viele zusätzliche Feldgruppen für die Berichterstattung eingeführt werden: Lieferant, Marke, ISBN, etc. Diese Felder werden lediglich angezeigt und haben keinen Einfluss auf die Prognostizierung selbst.

Tag-Felder

Felder, die das Token Tag als Präfix tragen, werden von Lokad zur Verbesserung der Genauigkeit der Prognose genutzt. Familie, Unterfamilie, Farbe, Größe, etc. sind klassische Beispiele für Tags. Das Feld für den Wert eines Tags kann auch leer sein, somit muss nicht immer ein Tag-Wert für jeden Artikel angegeben werden.
Sollten Sie das Verhalten von Tags und Labels in einem einzelnen Feld kombinieren wollen, muss die Spalte das Präfix TagLabel tragen.

Felder in Lokad_Orders

Die Datei Lokad_Orders enthält eine Liste aller Kundenbestellungen, die den Bestand in der Vergangenheit verbraucht haben. Zur besseren Genauigkeit wird empfohlen, tägliche aggregierte Daten bereitzustellen (statt wöchentlichen oder monatlichen). Es empfiehlt sich historische Daten aus den vergangenen 3 bis 5 Jahren zu nutzen, wenn diese vorhanden sind.

Lokad_Orders
IdString erforderlich Vergleicht das Feld Id in den Dateien von Lokad_Items (fremder Schlüssel).
Datedatetime erforderlich Das Datum bezieht sich auf die Bestellmenge.
QuantityInteger erforderlich Die Anzahl der bestellten Artikel.

Felder in Lokad_Parts

Manchmal entspricht die Granularität des Wareneingangs (erhaltene Güter) nicht genau mit der Granularität der Warenausgänge (gelieferte Güter) überein. Dies geschieht vor allem, wenn Bausätze, Pakete und Bauteile involviert sind, oder beispielsweise wenn es sich um Güter handelt, die aus Stücklisten bestehen. Wird z.B. ein Bausatz verkauft, wird entsprechend eine Zeile in Lokad_Orders gespeichert. Da aber die Bestandsoptimierung nicht auf Bausatzebene sondern auf eine Teilebene stattfindet, muss die Bausatzzeile in Lokad_Orders mit mehreren Zeilen, die den Teilen, aus denen der Bausatz besteht, entsprechen. Die Datei Lokad_Parts ist optional.

Lokad_Parts
BundleString erforderlich Der Artikel, der aus der Sicht der Bestandsoptimierung durch seine Teile ersetzt werden muss. Vergleicht das Id Feld der Dateien in Lokad_Items (fremder Schlüssel).
PartString erforderlich Vergleicht das Id Feld der Dateien in Lokad_Items (fremder Schlüssel).
QuantityInteger optional Die Anzahl der der Teile, aus denen ein Paket besteht. Wird das Feld ausgelassen, ist der Wert 1.

Rekursive Pakete, also Pakete aus Pakete werden von Lokad nicht unterstützt. Bitte beachten Sie, dass wenn eine zirkuläre Abhängigkeit festgestellt wird, der Datenimport von Lokad versagt.

Felder in Lokad_Settings

Die Datei Lokad_Settings wird hauptsächlich benutzt, wenn Lokad selbst die Datei Lokad_Items über eine unserer eingebauten Integrationen erstellt. In diesen Fällen, kann die Datei Lokad_Settings zur Überschreibung und/oder Vervollständigung der von Sync erhaltenen Daten genutzt werden. In der Praxis wird diese Datei genutzt, wenn Sie die Logik, mit der Lokad_Items generiert wird, kontrollieren. Doch zur kompletten Erläuterung erklären wir Lokad_Settings weiter unten.

Die Datei Lokad_Settings ist optional.

Lokad_Settings
IdString erforderlich Der Zielartikel, dessen Bestandseinstellung überschrieben werden. Vergleicht das Id Feld der Dateien in Lokad_Items (fremder Schlüssel).
ServiceLevelnumerisch optional Eine Gleitkommazahl zwischen null und eins (ausschließlich), die die erwünschte Wahrscheinlichkeit darstellt, dass keine Fehlbestände auftreten. Ist das Feld leer, bleibt der ursprüngliche Wert des Artikels erhalten.
LeadTimeInteger optional Ein Integer, der die Dauer in Tagen darstellt, die zur Berechnung der Bestandsprognose benötigt wird. Ist das Feld leer, bleibt der ursprüngliche Wert des Artikels erhalten.
LotMultiplierInteger optional Ein integer, der das für die Nachbestellmenge anwendbare Vielfache darstellt. Ist das Feld leer, bleibt der ursprüngliche Wert des Artikels erhalten.

Umbenennung von Spalten

Header müssen mit den oben beschriebenen Spaltenüberschriften übereinstimmen. Header, die nicht damit übereinstimmen, werden ignoriert. Sollten Ihre Dateien die richtige Spaltenüberschrift beinhalten, aber mit anderen Namen, kann Lokad sie für Sie umbenennen. Hierfür müssten Sie einen Envision-Skript erstellen.

Umgang mit großen Dateien

Sollten Sie sehr große Dateien haben, können Sie die Dateien komprimieren und/oder sie in mehrere Dateien teilen. Dies gilt für Lokad_Items und Lokad_Orders.

Komprimierung

Um Speicherplatz zu bewahren und die Übertragungsgeschwindigkeit zu erhören, können Sie die Dateien einzeln in Archive komprimieren. In diesem Fall:
  • MUSS jedes Archiv ausschließlich 1 Datei beinhalten.
  • Es muss eine Deflate Kompression benutzt werden (beispielsweise GZIP Einheiten).
  • Der Name des Archivs muss mit .gz enden (z.B.: Lokad_Orders.tsv.gz).

Splitten

Bei sehr großen Dateien, die nach der Komprimierung noch immer über 100MB groß sind, wird auch empfohlen, diese in verschiedene kleinere Dateien zu splitten. Durch das Splitten der Dateien können mehr Daten hochgeladen werden, aber es wird auch einfacher, das Hoch- und Herunterladen parallel laufen zu lassen. Der Name eines Flatfiles, das auf Lokad geladen wird, hat also 4 verschiedene Teile. Betrachten wir beispielsweise Lokad_Orders_20150131.tsv:

  1. Lokad: das Präfix, das die Befolgung von Lokads Richtlinien bestätigt.
  2. Orders: der mittlere Teil, der den Datentyp anzeigt; Items, also Artikel, Orders, Bestellungen, und Parts werden akzeptiert.
  3. 20150131: ein optionales zufälliges Suffix, für das Splitting.
  4. tsv: Die Endung für das Flatfile-Format, es werden tsv und csv unterstützt.

Alle Dateien, die sich nur im Suffix unterscheiden, werden von Lokad zusammengefügt. Das heißt, dass Lokad diese Dateien vereint, als wenn es sich nur um eine einzelne Datei handeln würde. Damit dies auch korrekt vorgeht, müssen alle Dateien die selben Spaltenüberschriften haben. Im oberen Beispiel haben wir ein kompaktes Datum benutzt, um den Suffix darzustellen, aber dieser kann durch jeden alphanumerischen String ersetzt werden. Es ist auch möglich das Splitten mit Komprimierung zu kombinieren. Zum Beispiel kann eine Reihe von Dateien wie Lokad_Orders_20150129.tsv.gz, Lokad_Orders_20150130.tsv.gz, Lokad_Orders_20150131.tsv.gz die täglichen Datenerweiterungen darstellen.

TSV als empfohlenes Format

Eine breite Auswahl an tabellarischen Formaten wie TSV, CSV, oder gar Microsoft Excel werden von Lokad unterstützt, sofern diese auch strickt tabellarisch sind. Bei Lokads Entwicklung wurde Flexibilität, was die Dateiformate betrifft, berücksichtigt, so dass Sie sich nicht viele Sorgen darüber machen müssen. Doch sollten Sie ein Software-Entwickler sein, empfehlen wir Ihnen, folgende Richtlinien zu beachten. Obwohl Lokad eine Vielzahl von Formaten richtig parsen kann, wird dies garantiert funktionieren, wenn Sie folgende Richtlinien beachten.

Lokad empfiehlt, das Format TSV (Tab-separated Values) zu benutzen. Obwohl das TSV-Format etwas veraltet ist, funktioniert es unglaublich gut für große Datensätze. TSV zeichnet sich durch folgendes aus:
  • Eine Datei mit in UTF8 kodierten Zeilen.
  • Jede Zeile enthält Felder, die durch Positionierungszeichen (horizontaler Tabulator, HT, ASCII-Wert 9) voneinander getrennt werden.
  • Jede Zeilenumbruch ist entweder mit einem \n (Zeilenvorschub, ASCII-WERT 10) oder \r\n (Wert 13 Wagenrücklauf und Zeilenvorschub) kodiert.
  • Feld bezieht sich hier auf ein String von Zeichen, außer Tabulatoren. Tatsächlich spaltet jeder Tabulator die Zeile in verschiedene Feldwerte.
  • Jede Zeile muss die gleiche Anzahl von Feldern beinhalten.
  • Der Name der Felder ist jeweils in der ersten Spalte enthalten, also in den Spaltenüberschriften.

Da Tabulatoren benutzt werden, um Felder voneinander zu trennen, darf kein Feld einen Tabulator enthalten. Dennoch kommt dies bei Daten, die Sie mit Tabulatoren versehen, selten vor, so dass die Einschränkung unbedeutend ist. Falls doch können Sie diese vor dem Export durch 4 Leerzeichen ersetzen
Sie finden eine ausführlichere Erklärung (mit einer Anleitung zum Export aus Excel) auf: Tab Separated Values (TSV): ein Format für den tabellarischen Datenaustausch

Zahlen und Datum

Gleitkommazahlen müssen einen . (Punkt) als Dezimaltrennzeichen enthalten. Andere Zeichen werden zur Trennung nicht zugelassen.

  • Richtig: 1234.00
  • Richtig: -12
  • Falsch: 1234,12
  • Falsch: 1.123,12
  • Falsch: 1,123.12

Das Datum sollte im folgenden Format angegeben werden JJJJ-MM-TT, wobei:

  • JJJJ – Das Jahr in 4 Zahlen
  • MM – Der Monat in 2 Zahlen
  • TT – Der Tag in 2 Zahlen

Zum Beispiel:

  • Richtig: 2012-09-18
  • Falsch: 2012-9-18
  • Falsch: 9-18-2012
  • Falsch: 18-9-2012