· 

AppSheet 使い方 | 請求書アプリ(第7回)Automationで請求書のPDFファイルを作成する

Automationで請求書のPDFファイルを作成する

 

このブログでは、請求書アプリでAppSheetの使い方を学びます。

 

前回(第6回)は請求書のひな形をGoogleドキュメントで作成しました。

今回は、AppSheet Automation(オートメーション)で、Googleドキュメントのひな形を使って請求書をPDFで発行します。

1. Automationで請求書をPDFで発行する

 

Automationをひとつ作成します。

Automationは、Bot → Event → Process → Task の順で設定していきます。

最後に、BehaviorメニューからActionを作成します。

Automationの実行は、Actionから行います。

 

Bot(ボット)

 

左側メニュー「Automation」をクリック、タブメニューにある「Bots」をクリックしてBot(ボット)設定を行います。

「New Bot」をクリックしてBotを作成します。

 

Automation、Botを作成する。

 

Botの名前をつけます。

「Bot name」で「請求書PDF発行」という名前をつけました。

 

Botの名前を入力する。

Event(イベント)

 

次に、Event(イベント)を作成します。

EventはAutomationを実行するためのトリガ(きっかけ)になる設定です。

Eventで設定した値が更新されたり、指定した時刻になった時にAutomationを実行するように設定します。

 

「Choose an event」をクリックします。

 

eventを作成する。

 

Eventの名前をつけます。

「Event name」に「請求書トリガ」という名前をつけました。

 

Eventの名前を入力する。

 

画面右側に、Eventの設定パネルが開きます。

Event typeを「Data Change」、Tableを「請求書」にします。

 

続けて、Conditionに式を設定します。Conditionのフィールドをクリックします。

 

Event の Condition を設定する。

 

Expression Assistant に以下のように式を入力して、「Save」をクリックして保存します。

第2回で、「請求書」テーブルに「トリガ」列というNumber列を用意しておきました。

この式の意味は、「トリガ列の値が変更されたら・・・」という意味です。

  • [_THISROW_BEFORE]:「この行(レコード)の前の値」
  • [_THISROW_AFTER]:「この行(レコード)の後の値」
  • <>:等しくない

なので、「前のトリガの値と後のトリガの値が等しくない」時にAutomationを実行します。

 

Event の Condition の Expression Assistant を設定する。

 

Data change typeを「UPDATES_ONLY」にします。

 

Data change type を設定する。

Process(プロセス)

 

「Run this PROCESS」の右にある三角をクリックします。

「Create new process」をクリックします。

 

Process の名前をつける。

 

 

Process(プロセス)に「請求書PDF発行プロセス」と名前をつけました。

「Add a step」をクリックします。

 

step を追加する。

 

Step(ステップ)の名前をつけます。

「Step name」に「請求書PDF発行ステップ」と名前をつけました。

 

step の名前を入力する。

 

画面右側にStep設定パネルが開きます。

「Run a task」をクリックして選択し、「Create new task」をクリックしてtaskを作成します。

 

step を設定して、task を作成する。

 

「Task to run」にTask(タスク)の名前を入力します。

「請求書PDF発行タスク」と名前をつけました。

 

task の名前を入力する。

Task(タスク)

 

そのまま右側のパネルで設定を続けられますが、もう少し大きなパネルでやりましょう。

タブメニュー「Tasks」をクリックします。

さきほど作った「請求書PDF発行タスク」をクリックして設定パネルを開きます。

 

Automation メニュー、タブメニュー「Tasks」

 

設定パネルで以下のように設定します。

  • Task category:「Create a new file」
  • Table name:「請求書」
  • HTTP Content Type:「PDF」

続けて、Templateの書類アイコンをクリックします。

ここで第6回で作成したGoogleドキュメントのひな形を選択します。

 

Task Categoryに「Create a new file」を選択し、Template でファイルアイコンをクリックする。

 

Googleドライブを選択します。

 

Google ドライブをクリックする。

 

「請求書」のGoogleドキュメントを選択して、「Select」をクリックします。

 

Googleドキュメントの「請求書」を選択する。

 

Templateに「DocID=1....」と表示されたら無事にひな形が選択されました。

続けて、「File Folder Path」と「File Name Prefix」を設定します。

三角フラスコアイコンがあるフィールドをクリックします。

 

File Folder Path とFile Name Prefix を設定する。

 

「File Folder Path」はPDFを保存するGoogleドライブの場所を設定します。

Expression Assistantに「"/請求書/"」と「入力します。

アプリのルートディレクトリに「請求書」フォルダを作成するという意味です。

 

File Folder Path の Expression Assistant を設定する。

 

「File Name Prefix」はPDFにつけるファイル名を設定します。

Expression Assistantには以下のように入力します。

 

File Name Prefix の Expression Assistant を設定する。

 

このアプリでは請求書のファイル名に「件名 取引先 請求書番号」という名前をつけたいと思います。

CONCATENATE関数は()の中に、つなげたい文字列や [ 列名 ] をカンマ(, )で区切って列挙するだけで1つの文字列にできます。

 

CONCATENATE関数 CONCATENATE("文字列1", "文字列2", "文字列3", ・・・)
  • Disable Timestamp ? :チェックする
  • Attachment Page Orientation:「Portrait」
  • Attachment Page Size:「A4」

以上で、Taskの設定は完了です。

 

Disable Timestamp をチェックする。Attachment Page Orientation と Sizeを設定する。

Automationの流れ

 

念のため、Automationを確認してみましょう。

Botsには「請求書PDF発行」というBotがひとつあります。

 

Bot を確認する。

 

Eventsには「請求書トリガ」というEventがひとつあります。

 

Event を確認する。

 

Processesには「請求書PDF発行プロセス」がひとつあります。

 

Process を確認する。

 

Tasksには「請求書PDF発行タスク」がひとつあります。

 

Task を確認する。

Actionを設定する

 

Automationを実行するAction(アクション)を設定します。

左側メニュー「Behavior」をクリック、タブメニュー「Actions」をクリックします。

「New Action」で新しいActionを作成します。

 

Action を新規作成する。

 

Actionを以下のように設定します。

  • Action name:「請求書発行」
  • For a record of this table:「請求書」
  • Do this:「Data: set the values of some columns in this row」
  • Set these columns:「トリガ」「= [ トリガ ] + 1」
  • Action icon:「pdf」

 

「請求書発行」Action を設定する。

 

「Set thise columns」は「Add」をクリックして、「トリガ」を設定します。

三角フラスコアイコンをクリックして、Expression Assistantに以下のように入力します。

 

Set these columns の Expression Assistant を設定する。

 

この「請求書発行」Acitonを実行すると「トリガ」列の現在の値に1が加算されます。

AutomationのEventには「トリガ列の値が変更されたら・・・」という意味の式

  • [_THISROW_BEFORE].[トリガ] <> [_THISROW_AFTER].[トリガ]

 

を設定しているので、このActionを実行するとAutomationが実行されるということです。

 

右上の「Save」をクリックしてActionを保存しましょう。

これでAutomationを実行する準備ができました。

 

Automationを実行する

 

Automationを実行して請求書をPDFで発行してみましょう。

プレビュー画面で「請求書」を選択し、作成済みの請求書をひとつ選択します。

 

 

さきほど作った「請求書発行」Actionがボタンで表示されています。

ボタンをクリックするとAutomationが実行されるので、クリックしてみましょう。

 

「請求書発行」Action ボタンをクリックする。

 

Automationが実行されます。

 

Automation を実行中。

 

データソースのスプレッドシートを確認してみます。

「請求書」シートの「トリガ」が「1」になっていると思います。

「トリガ」列の値が更新されたのでAutomationが実行されます。

 

「トリガ」列に1が加算された。

 

では、請求書がPDFで発行されたかを確認してみましょう。

Googleドライブで「AppSheet」フォルダを開きます。

その中に「data」というフォルダがあるので開いてみましょう。

 

Googleドライブを確認する。

 

「Invoice-○○○○○○○」というフォルダがあると思うので開いてみましょう(○○○○○○○はowner's IDを含む文字列です)。

 

Invoiceフォルダを確認する。

 

「請求書」というフォルダがあると思います。

AutomationのTaskで設定した保存先の名前です。

 

「請求書」フォルダの中にある。

 

請求書PDFが保存されていれば成功です。

 

請求書がPDFで発行されて保存された。

 

前回(第6回)作成したGoogleドキュメントのひな形に、各テーブルの値が差し込まれて請求書が作成されました。

 

請求書PDF。

2. Automationで請求書のパスを保存する

 

Googleドライブに請求書PDFが保存されていることが確認できました。

ここでは、請求書アプリにPDFのリンクを表示して、アプリからPDFを開けるようにしましょう。

第2回で「請求書」テーブルに「請求書ファイル」という列を用意しておきました。この列にPDFのパスを保存します。

 

アプリのフォルダパスを取得する

 

さきほど、請求書PDFが保存されていた「Invoice-○○○○○○○」というフォルダがありました。

このフォルダのパス(Googleドライブ内の場所)を取得します。

 

左側メニュー「Info」をクリック、タブメニュー「Properties」をクリックします。

「App Properties」をクリックして設定パネルを開きます。

 

App Porperties を開く。

 

「Default app folder」の内容をコピペしてメモしておいてください。

「/appsheet/data/アプリ名-owner's ID」という文字列になっています。

 

Default app folder のパスをコピペしてメモしておく。

Stepを追加する

 

さきほど作成したAutomation、「請求書PDF発行」BotにStepを追加します。

左側メニュー「Automation」をクリック、タブメニュー「Bots」をクリックします。

「Add a step」をクリックします。

 

Automation > Bots > 「請求書PDF発行」にステップを追加する。

 

「Step name」にステップの名前をつけます。

「請求書パス保存ステップ」と名前をつけました。

 

ステップに名前をつける。

 

Stepができたら、クリックして選択します。

 

「請求書パス保存ステップ」をクリックして選択する。

 

右側に設定パネルが開きます。

「Run a data action」をクリックして選択します。

「Action to run」をクリックして、「Create new action」をクリックして新しいアクションを作成します。

 

Stepを設定し、Actionを新しく作る。

 

Actionに「請求書パス保存」という名前をつけました。

「Set row values」をクリックして選択します。

 

「Set these column (s)」を設定します。

「Add」をクリックして、「請求書ファイル」を選択します。

続けて、三角フラスコアイコンをクリックします。

 

Action を設定する。

 

Expression Assistantに以下の式を入力します。

「○○○○○○○」の部分を、コピペしてメモしておいた「Default app folder」の内容「/appsheet/data/Invoice-○○○○○○○」の「○○○○○○○」を置き換えれば大丈夫です。

 

 

【請求書のパス式】

 

CONCATENATE("/appsheet/data/Invoice-○○○○○○○/請求書/",[件名]," ",[取引先ID].[取引先], "様 ",[請求書番号],".pdf")

 

 

Expression Assistant は以下のようになります。

CONCATENATE関数を使用して文字列を結合します。

 

Default app folder のパスをペーストして、パスを完成させる。

 

設定が完了すると以下のようになります。

 

Action が完成した。

 

今作ったActionを調整します。

左側メニュー「Behavior」をクリック、タブメニュー「Actions」をクリックしました。

「請求書パス保存」をクリックして設定パネルを開きます。

 

Action を設定する。

 

Appeearance内にある「Prominence」を設定します。

「請求書パス保存」Actionはボタンを表示する必要がいないので、「Do not display」をクリックしてActionボタンを非表示にします。

 

「Do not display」でAction ボタンを非表示にする。

 

では、請求書を発行してみましょう。

請求書を選択して、「請求書発行」Actionボタンをクリックして発行します。

 

「請求書発行」Acitonを実行する。

 

請求書が発行され、Googleドライブに保存されると「請求書ファイル」に請求書のファイル名とリンクが表示されます。

リンクをクリックすると、請求書が表示されると思います。

 

請求書のパスを取得した。

 

スプレッドシートの「請求書ファイル」列に、請求書PDFのパスが保存されています。

アプリではこのパスをリンクとして表示しています。

これで、わざわざGoogleドライブにアクセスしなくても請求書を表示したり、別の場所に保存できるようになりました。

 

スプレッドシートにパスが保存された。

 

以上で、請求書アプリが完成しました。

このアプリを作ることで、SELECT関数の使い方やAppSheet Automationによる自動化を学ぶことができました。

AppSheetアプリの使い方を身につけるにあたり必須で重要なスキルが含まれています。

是非、ご自身で作ってみてください。

 

アプリを作る前に実際に試してみたい方は、アプリスイートが作ったサンプルアプリを7日間無料体験ができます。

こちらからお問い合わせください。