管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【実践向け!】appsheetで作る在庫管理アプリの作成手順

【実践向け!】appsheetで作る在庫管理アプリの作成手順

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新UI画面の説明

まずはじめに

本記事はこんな人におすすめ!!
  • appsheetで実用レベルの在庫管理アプリを作成したい人
  • appsheetに用意されている基本的な機能を幅広く理解したい人
本記事を読んで出来るようになること
  • 入力した数値の計算を自動で行う関数の考え方についてわかる
  • Automationでその日入力したログを自動で取得する設定

今回の記事は在庫管理アプリの作成手順についてです。

appsheetで検索をするとサジェストで在庫管理が表示されますね(^^)

それだけappsheetで在庫管理アプリを作成したい人が多いということですね。

私の職場環境では在庫管理アプリの需要がないので、ほとんど想像での作成になりますが

当ブログの方針である簡単で汎用性の高い設定を読者の方に提供するを叶えたいと思います!

在庫管理アプリの作成手順ですが、大まかに以下の流れで作り込んでいきます。

参照データの用意とカラムの設定

スプレッドシートに必要なカラムを用意して、appsheetにデータを送りデータの型を選択

Viewの仮設定

初期画面に必要なViewの作成

スライステーブルの作成

使い勝手のいいアプリを作成するための準備

Viewの作り込み

アプリ動作の画面の完成

Automationによるログの管理

毎日定刻になったらデータを自動でログ管理する仕組みの構築

今回の記事内容はかなりハイレベルな内容です

appsheetですでにいくつもアプリを作成した経験のある人向けに記事をまとめています。

わからないところはコピペで構いませんので、一度最後までやってみることをおすすめします(^^)

それでは勉強していきましょう!


参照データの準備とデータタイプの修正

検証データの説明

今回の在庫管理アプリ作成のために用いたシートは3つです。

それぞれのシートの説明をします。

商品管理シート
商品管理シート

各カラムのイメージは以下のとおりです。

  • ID:Key値
  • 商品:商品マスターとref関係を結ぶ
  • 入出庫区分:入庫と出庫を分ける
  • 増減個数:入庫数もしくは出庫数
  • 計算結果:増減前の個数と増減個数の計算をする
  • 日付:データを入力した日を記録する
ログ管理シート
ログ管理シート

このシートは商品管理シートのカラム値を転写するために存在しています。

商品マスターシート
商品マスターシート

各カラムのイメージは以下のとおりです。

  • 商品:商品管理シートの商品カラムとref関係を結ぶ
  • image:登録商品の写真を記録する

読み込ませるデータの準備が整ったらappsheetにデータを送ります。

データタイプの修正

続いてデータタイプの修正を行います。

まずは商品管理シートから確認します(^^)

食品カラムのデータタイプをRefにする
商品カラムの設定

このカラムは商品名を登録するので、参照先のテーブルは商品マスターとします。

入出庫区分カラムのデータタイプをEnumにする
入出庫区分カラムの設定

このカラムで商品の入庫と出庫を決定します。

増減個数カラムのデータタイプをNumberにする
増減個数カラムの設定

入庫と出庫の区別は入出庫区分カラムで行っているため、このカラムには整数のみ入力できます。

Valid ifに[_this]>0を入力することで1以上の整数のみ入力を受け付けるようになります。

計算結果カラムのApp Formulaに関数を入力する(データタイプはNumber型)
計算結果カラムに入力する関数

any(select(商品管理[計算結果],[ID]=maxrow(“商品管理”,”_rownumber”,[商品]=[_thisrow].[商品])))

+if([入出庫区分]=”入庫”,[増減個数],[増減個数]*(-1))

上記関数を入力することにより、データ入力される前の各商品の最新在庫数を抽出しつつ、これから登録される増減個数の計算を自動で行ってくれます。

日付カラムのデータタイプをDateにする
日付カラムの設定

データを入力するのはその日なので、初期値にtoday()を入力しておきます。

Virtual Columnで現在の在庫数を計算するカラムを作成しておく
virtual column

データタイプはNumberを選択し、App formulaには以下の関数を入力します。

any(select(商品管理[計算結果],[ID]=maxrow(“商品管理”,”_rownumber”,[商品]=[_thisrow].[商品])))

ここで計算結果カラムに入力した関数について説明します。

入力関数の説明

select()関数とif()関数の使い方に自信がない人は、先にこちらの記事を見てみてください

参考記事

先に前半部分の関数の説明をします。

select()関数の第二引数はフィルター条件式(Yes/Noで答えられる)を入力する必要があります。

フィルター条件式に指定したmaxrow()関数の基本的な使い方は以下です。

maxrow()関数の使い方

maxrow(dataset-column, [select-row?])

第一引数にテーブルもしくはスライス名、第二引数にカラム名を” “でくくって指定、第三引数にYes/Noで答えられる条件式(省略可能)を入力します

引数の渡し方を把握しつつ、下図を参考にしてください(^^)

maxrow関数の説明

続いて、後半部分のif()関数の説明をします。

こちらの関数がやっていることとしては

  • 商品が入庫されたらその個数を足し算する
  • 商品が出庫されたらその個数を引き算する

になります。下図にその説明をまとめました(^^)

if関数の説明

それでは残りのシートもさくっと設定を更新しましょう(^^)

ログ管理シートのカラム設定
在庫ログのカラム設定

計算結果カラムがNumber型日付カラムがDate型にすればOKです。

商品マスターシートのカラム設定
商品マスターのカラム設定

imageカラムがimage型になっていればOKです。

これでカラム設定は完了です。お疲れさまでした(^^)


商品マスターシートに商品を登録する

商品マスターシートの設定

続いて、在庫管理アプリに登録する商品を登録します。

この記事では商品をカレーライス、ドーナツ、お好み焼きとします!

以下の流れで実装していきましょう(^^)

商品マスターテーブルを参照するViewを作成する
商品マスターView

For this dataは商品マスターシートを選択します。View typeはdeckがおすすめです。

商品マスターのViewがない場合は、Add Viewから新規に追加すればOKです!

作成したViewから商品を登録する
商品の登録方法

商品マスタータブのAddから登録をします。

登録した商品

登録した商品のイメージ

この登録した商品を商品管理に登録をしてみましょう。

商品管理シートに入力するViewを作成する
form viewの作成

For this dataは商品管理シート、View typeはformを選択します。

商品の入出庫を記録する
入庫の登録

STEP.3で作成したForm Viewから商品を登録します。

登録されたテーブルイメージ

初期のViewでは過去に登録された情報も含めて表示されるため

最新の情報のみ表示させるViewを作成しましょう(^^)

本日分のデータのみ表示させるViewを作成する
スライステーブルの作成

スライステーブルを作成します

Row filter conditionには[日付]=today()を入力しています

作成したスライステーブルで新規にViewを作成します。

新規viewの作成

For this dataには先ほど作成したスライステーブルを指定します。

viewの詳細設定

プレビューのデータテーブルには現在の在庫数が表示されています。

  • Group byに商品と_RowNumber
  • Group aggregateにAVERAGE::現在の在庫数

を指定します。

これでViewの設定は終了です。お疲れさまでした(^^)


Automationで本日登録したデータのログを残す

automationログのイメージ

最後にオマケ要素としてテーブルの情報を別のテーブルにコピーする方法を紹介します。

このアプリでは必要ないと思いましたが、別のアプリでは使える内容なので

この機会にぜひマスターしていただければと思います。

それでは手順を説明していきます(^^)

別のテーブルに値を送るアクションボタンを作成する
add new row another table

赤枠で囲まれた部分の設定が必要です。

  • For a record of this table:アクションをセットするテーブル(今回はメインテーブルの商品管理シート)
  • Do this:add a new row to another table〜を選択
  • Table to add to:For a record〜のテーブルから値を送る先のテーブル(今回はログ管理シート)
  • Set these columns:送り先のカラムに送りたい値を入力(今回は商品管理のカラム値を送る設定)

また、このアクションボタンは表示する必要がないため Do not displayの設定推奨です。

AutomationのSchedule型でEventを作成する
processの設定

赤枠で囲まれた部分を参考にして設定をしていきます

For Each Row In Tableについて

この設定のトグルボタンをONにし参照テーブルを設定すると、参照テーブルの各行に対して

Eventを実行します。制限をかけたい場合はFilter Conditionに関数を入力します。

実行するProcessを設定する
プロセスの設定

Run a data actionを選択してSTEP.1で作成したアクションをセットします。

アクションをセットすると画面右の青枠で囲まれた部分が自動で入力されます。

この3ステップでどんなアプリでもログを残すことが可能です(^^)


まとめ

以上、在庫管理アプリの作成方法でした。

別の記事で日々の進捗を折れ線グラフでまとめる方法もまとめていますので、

この記事の内容と組み合わせると管理レベルの高いアプリが作成出来ると思います(^^)

他にもデータタイプXYを用いてどの商品がどこに置いてあるか?

などを管理してみるのも面白いと思います。

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

引き続き勉強したい方は、こちらの記事を参考にしてください

参考記事

2 COMMENTS

木村淳

Kさんありがとうございます。Kさんのブログを見て、私もAPPSheetにチャレンジしています。不明な点があります。「商品マスターシートに商品を登録する。商品マスターテーブルを参照するViewを作成する。」が、どの画面の、どの操作かわかりません。お手数でも詳しく教えて頂けませんでしょうか?

返信する
k

コメントの確認が遅れてしまい、申し訳ございません!
記事の写真を更新したので、参考にしてください(^^)

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA