Ihr erstes Envision Skript - Software zur Bestandsoptimierung

Ihr erstes Envision Skript












Startseite » Ressourcen » Hier

Zur quantitativen Optimierung einer Lieferkette sind umfassende Datenverarbeitung und Datenvisualisierung nötig. Envision bietet beides und hier führen wir ein einfaches Skript ein, das zur praktischen Annäherung zu Envision dienen soll. Mit diesem Skript erstellen Sie ein Dashboard, das einige einfache deskriptive Statistiken zu den Daten zusammenfasst. Dieses Beispiel hilft Ihnen, sich mit den Schlüsselbegriffen von Envision anzuvertrauen.

Bearbeitung Ihres Ersten Skripts

Als erstes sollten Sie, falls Sie noch keines besitzen, ein Lokad-Konto eröffnen, das mit einer 30-tägige kostenlose Testversion kommt. Dieses Dataset stellt die historischen Daten eines kleinen fiktiven Einzelhändlers dar und dies sind die Daten, die wir im Folgenden benutzen werden. Am schnellsten fügen Sie diese Dateien Ihrem Lokad-Konto hinzu, indem Sie auf den Connect data source-Button klicken und das Beispiel-Dataset ganz oben in der Liste wählen. Wenn Sie die Datenquelle automatisch ausführen lassen, werden die Dateien ohne den Download-/Upload-Prozess in Ihr Konto kopiert.

Klicken Sie auf den Tab „Projects“, wenn Sie die Beispieldateien erfolgreich auf Ihr Konto geladen haben. Wenn Sie sich auf der Seite des Projekts befinden, klicken Sie unten auf den Link Create Envision script und wählen Sie einen Namen. Dann sollten Sie eine neue Seite sehen, die wie eine fast leere Seite aussieht. Diese Ansicht wird code editor genannt und sie erlaubt Ihnen, ein Envision Skript zu bearbeiten. Kopieren Sie den unten angeführten Code dort ein und klicken Sie dann rechts auf den grünen Button Start Run.
/// Das ist mein erstes Beispiel-Skript!
read "/sample/Lokad_Items.tsv"
read "/sample/Lokad_Orders.tsv" as O
read "/sample/Lokad_PurchaseOrders.tsv" as PO

oend := max(O.Date)

// Top Indikatoren zum Dataset
show label "This is a sample script" a1f1 tomato
show table "Product Lines" a2b2 with
sum(1)
show table "Order Lines" c2d2 with
sum(O.1)
show table "Purchase Order Lines" e2f2 with
sum(PO.1)

// Zwei Liniendiagramme
Week.sold := sum(O.NetAmount)
Week.purchased := sum(PO.NetAmount)
lastDay := monday(oend)
firstDay := lastDay - 52 * 7
when date >= firstDay & date < lastDay
show linechart "Purchased & sold" a3f4 tomato with
Week.sold as "Sold"
Week.purchased as "Purchased"

// Bestand mit der schlechtesten Umschlag
lastYear := oend - 365
UnitSold = sum(O.Quantity) when date > lastYear
UnitStock = max(1, StockOnHand + StockOnOrder)
Turns = UnitSold / UnitStock
show table "Slowest inventory turns" a5f8 with
Id
Name
Turns
UnitSold
order by Turns

Wenn das Skript zu Ende ausgeführt wurde, sollte eine neue grüne Zeile unter dem Button Start Run erscheinen. Grün weist daraufhin, dass der Ablauf erfolgreich durchgeführt wurde. Klicken Sie auf diese Zeile, die Sie auf das neu erstellte Dashboard führen wird. Klicken Sie über das Dashboard auf den obersten Button Edit Script, um zurück zum Code Editor zu gehen. Jetzt wissen Sie, wie Sie zwischen der Dashboard-Ansicht und der Code Editor-Ansicht wechseln können.

Image

Verstehen, was vorgeht

An dieser Stelle kann dieser Skript, je nach Programmierkenntnisse, noch recht kryptisch wirken. Lassen Sie uns den Skript Zeile für Zeile analysieren, um genau zu verstehen, was vorgeht. In Zeile 1 sehen wir eine Zeile, die mit // beginnt. Solche Zeilen sind immer Kommentare. Sie spielen für die Logik des Skripts keine Rolle und dienen nur der Lesbarkeit. Die erste Zeile kann sogar drei Querstriche beinhalten ///. Mit diesem dreifachen Strich wird die Zeile zum Untertitel des Projekts, der in der Projektliste unter dem Namen des Projekts angezeigt wird.

In Zeilen 2 bis 4 finden wir drei read-Anweisungen, die die zur Erstellung des Dashboards notwendigen Daten laden. Jede Anweisung lädt eine Datei hoch.

In Zeile 6 wird eine Variable definiert, die das Datum der zuletzt aufgegebenen Bestellung speichert. Es ist nützlich, dies zu definieren, weis das Datum mehrmals im restlichen Skript benutzt wird.

In Zeilen 8 bis 15 befinden sich die zwei ersten Zeilen des Dashboard, die insgesamt 4 Elemente ausmachen. Das oberste Element ist einfach nur ein Label, während die drei unteren einfache 1x1 Tabellen sind, die einen einzelnen Indikator enthalten. Wie wir weiter unten sehen, können Tabellen auch zur Anzeige von tabellarischen Daten, und nicht nur von lediglich einem einzelnen Wert, benutzt werden.

In Zeilen 17 bis 25 wird ein Liniendiagramm definiert, das direkt unterhalb der drei kleinen Elemente angezeigt wird. Gestartet wird mit der Berechnung von wöchentlichen Gesamtwerten für Umsätze und Einkäufe, in Zeilen 18 und 19. Dann werden in Zeile 20 und 21 die spätesten und frühsten Daten, die wir berücksichtigen möchten, definiert, also entsprechend der letzte Montag und der Montag 52 Wochen davor. In Zeile 22 werden die Daten gefiltert, so dass wir nur die letzten 52 ganze Wochen behalten. Die Logik mag vielleicht nicht sofort ersichtlich sein, aber sie lässt sich auf eine Anfangs- und eine Schlussbedingung reduzieren. Zeile 18 beginnt mit zwei Leerzeichen am Anfang. Diese Leerzeichen sind äußerst wichtig: das when definiert einen Block und alles, was sich innerhalb dieses Blocks befindet, d.h., alle Zeilen, die zwei zusätzliche Leerzeichen haben, werden dementsprechend gefiltert. Zuletzt wird das Liniendiagramm in Zeilen 23 bis 25 definiert. In Zeile 23 werden Überschrift, Farbe und Position des Diagramms festgelegt. In Zeilen 24 und 25 werden die zwei Kurven definiert, die angezeigt werden. Beachten Sie, dass beide Zeilen mit 4 Leerzeichen beginnen: 2 Leerzeichen, die vom when-Block benötigt werden und 2 zusätzliche Leerzeichen für den show-Block.

In Zeilen 27 bis 37 befindet sich die Tabelle, die unter dem Liniendiagramm erscheint. Diese Tabelle zeigt die Liste der Produkte im Bestand, die am wenigsten rotieren. In Zeilen 28 und 29 berechnen wir die Anzahl der verkauften Einheiten jedes Produkts über die letzten 365 Tage. In Zeile 30 wird der Lagerumschlag für jede Einheit berechnet. Die max()-Funktion wird einfach benutzt, um Divisionen durch Null in Zeile 31 zu vermeiden, was vorkommt, wenn keinen Bestand vorliegt. In Zeile 31 wird der Lagerumschlag, also die Anzahl der Umschläge innerhalb von einem Jahr berechnet. In Zeilen 32 bis 37 finden wir eine Anweisung zur Anzeige einer Tabelle. In Zeile 32 wird die Überschrift und die Position der Überschrift festgelegt. Von Zeile 33 bis 36 werden alle Spalten der Tabelle definiert: eine Zeile pro Spalte von rechts nach links. Zuletzt wird in Zeile 37 die order by-Option benutzt, damit die kleineren Bewegungen ganz oben in der Tabelle erscheinen.

In die Zukunft blickend

Wenn Sie nicht schon mit Programmierung vertraut waren, kann die Menge an Information in diesem ersten Skript etwas überfordernd sein. Doch, wie Sie sehen können, ist es möglich, mit nur 37 Zeilen Code ein gar nicht so unbedeutendes Dashboard zu erstellen, das KPIs, Datenvisualisierungen und priorisierte Ausführungslisten für Produkte, die besonderer Aufmerksamkeit bedürfen, um Ihr Lager nicht zu überladen, beinhaltet. Mit weniger als 40 Zeilen Skript haben wir schon so einiges erreicht.

Außerdem ähnelt die Syntax zur Ausführung von Berechnung der in Excel sehr. Zum Beispiel, könnte der Gesamtwert des Bestands, wenn man den aktuellen Bestand, wie auch den Bestellbestand berücksichtigt, wie folgt geschrieben werden: sum(PurchasePrice * (StockOnHand + StockOnOrder)). Zögern Sie nicht, damit mit dem Beispiel-Dataset zu experimentieren, indem Sie kleine Teile des Skripts ändern und die Wirkung sofort im neuerstellen Dashboard sehen.