欧風プラットフォームで、和風帳票を実現したいんです!

欧風プラットフォームで、和風帳票を実現したいんです!

欧風プラットフォームで、和風帳票を実現したいんです!

以前、ローコードアプリ開発事始 〜  AppSheet 中心にで、ローコードアプリ開発事情と、Google に買収され日々 Google との連携が深まる AppSheet について触れました。

当社では、この AppSheet をベースに、あるニッチな業界向けの業務ソリューションを開発し提供しております。 オフィスで統括的に管理する担当者、日々様々な現場へ訪問する担当者が存在し、スマホとデスクトップでの利用が両方求められる業務シーンに対しても、AppSheet は強力な開発ツールになっています。

今回は、この開発・運用で感じている「AppSheet における和風帳票対応」について触れてみたいと思います。

1. AppSheet で帳票出力(標準機能)

まず、AppSheet、すごいです。Google が買収しただけありますね。

実現させたいと思う業務機能は、おおよそ実現できると思います。非常に素晴らしいプラットフォームと感じています。 帳票出力への対応もしっかりしています。Google Docs などでテンプレートを作成してあげれば、そのテンプレートに従い帳票が出力されます。つまり、専門的なスキルやツールがなくても、帳票デザインから出力が GUI ぽちぽちでできちゃうわけです。

業務フローの中で帳票出力させるために、2 つのトリガーのどちらかを使います。

  • データの追加・更新によるトリガー
  • 時間によるトリガー

前者は、ユーザによるアクションに紐付け、裏側でデータの追加・更新をみて、帳票出力に繋げます。これは、1 枚 1 枚、画面で内容を確認しながら帳票出力するときに使います。

後者は、バッチのイメージです。月次レポートなどは、夜間に流して、大量に出力するときに使います。

2. 和風への課題

このように非常に強力な標準機能ですが、やはり、ここにも限界があることがわかってきました。

当該業務アプリでは、いくつかの帳票は、行政側が指定している見栄えで出力する必要がありました。「エクセル方眼紙」的なもの、ザ・和風な見栄えなものなどに対して、相当に工夫をしましたが、空白スペースの限界などもあり、AppSheet の標準機能では実現できませんでした。

3. 救世主現る

そんな折、Facebook のJapan PowerApps User Groupで、日本企業が提供するクラウド帳票ソリューション Docurainが、欧風代表 Microsoft Power Automate に対応したという情報を目にしました。

Docurain 自体は、以前から存じ上げておりましたので、このニュースには非常に驚き、また嬉しく感じました。「これで、醤油風味の帳票出力機能開発で無駄な汗をかかなくて済む。。。ありがとう、Docurain さま。。。」と。

4. 使ってみる

AppSheet 側の帳票出力機能でしばしば原因不明の事象「フォントが正しく出ない」が発生するため、代替手段として Docurain を試してみることにしました。

4.1. Docurain の使い方(ざっくり)

基本的には非常に簡単です。

  • エクセルで、帳票テンプレートのデザインをする(Docurain 指定のパラメタを入れてあげたり見栄えを整える)
  • デザインしたテンプレートを、Docurain 開発コンソールでアップロード
  • 指定された REST API を、POST で叩く
  • -Hオプションで、認証用 Token を指定
  • -dオプションで、帳票に出力させる「値」を JSON 形式(JSON 以外も可)で指定
  • -oオプションで、出力ファイルを指定

4.2 つぶらな瞳で、AppSheet で Docurain を叩こうとする

AppSheet も、ご多分に漏れず、外部連携機能として webhook が使えます

この webhook を使って、そのまま行けるのか?期待しながらやってみました。

  • まず、認証 Token の指定は可能です
  • JSON を渡すことも可能です

が、どういじってみても、公式情報を読みあさっても、-o指定はできず、Docurain から出力されるファイルを制御できないことがわかりました。

ということで、おそらく、執筆時点では、

AppSheet の標準の webhook 機能では、Docurain と連携できない

ということだと認識しています。

4.3 なんとか AppSheet と Docurain は出会えないのか?

こうなると、禁じ手を使い、禁断の出会いを演出しなければいけません。

常套手段ですが、Amazon API Gateway を使うことにしました。

Amazon API Gateway で API を作ります。これが、AppSheet からの入り口です。 この入り口から入ってくる( AppSheet からの) JSON 形式のデータを、Lambda 関数で Docurain 側に渡してあげます。

実験の結果、期待する動作が実現できることを確認しました。

AppSheet と Docurain の禁断の出会い

5. 最後に

Docurain さんのおかげで、業務システムで必ずと言っていいほど求められる帳票出力機能について、欧風/和風にかかわらず、(昔はものすご〜く面倒だったけど)相当手軽に問題なく開発・提供できる時代になっています。

今後は、さらに汎用的なコネクターが作れたら良いかのなと思案しているところです。