エンビジョンはじめてのスクリプト

はじめてのエンビジョンスクリプト


ホーム » コマース分析 » このページ

このチュートリアルでは、簡潔なエンビジョンスクリプトで構成された最初のダッシュボードについて詳述します。エンビジョンや、一般的なプログラミングについての前知識は必要ありません。このクイックチュートリアルを読めば、エンビジョンのキーコンセプトに慣れていくでしょう。

はじめに

まだアカウントをお持ちでないなら、 Lokadアカウントを開くで30日の無料試用期間付きのアカウントを取得してください。Lokadアカウントを取得したら、エンビジョンデータセットサンプルを読み込んでください。このデータセットは、架空の小売業者の過去のデータを再現しています。

アカウントにサンプルファイルを問題なく取り込んだら、"プロジェクト"タブをクリックしてください。プロジェクトページにて、ページ下部のエンビジョンスクリプトを作成するリンクをクリックしタイトル名を選んでください。ほぼ空に近い新しいページが表示されます。この画面はコードエディターといい、エンビジョンスクリプトを編集することができます。下記のコードを切り取り&貼り付けをして、右にある緑の実行するボタンをクリックしてください。

/// This is my first sample script!
read "/sample1" all

// Top indicators about the 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(Orders.1)
show table "Purchase Order Lines" e2f2 with sum(PurchaseOrders.1)

// Two linecharts
Week.sold := sum(Orders.NetAmount)
Week.purchased := sum(PurchaseOrders.NetAmount)
when date >= monday(end) - 52 * 7 and date < monday(end) 
  show linechart "Purchased and sold{$}" a3f4 tomato with \
    Week.sold as "Sold", Week.purchased as "Purchased"

// Worst rotating inventory
UnitSold = sum(Orders.Quantity) where date > end - 365
Turns = UnitSold  / max(1, StockOnHand + StockOnOrder)
show table "Slowest inventory turns" a5f8 with \
  Id, Name, Turns, UnitSold order by Turns

スクリプトが実行されたら、緑の線が新しく実行するボタンのに表示されます。このは操作が問題なく実行されたことを示します。この線をクリックすると、新規作成されたダッシュボードが表示されます。ダッシュボードの上にあるスクリプトを編集するボタンをクリックすると、コードエディターに戻ります。 これで、ダッシュボードとコードエディターの画面切り替えができるようになりました。

Image

何が起きているかを理解する

この時点では、プログラミング概念への精通度によっては、上記のスクリプトはまだ暗号のように感じられたかもしれません。では、どのような処理が行われていたのかを理解するために1行ごとにスクリプトを見ていきましょう。 1行目では、//から行を始めています。このような行はすべてコメント行です。これらは、スクリプトロジックにおいて何の役割も果たしません。最初の行は3つのダッシュ///を持つこともできます。この3つのダッシュで、この行はプロジェクトのサブタイトルになり、プロジェクト一覧のプロジェクトタイトルの下に表示されます。

2行目では、アカウント内にあり、すべてのデータが読み込まれる場所である/ sample1フォルダを指定したREAD文 があります。allオプションは、スクリプトがこのフォルダにすべてのデータを読み込むことを示します。エンビジョンは読み込みたいデータを正確に選択できる融通性が高くありますが、この点においてはサンプルデータセットで十分事足ります。

5行目から8行目は、合計4つのタイルから構成されるダッシュボードの最初の2行になります。下の3つのタイルが単一のインジケータを含んだ単なる1x1表である一方で、最上位のタイルは単にラベルです。その下の図のように、表は、その時の単一値だけでなく、実際の表形式のデータを表示することにも使用されます。

10行目から15行目は、小さな3つのタイルの直下に表示される折れ線グラフです。11行目と12行目にある週ごとの売上と仕入の合計の計算から始めます。13行目では、最近の全52週のデータのみ維持するためにフィルタリングしています。ロジックは少し複雑ですが、開始条件と終了条件になります。14行目は、行の冒頭が2つのスペースから始まります。これらのスペースは重要で、whenがブロックを定義し、このブロック“内”にあるすべて、すなわち2つのスペースがある行はすべて、適宜フィルタリングされることになります。結果として、折れ線グラフは2つのカーブを表示しています。プログラミングロジックが少し長かったため、バックスラッシュ\で改行し、コードを読み易くしています。

17行目から21行目は、折れ線グラフの下の表になります。この行は、最新の在庫の中で回転率が良かった製品のランキングを表しています。18行目では、過去365日に渡る各製品の売上数を計算しています。19行目では、在庫の回転、すなわち1年以内の在庫の回転数を計算しています。分母のmax()関数は単に、製品の在庫数がゼロになるときにゼロで割られるのを避けるために使用しています。20-21行目では、表の表示文を書いていて、こちらもバックスラッシュ\で2行に分けています。特に、order byオプションは、表の最上部に低回転のものがくるように使用しています。

プログラミングに慣れていない限り、このチュートリアルの情報量はおそらく圧倒的に感じるでしょう。しかしながら、見て分かるとおり、たった20行以内のコードで、KPIを含む非自明性のダッシュボードや、データの可視化、また、在庫が乱雑になる製品を持たなくてもいいように少しの注意を必要とする優先付けられた製品のアクションリストを含む非自明性のダッシュボードを構成することが可能になります。わずか20行のスクリプトで、かなり先まで進むことができました。

より一般的に言うと、計算式を作成するために使われる構文は、エクセルのそれに非常に似ています。例えば、手持ちの在庫と発注残の両方を考慮した在庫の合計値は、sum(PurchasePrice * (StockOnHand + StockOnOrder))のように書くことができます。躊躇わずに、このサンプルを使って実験をし、スクリプトを少し修正し、新しく生成されたダッシュボードの関連結果を確認してください。

FORMATTER ERROR (Transcluded inexistent page or this same page)