Apps Script connector ファーストインプレッション

ついに AppSheet から GAS を簡単に呼び出せる Apps Script connector が正式リリースされました。少し触ってみたのですが、これは確かに便利でお手軽です。以前はApigeeを経由させる必要があり相当面倒だったので、これは大きな進歩でしょう。

使い方としては簡単で、Automation の Task に追加された「Call a script」に、呼び出したいGASのスクリプトファイルと関数、パラメータを指定するだけです。

f:id:HappymanOkajima:20220415175951p:plain

詳しい手順は、こちらの 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 の関数を指定する場合にパラメータが取得できず、実質利用できません。

f:id:HappymanOkajima:20220415182033p:plain

 

試しにV8のチェックを外して、Apps Script Project を再読み込みさせてみると、以下のように、Function Name リストの「sendMessageAPI」からパラメータが消えてしまい、以前は正しく設定されていた、Functions Parameters がエラーとなってしまいました。(冒頭のスクショと比較してみてください)

 

f:id:HappymanOkajima:20220415182515p:plain

 

もちろん、V8ランタイムを指定すれば問題ないのですが、これは既存資産を流用する場合にネックになる可能性があります。古くからGASを活用してシステムを組んでいる企業では、V8対応への移行が完了していないからです。特に企業で良く利用される、JDBCサービス周りの致命的な問題が今だ残っているのが痛いです。

当然、GASのV8対応はAppSheet の問題ではありませんが、これが足を引っ張って企業での AppSheet (+Apps Script connector)の本格導入・利用が進まないのはもったいなく、Google さんにはトータルで頑張ってほしいものです。