Open10

AppSheetでチーム管理アプリづくりに挑戦(その④)

PC1350PC1350

その②で作った「報告書を自動作成するBot」を実装する。

前準備

  1. まず前準備として[年度]テーブルのスプレッドシートに「報告書作成」カラムを追加する。
    このセルの値を「NO」から「YES」に切り替えることで、Bot始動のトリガーとする。


[年度]テーブルのスプレッドシート

  1. [年度]テーブルのColumnsを「Regenerate Structure」を押して、カラムを再構築する。


[年度]テーブルのカラムの再構築

  1. 新しく用意した「報告書作成」カラムのTypeを「Yes/No」に設定


「報告書作成」カラムの設定

  1. [年度_Detail]のView OptionsのQuick edit columnsに「報告書作成」カラムと「メモ」カラムを追加して、Detail画面からの編集を可能にする。


[年度_Detail]ビューの設定


前準備完了後の「活動Dash」ビュー

PC1350PC1350

活動報告書Botを作成する

「年度_Detail」ビューの「報告書作成」ボタンで「YES」を選択したら、PDF形式で活動報告書を作成するBotを作る。

  1. AutomationメニューのBotsタブから「+New Bot」を押して、Otherに開かれたBot name欄に「活動報告書」とBotの名前を入力して、「Create a custom bot」を押す。


Botの新規作成画面

  1. When this EVENT occurs:の「Configure event」を押すと、エディターの右側にSettingsというBotを始動させる条件を設定する画面が表示されるので、以下のように設定する。
  • Event Type:Date Change → Updates only
  • Table:年度
  • Condition:[報告書作成] = "YES"
    (説明)
    [年度]テーブルの[報告書作成]カラムの値が「YES」に変更されたら、Botを始動させる。


Botの始動条件の設定画面

  1. Run this PROCESS:でBot始動後のプロセスを以下のように設定する。
  • Step name:「活動報告書を作成」
  • Settings画面でCreate a new fileを選択
  • Table name:年度
  • HTTP Content Type:PDF
  • File Folder Path:"活動報告書/"&[ID年度]&"_"&[年度]
    (説明)Gドライブの「マイドライブ/appsheet\data/(アプリ名-ID)」フォルダーの直下に「/活動報告書/(年度テーブルのID)_〇〇年度」というフォルダーを生成する
  • File Name Prefix:[ID年度]&"_"&[年度]&"_活動報告書"
    (説明)上記で作成したフォルダー内に、「(年度テーブルのID)_〇〇年度_活動報告書(タイムスタンプ).pdf」というファイルを生成する


Botのプロセスの設定画面

  1. 同じくSettings画面のTemplateにある「Create」ボタンを押して、Gドキュメント文書のデフォルトの書式を生成したら、「View」ボタンが表示されるので中身を確認する。


Gドキュメントのデフォルトの書式

  1. 「SAVE」ボタンを押し、設定を保存する。
  2. Gドライブに「活動報告書」フォルダーが作られていることを確認する。


Gドライブの「活動報告書」フォルダー

  1. ../活動報告書/867f74c5_2022年度フォルダー内にPDFファイルが作られていることを確認する。


PDFファイル

  1. PDFファイルを開き、中身を確認する。


生成された活動報告書(書式はデフォルト)

PC1350PC1350

Gドキュメントの書式をカスタマイズする

デフォルトのテンプレートでは表内にIDが羅列されているので、<<[(カラム名)]>>を表示させたいカラム名に置き換える。
あと、表の列幅を調整したり、センタリングなどを施して書式を整える。


テンプレートのカスタマイズ

[年度_Detail]ビューの「報告書作成」ボタンを「NO」に戻した後、「YES」に入れ直すと、新しい書式でPDFファイルが生成される。


新しくできたPDFファイル


書式をカスタマイズしたあとの活動報告書

PC1350PC1350

活動報告書に対戦履歴を追加する

ここで、ちょっとした問題が生じる。
1ボタンで活動報告書に対戦履歴を追加して出力させるには、[年度]テーブルに[対戦履歴]テーブルをつなげる必要がある。
そこで、再度、リレーションを見直す。
[年度]テーブルと[対戦チーム]テーブルの中間に[年度_対戦]テーブルを設けて、[年度_行事]テーブルと並列に並べてみる。
ただし、そのままだと[年度_会員]テーブルから派生した[選手]テーブルを介して、輪廻を起こしてしまうので、少々強引だが[選手]テーブルで使用する会員はスライスした[本年度会員(slice)]テーブルを使って、輪廻を断ち切ってみる。


モデリング

PC1350PC1350

[対戦履歴]テーブルを[年度_対戦]テーブルに改造をして、リレーションを確認する。


リレーション

PC1350PC1350

[活動Dash]ビューと[大会Dash]ビューも変更する。
「メンバー表作成」の「YES/NO」ボタンと「検索」ボタンもついでに作る。

[活動Dash]ビューでは、行事の計画や大会の対戦結果を入力して、年度末に活動報告書と対戦履歴をPDFで出力する。


[活動Dash]ビュー

[大会Dash]ビューでは、参加する大会と選手の登録を行い、選手リストをスプレッドシートに出力する。


[大会Dash]ビュー

PC1350PC1350

ファイル検索Botの作成

「メンバー表」Botは「活動報告書」Botとほぼ同じなので割愛し、「検索」ボタンの作り方をおさらいする。

  1. BehaviorメニューのActionタブから「+New Action」ボタンを押して、新規アクションを作成する。


アクションの新規作成

  1. アクションを次のように設定する。
  • Action name:「活動報告書を探す」
  • For a record of this table:年度
  • Do this:External: go to a website
  • Target:
'https://drive.google.com/drive/search?q=title:'&[ID年度]&'%20type:folder'
  • Action icon:(適当なアイコンを選択)

    アクションの設定
  1. Prominence:「Display inline」を選択して、「Display prominently」に戻す。


アクションボタンの表示方法

  1. 「SAVE」ボタンを押して、設定を保存する。
PC1350PC1350

活動報告書の書式に対戦履歴を追加する


活動報告書の書式を変更


活動報告書の出力結果

PC1350PC1350

選手リストの書式をカスタマイズする

Botでは、XLSX(エクセル)のファイル形式で出力されるので、スプレッドシートで開いて初期をカスタマイズする。


メンバー表のカスタマイズ


メンバー表の出力結果

PC1350PC1350

やはりスライスが気になる。
中間テーブルが多いような気がする。
ということで、もう一度、モデリングからやり直す。