請求書アプリのユースケースで、AppSheet AutomationのTask(タスク)設定をマスターします。
前回(第1回)は、Automationに用意されている6つのTaskの使い方と活用事例について紹介しました。
今回から、実際にTaskの設定をやってみましょう。
前回の解説で、Bot(ボット)→Event(イベント)→Process(プロセス)の設定まで済んでいるので、追加済のStepに「Create a new file」というTaskを設定してみます。
この記事で使用する請求書アプリは、ブログで解説している請求書アプリ(7回シリーズ)です。
ブログを読んでアプリを自作していない場合は、メルマガ購読者特典のサンプルアプリをダウンロードしても大丈夫です。
【お知らせ】
2022年10月以降、AppSheetエディタの画面が新しく変更されています。
AppSheetのアップデートが速すぎて(汗)、このブログ記事はまだ新エディタの画面には対応していません。
エディタ画面右上にある「Switch to the legacy editor」というアイコンをクリックすると、新エディタと旧エディタの切り替えができます。
記事のアップデートができるまでは、とりあえず、旧エディタに切り替えて解説を読んでください。
目次
1. AppSheetではExcelのファイル出力もできる
「Create a new file」というTaskを使うと、AppSheetのデータを使ってファイル出力ができるようになります。
このブログでは、請求書アプリと在庫管理アプリで「Create a new file」を使ってPDFを出力してきました。
今回は、請求書アプリでExcelの請求書を出力してみます。
「Create a new file」では、ひな形(テンプレート)を使ってファイルを作成します。
PDFの請求書では、Googleドキュメント(Docs)を使ってひな形を作成しました。
今回は、ひな形としてExcelのファイルを使用します。
Googleドキュメントと比較すると、Excelは調整が必要になるため多少面倒です。
ですが、上記記事と同様にサンプルファイルを用意していますので、応用編としてやってみましょう。
2. Create a new fileを設定する
「Create a new file」の設定を始めましょう。
前回(第1回)からの続きです。
「Tasks」タブに移動してみましょう。
「Show Unlinked」になっている場合はクリックしてみます。
前回(第1回)で追加したTask(請求書Automationステップ Task - 1)があるでしょうか。
クリックして設定パネルを開きましょう。
タスク設定パネルが開くので、以下のようにTaskを設定します。
設定項目 | 値 |
---|---|
Task category | 「Create a new file」を選択します。 |
Task name | タスクの名前です。ここでは「請求書発行」にしました。 |
Table name | タスクを実行するテーブルです。ここでは「請求書」を選択します。 |
HTTP Content Type | ファイルのコンテンツタイプを選びます。ここでは「XLSX」を選びます。 ファイルタイプには、CSV、HTML、ICS_Calendar、JSON、PDF、XLSX、XMLがあります。 |
Template | ファイルのひな形(テンプレート)を選択します。 |
File Store | 「Default」のままでよいです。 |
「Template」は、ファイルのひな形を選択します。
今回はExcelで請求書を作成するので、 サンプルとしてExcelのデータを用意しました。
下のExcelアイコンをクリックして、データをダウンロードしてください。
Googleアカウントにログインして、GoogleドライブにExcelのファイルをアップロードしましょう。
では、ひな形を読み込みましょう。「Template」の書類アイコンをクリックします。
Upload fromで「Google Drive Files」を選択します。
さきほどGoogleドライブに保存したExcelファイルを選択して、「Select」をクリックします。
ひな形のExcelファイルが読み込まれると、「DocID=1xxxxxxxx」のようにドキュメントIDが表示されます。
設定を続けましょう。
ファイルの保存場所やファイル名について設定します。
設定項目 | 値 |
---|---|
File Folder Path | ファイルを保存する場所(Googleドライブ)を指定します(空欄でも可)。 空欄の場合は、アプリフォルダ内に「Files」というフォルダが自動的に作成されて、その中にファイルが保存されます。 |
File Name Prefix | ファイル名を設定します。三角フラスコアイコンをクリックして、式で動的に設定することができます。 |
Disable Timestamp? | チェックしてONにすると、ファイル名にタイムスタンプを追加しません。デフォルトではOFFになっているので、ファイル名にタイムスタンプが追加されます。 ここでは、チェックしてONにしておきます。 |
「File Folder Path」(ファイル保存場所)は、ここでは空欄にしておきます。
アプリフォルダ内に「Files」というフォルダが自動的に作成されて、その中にファイルが保存されます。
「File Name Prefix」(ファイル名)は式で設定しましょう。
三角フラスコアイコンをクリックして、Expression Assistantに以下のように入力してください。
以下の式をコピペして使っても大丈夫です。
[請求書番号] & "-" & [トリガ]
「Disable Timestamp?」は、タイムスタンプを追加したくないので、チェックしてONにしておきます。
最後に、「HTTP Content Type」がPDFの場合はファイルサイズに関する設定があります。
今回は、XLSX(Excel)なので設定がありません。以上で「Create a new file」の設定は完了です。
設定項目 | 値 |
---|---|
Attachment Page Orientation | Portrait(タテ)かLandscape(ヨコ)か選択します。 |
Attachment Page Size | ページサイズを選択します。 |
Use Custom Margins | デフォルトのままで問題ありません。 |
3. Excelファイルの出力は調整が必要
さっそく、Botを実行して請求書をExcelで作成してみましょう。
AppSheetエディタのプレビューで「請求書」を選択し、作成済みの請求書をひとつ選択します。
Botを実行するためのActionは、請求書アプリ(第7回)で既に作成済みです。
「請求書発行」ボタンをクリックするとBotが実行されるので、クリックしてみましょう。
請求書がExcelで発行されたかを確認してみましょう。
Googleドライブに「AppSheet」というフォルダがあります。
その中に「data」というフォルダがあるので開いてみましょう。
アプリフォルダを開いてみましょう。
請求書アプリでは、「請求書-○○○○○○○」(○○○○○○○はowner's IDを含む文字列)という名前が付いています。
「Files」というフォルダの中に請求書Excelが保存されているでしょうか?
では、請求書のExcelファイルを開いてみましょう。
表示がおかしくなっていませんか?
実は、Excelをひな形にしてファイルを作成する場合、ちょっと工夫が必要になります。
その調整法について解説する前に、ひな形の作成についておさらいしておきましょう。
4. AppSheetではタグを使って差し込みできる
Googleドライブに保存したExcelのひな形ファイルを開いてみましょう。
タグの使い方
AppSheetでは、ひな形に列の値を差し込む時に「タグ」を使用します。
タグは以下のように、<<>>内に[列名]を記載します。
<<[ 列名 ]>>
例えば、請求書の請求日と請求書番号は以下のように書きます。
- <<[請求日]>>
- <<[請求書番号]>>
ひな形では以下のような感じになっています。
参照テーブルの値はリレーションを利用する
取引先情報は「請求書」テーブルから「取引先」テーブルを参照して、必要な列の値を取得します。
請求書アプリ(第2回)で「請求書」テーブルと「取引先」テーブルにリレーションシップを設定しているので、それを利用します。
参照テーブルから値を取得するタグの書き方は以下のようになります。
<< [ Ref を設定した列名].[参照テーブル内の列名 ] >>
「取引先」テーブル内にある「取引先名」「部署」「担当者」を取得する場合は以下のように書きます。
- [取引先].[取引先名]
- [取引先].[部署]
- [取引先].[担当者]
ひな形では以下のようになっています。
StartタグとEndタグの使い方
請求書の明細は「請求書」テーブルにある「Related 明細s」列から明細リストを取得します。
取得した明細行を表組にするために、StartタグとEndタグを使用します。
<< Start: [ Related テーブル名s ]>>
<<[列名]>><<[列名]>><<[列名]>>...
<<End>>
ひな形では以下のようになっています。
5. Excelのひな形を調整する
再度、Excelの請求書を見てみましょう。
以下の三点の表示に不具合があることがわかります。
- 取引先情報の「御中」「様」、「請求金額」「(税込)」などの文字列が表示されない
- 単価、金額、消費税、合計欄が通貨表示されない
- 日付が「44868」「44895」などの数字になっている
この不具合を解消するために、Excelのひな形では以下のように設定しておきましょう。
- セル内にタグと文字列を混在させない
- 通貨と日付は表示形式を設定する
セル内にタグと文字列を混在させない
取引先名を表示するセルを選択してみましょう。
セル内に、取引先を取得表示するタグと「御中」という文字列が書かれています。
同じように、タグと文字列が混在しているセルがいくつかあります。
- 取引先部署、取引先担当者
- 請求日、請求書番号
- 支払期日、備考
AppSheetでは、セル内にタグと文字列が混在している場合はタグを優先して表示し、文字列は消えてしまいます。
Excelのひな形を修正してみましょう。
直接ひな形ファイルを修正してもよいですし、修正版のExcelのデータを用意したのでダウンロードして使ってもよいです。下のExcelアイコンをクリックしてください。
ひな形ファイルを修正する場合は、Templateの「View」をクリックします。
ひな形ファイルが開いたら「アプリで開く」をクリックして、「Googleスプレッドシート」を選択します。
GoogleスプレッドシートでExcelファイルが開くので、編集できるようになります。
はじめに、タグと文字列は混在しないようにセルを分けましょう。
取引先名はA3にタグ、C3に文字列「御中」に分けてみました。
同様に、担当者はA5にタグ、B5に文字列「様」に分けてみましょう。
請求金額、支払期日、備考も、以下のようにタグと文字列のセルを分けます。
請求日、請求書番号も以下のようにセルを分けます。
通貨と日付は表示形式を設定する
通貨と日付は、Googleスプレッドシートの書式設定オプションで表示形式を設定します。
はじめに通貨の表示形式を設定します。
請求金額の<<[合計]>>セル(以下の例では、B9)を選択した状態で、表示形式(123)をクリックし「カスタム通貨」を選択します。
「日本円」を選択して「適用」をクリックします。
同じ要領で、単価、金額、小計、消費税、合計のセルも表示形式を「日本円」にしましょう。
続けて日付の表示形式を設定します。
支払期日の<<[支払期日]>>セル(以下の例では、B11)を選択した状態で、表示形式(123)をクリックし「日付」を選択します。
同じ要領で、請求日の表示形式を「日付」に設定しましょう。
以上で、Excelひな形ファイルの調整は完了です。
Botを実行して、請求書ファイルを作成してみましょう。
今度は正しく表示されたでしょうか。
AppSheetのサーバーにキャッシュが残っている場合があるので、すぐに修正が反映されない場合があります。
何度か「Save」したり、リロードするとキャッシュがクリアされるので、試してみてください。
以下のようになっていれば成功です。
6. Excelファイルのメリットとデメリット
Task「Create a new file」で請求書をExcelで作成できるようになりました。
Excelファイルの作成には以下のような特徴があります。
Excelは、PDFと比較して必ずしも優位性があるとは限らず、一長一短という感じです。
Excelのメリット
実は、AppSheetでPDFファイルを作成すると、日本語フォントが中国語っぽい感じで表示されるという問題があります。
例えば、消費税の「消」の文字は以下のように表示されます。
原因はおそらくAppSheetのバックエンドサーバーが海外にあるため、ロケール設定が日本語に対応していないからと推察されます。
なので、AppSheetエディタ側の設定では、フォント問題を克服することはできません。
フォントがどうしても気になる場合は、Excelによるファイル作成を検討してみてください。
出力後は、普通のExcelファイルとして操作することができます。
ページ番号設定をしたり、PDFで出力することもできます。
Excelのデメリット
PDFと比較すると、Excelのひな形は調整が必要で設定に手間がかかりました。
他にも、
- ひな形に画像ファイルを配置しても出力できない。
- レイアウトが自由にできない
というデメリットがあります。
例えば、請求書に会社のロゴや社印の画像を入れたい場合があると思います。
ひな形ファイルに画像を配置しても、AppSheetでは無視されるようで画像が出力されません。
Googleドキュメントのひな形なら画像の出力ができるので、この点はExcelのデメリットです。
請求書レイアウトについては、明細行を最下部にする必要があります。
仮に、明細行の下に小計、消費税、合計欄を置いたとしましょう。
明細行の数が増えると、上書きされて消えてしまいます。
Excel出力では行を挿入して増やしてくれるわけではないので、このようになります。
以上よりPDFとExcelを比較すると、設定が簡単なPDFの方に若干分があるような気がします。
Excelで請求書については、
- どうしてもフォントが気になる
- ロゴや社印などの画像は不要である
- レイアウトにこだわりがない
場合に検討してもよいでしょう。
次回(第3回)は、「Send an email」でBotからメール送信するTaskを設定してみます。
「Send an email」では添付ファイル作成も同時にできるので、請求書作成 → メール送信ならこのTask一発でワークフローを自動化できます。
是非、挑戦してみてください!
- 第1回 6つのTaskでできること
- 第2回「Create a new file」でファイルを作成する
- 第3回「Send an email」でメールを送信する
- 第4回「Call a webhook」でLINEにプッシュ通知する
- 第5回「Call a script」でAppSheetとGASを連携させる
- 第6回「Send a notification」でモバイルに通知する