![見出し画像](https://assets.st-note.com/production/uploads/images/40354590/rectangle_large_type_2_d4d60e153c1258bd64eb26dfcf485361.png?width=1200)
AppSheetで在庫管理アプリをノーコードで作る - CSVファイルのダウンロードとインポート機能を作ってみる
カカト@ノーコード開発推し です。
今回もAppSheetを使った在庫管理アプリ作成の続きとなります。
さて前回は、AppSheetの Action と Workflow機能を使い、在庫の登録・更新時に入出庫の履歴を別テーブルに自動登録する処理を追加しました。
今回も引き続きAction機能を使い、CSVのダウンロードとインポート機能を作ってみたいと思います。
在庫一覧をCSVにダウンロードする
では早速作っていきましょう。
まずは、在庫の一覧画面に表示されている内容をCSVにダウンロードする機能を作ります。
AppSheetの開発環境を開き、「Behavior」→「Actions」より、New Actionをクリックし新規のActionを作成します。
Actionの項目を以下で入力します。
・Action name:在庫CSV出力
・For a record of this table:在庫
・Do this:App: export this view to a CSV file (not a row-level action)
続けて、「Appearance」 は以下で設定します。
・Display name:CSV出力
・Action icon:csv と入力し、表示されたアイコンより選択(なんでもOK)
・Prominence:Display overlay
前回作成した入出庫履歴登録のActionは、在庫データのメンテ時にバックグラウンドで動かしたかったため、実行ボタンを画面に表示させないようにしていました。今回はユーザーが画面から実行できるよう、「Display overlay」を選択します。
これで一旦SAVEし、在庫一覧の画面を開きます。
すると、以下のようにボタンが追加され、選択したアイコンが表示されます。
このボタンをクリックすると、CSVが出力されます。
12/9 追記
CSVが先日付になっていますが、別件でFlash playerの動作検証を行った際にPCの日付を未来日にしていたためです。すみません。
CSVですが、内容はUTF-8でエンコードされていますので、Excelでそのまま開くと文字化けした形で表示されるのでご注意ください。
※Excel 2007で試したので最新のだと結果が違うかもしれませんが。
テキストエディタやメモ帳で開くと以下のように、項目名と値が正しく表示されました。
なおCSV出力のActionですが、export this "view" というアクションなのに テーブルしか選べないようです。
Slice も選択できず、Sliceより作成したViewも出てこないので、データを絞り込んで出力したり、項目を方法がよくわかりません・・・。
※やり方がわかったら別途共有します。
在庫データをCSVからインポートする
では続いて、Actionを使いCSVから在庫データをアプリにインポートしてみます。
新規にActionを作成します。
・Action name:在庫インポート
・For a record of this table:在庫
・Do this:App: import a CSV file for this view (not a row-level action)
Appearance の設定は以下とします。
・Display name:CSVインポート
・Action icon:import と入力し、表示されたアイコンより選択(なんでもOK)
・Prominence:Display overlay
これでSAVEします。
すると、CSV出力の上にボタンが追加されましたので、早速使ってみます。
インポートするCSVですが、先ほどダウンロードしたCSVの中身を変えたのを使っています。
なお、2行目のデータの、3DS は商品のテーブルにない商品です。
このファイルを選択しインポートしてみると・・・
「単価 という項目は在庫テーブルにない」 と怒られてしまいました。
ダウンロードしたCSVにある単価の列ですが、これは Virtual Column 商品のテーブルから追加した列であり、在庫テーブルにはない項目なのでインポートできません。
ということで、単価の列をファイルから消して再度トライ。
エラーが出ました。内容を見ると、商品列に 3DS が Valid_If の条件に反するため、登録できないようです。
メッセージが英語でわかりにくい。。ですが、マスターとなるテーブル(REFで参照しているテーブル)にデータが無いと登録できないチェックが走ることが確認できました。
・・インポートされたようですが、ここでなぜかフリーズ!
ひとまずブラウザ再起動させて確認したところ、インポートは終わっておりデータが登録されたようです。
今回は、CSVのダウンロードとインポート機能を実装してみました。
ダウンロード、インポート共にいくつか不明な点がありますので、調べた結果をアップデートしたいと思います。
この記事が気に入ったらサポートをしてみませんか?