このページでは次のことを書いています。(データ管理初級者向け)
- 序文
- AppSheetの準備方法AppSheetでアプリを作成
- FileMakerの準備方法
- FileMaker✕AppSheetを動かしてみる
- まとめ
序文
前回、FileMaker✕AppSheetでのデータ共有方法を書きました。
前回の記事はこちら >
僕がお客様から受けたご相談で、こんな悩みをお聞きしたのです。
・あまり、というかほぼコストをかけたくない。
・自分は技術者ではないから難しいことは出来ない。
・でもやっぱり外出先で最新のデータをiPhoneなどで共有したい。
1~2名での運用では、環境を手に入れるためのコストが急に跳ね上がることもあります。
それを「AppSheet」で代用して安く済ませられないか?と思いついたので書いてみています。
要するにこんなことをやりたいイメージです。
AppSheetは要するにGoogleスプレッドシートを見やすくするためのアプリです。
AppSheetのほうは少々手間はかかるかもしれませんが、FileMakerのほうはスクリプト2行で可能です。
AppSheetの準備方法
AppSheetはGoogleコンテンツの一部です。まずはAppSheetのサイトからGoogleアカウントでログインします。共有させたいGoogleスプレッドシートがあるアカウントが良いと思います。
AppSheet
https://www.appsheet.com/
ちなみにこの記事を書いている時点では英語のページです。
Googleアカウントでログイン
「Start for free」で登録へ進みます。
「Google Sheets and Forms」を選択します。
Googleアカウントでログインします。
リクエストを許可します。
AppSheetでアプリを作成
ログインするとAppSheetのダッシュボードが表示されるので、「Create a new app」をクリックします。
左の「Start with your own data」を選択します。
App nameには一旦英語でアプリ名を付けます。でもご心配なく。後で日本語のアプリ名に変更できます。Categoryはひとまず「Field service」で良いと思います。AIによってこのカテゴリーに最適な画面をデフォルトで用意してくれるようです。
「Choose your data」をクリックします。
アプリに表示させる元となるスプレッドシートを選択します。が、ここで選択する前にスプレッドシートには少なくとも1行目に「項目」を入れておいて下さい。
スプレッドシート1行目の項目行はこんな感じです。英語の方がAI的に良いらしいですが日本語でもひとまず大丈夫です。
アプリ展開中。
AppSheetの編集画面が表示されました。画面はAIによって最適化された状態なので、今回は一旦そのままでいきます。
とりあえず共有できるまでの準備
アプリ名を日本語に変えてみます。左メニュー「info」→「Properties>App Properties>Short Name」でアプリ名を入れて、右上の「Save」を押します。※Saveしないと反映されません。
確認用で、スプレッドシートに適当にデータを1,2件入れてみます。
AppSheetの右側にあるプレビュー画面で、右上のリロード[↻]をクリックして更新するとデータが反映されるので、ちゃんとリンクしていることが確認できます。
スプレッドシートの項目(列)を追加したり、削除した場合は整合性を取ります。左メニュー「Data」→「Columns」をクリックします。
真ん中らへんにあるグレーの「シート1」と書かれた板のようなものをクリックすると、項目の表が表示され、同時にクリックしたグレーのところに3つのボタンが出てきます(View Table, Add Virtuil Column, Regenerate Structure)。
一番右の「Regenerate Structure」をクリックします。「Are you sure?」と表示が替わるので、続けてクリックすると更新がかかってスプレッドシートの項目が反映されます。
スマホで共有する
他に共有するユーザーがいる場合は追加します。左メニュー「Users」→「Users>Share app」にあるUser emailsにメールアドレスを入れて「Add」します。「Add as co-authors?」トグルボタンは管理者にしないのでオフのまま、「Send invite email?」は招待メールを送るのでオンのまま、これで青いボタン「Add users + send invite」をクリックします。
ユーザーが追加されました。
追加ユーザーにメールが届きます。「Install モバイルアプリ」をクリックするとAppSheetアプリがインストールされます。その下の「Open in Browser」ボタンでブラウザからも見れます。
その後は案内に従い、Googleアカウントでログインするとアプリが使えるようになります。
パソコンで共有することはできるのでしょうか?できます。ブラウザでアプリのように使うことができます。AppSheetの左メニュー「Users」→「Users>Links」にあるBrowser Linkを使います。
FileMakerの準備方法
FileMaker側は、レイアウトとスクリプトが必要になります。専用のレイアウトを用意
AppSheetに反映させるための専用レイアウトを用意します。リスト形式で、スプレッドシートの項目と同じ並びで用意して下さい。フィールドの高さを合わせてください。位置によってクリップボードにコピーされる順番が変わるためです(後述)。フィールドはレイアウト範囲外(右側グレーの箇所)にあっても構いません。
スクリプトを用意
スクリプトは2ステップだけです。「全レコード/検索条件コピー」と「URLを開く(スプレッドシートのURLを指定)」です。ボタンにスクリプトを設定すれば完了です。FileMaker✕AppSheetを動かしてみる
連動の手順をまとめると次のようになります。- FileMakerの専用レイアウトで、検索などによりレコードを抽出する。
- ボタンを押す。
- スプレッドシートが開く。
- 前に残っているデータを一旦前部消す。(1行目の項目行は残す)
- A2セルに貼り付け(ペースト)する。※A2にカーソルは入れない。選択するだけ。
- AppSheetアプリでリロード(更新)する。
1.~2.
3.~5.
6.
《 補足解説 》
5.で、A2に貼り付け(ペースト)するのですが、気をつけるのはA2セルを選択するだけの状態で貼り付け(ctr+v, cmd+v, 右クリック貼付など)することです。
ダブルクリックなどしてA2セルにカーソルが当たる状態で貼り付けると失敗です。
うまく貼り付けできると、ちゃんと行と列にぴったり分かれて貼り付きます。
FileMakerのスクリプトステップ「全レコード/検索条件コピー」を行うと、フィールド間とレコード間を保ったままクリップボードに格納されるからです。
(クリップボードとは、パソコン内でデータを一時的に保持しておく場所です。クリップボードによってコピー&ペーストができます。)
クリップボードに格納される際、フィールドの配置によって順番が決まります。
FileMakerの専用レイアウトで、仮に「電話」フィールドが少し上に位置がずれているとします。
すると「電話」の列が先に認識されて一番左に格納され、貼り付いてしまいます。
「全レコード/検索条件コピー」ステップは、上位置→左位置の順番に格納されるためと思われます。
まとめ
いかがでしたでしょうか。ここまでの方法はプロトタイプ版(本番前のお試し版)になります。
社内や内部の人だけで共有する分にはこれで事足りると思っています。
(例えば第三者への展開をするような本番仕様は「デプロイ」というものをします。本番仕様はいろいろ制約が出てきて少々厄介です。)
「設定したいけどサポートがほしい」「うまくできるか不安なので一緒に作ってほしい」といったご要望があればお問い合わせください。
今日も良い一日を♪
Blogger Comment
Facebook Comment