Apps Script connector ファーストインプレッション
ついに AppSheet から GAS を簡単に呼び出せる Apps Script connector が正式リリースされました。少し触ってみたのですが、これは確かに便利でお手軽です。以前はApigeeを経由させる必要があり相当面倒だったので、これは大きな進歩でしょう。
使い方としては簡単で、Automation の Task に追加された「Call a script」に、呼び出したいGASのスクリプトファイルと関数、パラメータを指定するだけです。
詳しい手順は、こちらの Google Developers Blog や、公式ヘルプを見てもらえばすぐに理解できるかと思います。ちなみに、GAS の関数から戻り値は取得できない(非同期な呼び出し)なので気を付けてください。
想定されるユースケース
既存のGAS資産の活用、流用がこれでかなり進むんじゃないかと考えています。例えば、以下のようなケースです。
PDF帳票を作成しメールする
PDF帳票は AppSheet のレポート機能でも実現できるのですが、AppSheet エディタではなくGoogleドキュメントに埋め込む形なのでちょっと面倒です。また、(私もそうなのですが)スプレッドシートをテンプレートとした既存のPDF帳票作成ロジックを、そのまま流用したいというニーズは多そうです。
他にも、メールでなくLINEやSlackなどにポストするようなGASスクリプトを流用するのも便利です(もともと「Call a webhook」で実現できるのですが、GASのほうが柔軟だし流用できればさらに楽)。
基幹システム連携の中継ポイント
GASだけで基幹システムを組み上げるようなケースは稀でしょう。どちらかといえば、フロントエンドとしてGASのWebアプリやスプレッドシートを利用し、バックエンドの基幹システムとはAPIやデータベースで連携するようなことが多いかと思います。
今後このようなシステムをアップデートする際に、新規のフロントアプリは AppSheet で開発してモダナイズし、基幹システムとの連携には従来のアプリバックエンドとしてのGAS関数(Webアプリから google.script.run で呼び出されている)を流用するのは、現実的なアプローチかと思います。
注意点
まだほんの少し触った程度なのですが、現時点で気が付いた注意点をあげておきます。
呼び出すGASのプロジェクトは V8ランタイムでないとだめ
現在では、新規作成される GAS の JavaScript ランタイムは「Chrome V8 ランタイム」になっているのですが、このチェックを外してしまうと、AppSheet から GAS の関数を指定する場合にパラメータが取得できず、実質利用できません。
試しにV8のチェックを外して、Apps Script Project を再読み込みさせてみると、以下のように、Function Name リストの「sendMessageAPI」からパラメータが消えてしまい、以前は正しく設定されていた、Functions Parameters がエラーとなってしまいました。(冒頭のスクショと比較してみてください)
もちろん、V8ランタイムを指定すれば問題ないのですが、これは既存資産を流用する場合にネックになる可能性があります。古くからGASを活用してシステムを組んでいる企業では、V8対応への移行が完了していないからです。特に企業で良く利用される、JDBCサービス周りの致命的な問題が今だ残っているのが痛いです。
当然、GASのV8対応はAppSheet の問題ではありませんが、これが足を引っ張って企業での AppSheet (+Apps Script connector)の本格導入・利用が進まないのはもったいなく、Google さんにはトータルで頑張ってほしいものです。