請求書アプリを作りながら、 AppSheet (アップシート)の使い方を学びましょう。
前回(第6回)は、請求書のテンプレートをGoogleドキュメントで作成しました。
今回は、Automation(オートメーション)で請求書をPDFで発行します。
さらに、請求書のパス(保存場所)を保存して、アプリ上でPDFを開けるようにします。
目次
1. AppSheet Automationで請求書をPDFで発行する
Automationとは、
- アプリ上でのデータ変更(追加、更新、削除)
- スケジュール(毎日定時、毎週○曜、毎月○日)
をトリガとして、決められた手順でワークフローを実行する機能です。
Automationの設定は以下の手順で行います。
- Bots(ボット):実行するワークフローを定義します。
- Event(イベント):プロセスを実行するトリガを設定します。
- Process(プロセス):ステップの実行手順を定義します。
- Step(ステップ):実行するタスクやアクションを設定します。
今回のケースでは、以下のようなAutomationを設定します。
2. アクションを設定する
今回のケースでは、ボットを実行するトリガとして、
- アプリ上でのデータ変更(追加、更新、削除)
を設定します。
「請求書」テーブルに「トリガ」列(Number型)を用意しておきました。
「トリガ」列の値を更新したときに、ボットを実行するようにします。
はじめに、「トリガ」列の値を更新するアクションを作成します。
エディタ左側メニュー「Actions」をクリックします。
Actionsナビゲーションの右上にある「+」ボタン(Add Action)をクリックします。
「Create a new action」ボタンをクリックします。
メインパネルに新規アクションの設定パネルが表示されるので、以下のように設定します。
- Action name:請求書発行
- For a record of this table:請求書
- Do this:Data: set the values of some columns in this row
更新したい列と値を、Set these columns で設定します。
更新したい列を「トリガ」に変更します。
次に、更新したい値は「=」の入力フィールドをクリックします。
Expresson Assistantが開くので、以下の式をコピペします。
1 |
[トリガ] + 1 |
「トリガ」列はNUMBER型なので、「+1」することで「トリガ」列の値を更新します。
Expression Assistantに以下のように入力して「Save」します。
画面右上の「SAVE」をクリックして設定を保存してください。
右側のプレビューで確認してみましょう。
アクションボタンが表示されていると思います。
アクションボタンをクリックすると「トリガ」列の値が更新されて、ボットが実行されるようになります。
3. 「Create a new file」でPDFファイルを作成する
1. ボットを作成する
はじめに、ボットを作成します。
左側メニュー「Automation」をクリックします。
Botsナビゲーションパネルの「+」ボタン(Create a new bot)をクリックします。
「Create a new bot」ボタンをクリックしてBotを作成します。
Botsナビゲーションパネルに「New Bot」が追加されます。
ボットの名前を付けます。
右端にある3点ドットアイコンをクリックして「Rename」をクリックします。
ボットの名前を「請求書発行」に変更します。
2. イベントを設定する
続けて、イベントを設定します。
Automationでは、イベントで設定したトリガが発生した時に、後に続くプロセスを実行します。
「請求書発行」ボットは、
- 請求書テーブルの「トリガ」列の値が更新された時
をイベントトリガにします。
「Configure event」ボタンをクリックします。
Event nameを「トリガを更新」にします。
エディタ画面右側にある Settings でイベントトリガを設定します。
はじめに、Event TypeとTableを以下のように設定します。
- Event Type
- Data Change
- Updates only
- Table:請求書
以上で、「請求書テーブルのデータを更新した時」が設定できました。
イベントトリガに条件を設定します。
今回のケースでは「トリガ」列の値が更新された時がプロセスを実行する条件になります。
Conditionの入力フィールドをクリックして、Expression Assistantを開きます。
Expression Assitantに以下の式をコピペします。
1 |
[_THISROW_BEFORE].[トリガ] <> [_THISROW_AFTER].[トリガ] |
この式の意味は、
- [_THISROW_BEFORE]:「この行(レコード)の前の値」
- [_THISROW_AFTER]:「この行(レコード)の後の値」
- <>:等しくない
なので、「前のトリガの値と後のトリガの値が等しくない」時に後に続くプロセスを実行します。
Expression Assistantにコピペして「Save」します。
3. プロセスにステップを追加する
プロセスにファイル作成ステップを追加します。
「Add a step」ボタンをクリックして、Stepを追加します。
Step nameを「請求書PDF発行」にします。
「Run a task」を選択します。
Settingsで「Create a new file」を選択します。
続けて以下のように設定します。
- Table name:請求書
- HTTP Content Type:PDF
続けて、Templateの書類アイコンをクリックします。
ここで第6回で作成したGoogleドキュメントのテンプレートを選択します。
Upload fromで「Google Drive Files」を選択します。
前回(第6回)で作成した「請求書」のGoogleドキュメントのテンプレートを選択して、「Select」をクリックします。
Templateに「DocId=1....」と表示されたら無事にテンプレートが選択されました。
次に、「File Folder Path」はPDFを保存するGoogleドライブの場所の設定ですが、ここは空欄でも大丈夫です。
空欄の場合は、アプリフォルダ内に「Files」というフォルダが作成されて、「Files」内にPDFが保存されるようになります。
続けて、「File Name Prefix」の入力フィールドをクリックします。
「File Name Prefix」はPDFにつけるファイル名を設定します。
Expression Assistantに、以下の式をコピペします。
1 |
[取引先].[取引先名] & "-" & TEXT([請求日], "yyyymmdd") & "-" & [トリガ] |
この式の意味は、
- 取引先名
- 「請求日」列の日付を8桁の数字に変換
- 「トリガ」列の数字
を組み合わせて、重複がないようにファイル名を作成します。
Expression Assistantに以下のようにコピペして「Save」します。
最後に、以下の項目を設定します。
- Disable Timestamp ? :ON
- Attachment Page Orientation:Portrait
- Attachment Page Size:A4
以上で、タスク設定は完了です。
画面右上の「SAVE」をクリックして設定を保存してください。
4. ボットを実行する
ボットを実行して請求書をPDFで発行してみましょう。
プレビュー画面で、タブメニュー「請求書」を選択します。
請求書をひとつ選択します。
さきほど作った「請求書発行」アクションボタンで表示されます。
ボタンをクリックするとボットが実行されるので、クリックしてみましょう。
プレビューのアプリ画面右上に丸数字が表示されて、ボットが実行されます。
データソースのGoogleスプレッドシートを確認してみましょう。
「請求書」シートの「トリガ」が「1」になっていると思います。
「トリガ」列の値が更新されたので、 AppSheet がボットを呼び出して実行しました。
請求書がPDFで発行されたかを確認してみましょう。
Googleドライブのマイドライブ内にある「 appsheet 」フォルダを開きます。
その中に「data」というフォルダがあるので開いてみましょう。
「請求書アプリ-xxxxxxxx(ユーザーのアカウントID)」というフォルダがあります。
このフォルダがアプリフォルダです。
アプリフォルダ内に「Files」というフォルダがあるので開いてみましょう。
「FIles」フォルダ内に請求書PDFが保存されていれば成功です。
前回(第6回)作成したGoogleドキュメントのテンプレートに、各テーブルの値が差し込まれて請求書が作成されました。
4. 請求書のパスを保存する
Googleドライブに AppSheet が発行した請求書PDFが保存されていることが確認できました。
次に、請求書アプリにPDFのリンクを表示して、アプリからPDFを開けるようにしましょう。
「請求書」テーブルに用意しておいた「請求書ファイル」列にPDFのパス(保存場所)を保存します。
事前準備として、第2回でデータソース(Googleスプレッドシート)をアプリフォルダ内に移動しておきました。
アプリフォルダ(請求書アプリ-xxxxxxxx)内にデータソース「請求書アプリ」があるか確認してください。
1. ステップを追加する
「請求書PDF発行」ボットにステップを追加します。
「Add a step」ボタンをクリックして、Stepを追加します。
Step nameを「請求書パス保存」にします。
「Run a data action」を選択します。
Settingsでステップを設定します。
はじめに「Set row values」をクリックして選択します。
次に「Set these column (s)」で「請求書ファイル」を選択し、入力フィールドをクリックします。
Expression Assistantが開くので、に以下の式をコピペします。
1 |
"/Files/" & [取引先].[取引先名] & "-" & TEXT([請求日], "yyyymmdd") & "-" & [トリガ] & ".pdf" |
式全体としては、
- 「Files」フォルダ内の
- 「取引先名-請求日8桁数字-トリガの数字.pdf」というファイル
という意味になります。
Expression Assistantに以下のようにコピペして「Save」します。
再度、請求書を発行してみましょう。
プレビュー画面で、タブメニュー「請求書」を選択します。
請求書をひとつ選択して「請求書発行」ボタンをクリックします。
請求書が発行されると「請求書ファイル」列に請求書のファイル名とリンクが表示されます。
リンクをクリックすると、請求書が表示されると思います。
データソース(Googleスプレッドシート)を確認してみましょう。
「請求書」テーブルにある「請求書ファイル」列に、請求書PDFのパス(保存場所)が保存されています。
アプリではこのパスをリンクとして表示しています。
これで、Googleドライブにアクセスしなくても請求書PDFを表示できるようになりました。
以上で、請求書アプリが完成しました。
このアプリを作ることで、関数の使い方やAutomationによる自動化を学ぶことができます。
AppSheet アプリの使い方を身につけるにあたり必須で重要なスキルが含まれています。
是非、ご自身で作ってみてください。