Google AppsheetでスプレッドシートのデータからPDFファイルを出力する機能を開発してみた
はじめに
この記事の筆者の私は、2017年よりベトナムから日本へ来て、2018年ハイペリオンに入社しました。
テスターとしてのキャリアを開始し、単体テスト、結合テスト、総合テストを一通り経験。
品質保証計画プロジェクトへメンバーとして参加するなど、品質管理のエキスパートとして経験を重ねてきました。
そして、今回社内の技術検証でGoogle Appsheetというノーコードツールを試しました。
開発の目的
社内の他部署業務のシステム化
検証内容・結果
検証内容
Google Appsheetで下記機能の開発が可能か
① GoogleスプレッドシートからPDF出力する機能(スプレッドシート上の情報から契約書を自動作成・PDF化)
② メールの自動作成・送信する機能(①のPDFを送信するメール内容テンプレート自動作成/下書き保存・送信)
検証結果
検証内容の①②について、いずれも開発が可能。
前回は「② メールの自動作成・送信機能の開発」を紹介しました。
今回は「① GoogleスプレッドシートからPDFを出力する機能の開発」について、ご紹介します。
開発機能のご紹介
画面遷移図
アプリのオーダー関連画面で見積書発行する際、テンプレートに基づいてPDFファイルを自動で作成する。
メインメニュー(フッター部)
フッターメニューでオーダー一覧など、システムのメイン機能画面への遷移を行う。
オーダー一覧画面
システムの案件・オーダーについて、全てリスト表示する。
新しいオーダーを登録するためのオーダー入力画面への遷移を行う。
登録したオーダーについて、編集、削除、見積書・注文書発行ができる。
オーダー入力画面
オーダーを登録する。
オーダー登録・編集する際、この画面へ遷移する。
オーダー確認画面
登録したオーダー情報を確認、オーダー明細の追加もできる。
画面明細一覧部分で確認しているオーダーの案件明細を全てリスト表示する。
オーダー情報を編集するためのオーダー登録画面への遷移を行う。
また、オーダー明細情報を照会するためのオーダー明細確認画面への遷移も行う。
確認しているオーダーについて、削除、見積書・注文書発行ができる。
作成した見積書・注文書ファイルも、この画面で開いてレビューできる。
オーダー明細入力画面
オーダー明細を登録する。
オーダー明細を登録・編集する際も、この画面へ遷移する。
オーダー明細確認画面
オーダー明細内容を表示・編集ができる。
開発の流れご紹介
ステップ1
Google スプレッドシートからGoogle Appsheetにデータ化をする。(DBが前回のメールデータに連結あり。)
ファイル発行状態はフラグで管理する。
ステップ2
オーダー明細(dtb_order_itemテーブル)が、オーダー番号(order_no)を通じて、オーダー(tbl_orderテーブル)との子関係があるので、
オーダー明細テーブルでorder_noにRefタイプを設定し、オーダーと連結設定する。
ステップ3
オーダー情報を表示するためのViewを準備する。
ステップ4
見積書ファイルを作成するためのアクションを作成し、ボタンに紐づける。
※ファイル作成はクライアントの方ではなくサーバーサイドの処理なので、ファイルを作成するためのActionはフラグを設定し、後で作成するBotを呼んで処理する。
ステップ5
Bot・オートメーションで見積書ファイル作成処理のTrigger(トリガー:いつにする)とProcess(プロセス:なにをする)を設定する。
ファイルテンプレートを作成し、テンプレートアドレスを指定する。
作成するファイルのファイル名と保存場所を指定する。
デフォルトファイルアドレスを設定することがオススメ。
ファイルを作成完了した後、状態フラグと画面で確認するためのファイルアドレスを設定する。
※この設定通りに作成したファイルは、画面とリンクすると直接開ける。
まとめ
Appsheetはノーコード開発ツール・プラットフォームですし、開発経験がなくても自身で簡単にアプリを作成できますが、ファイル出力についてAppsheetは限界があります。
例えば、出力ファイルタイプはPDFやHTMLなどのみサポートし、DOCXのようなドキュメントファイルは作成できていません。
また、テンプレートから出力ファイルに変換するとき、フォーマット関連の問題が発生するかもしれませんので、複雑なテンプレートはオススメしません。
ですが、このプラットフォームは強いサポートがあって、熱心な専門家とコンミュニティの人からアドバイスをもらうことができますよ。
次回は、検証内容①「GoogleスプレッドシートからPDFを出力する機能」と、検証内容②「メールの自動作成・送信機能」の組み合わせ開発方法と統一化の結果、開発時点で見つけた問題について、ご紹介します。