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 さんにはトータルで頑張ってほしいものです。

 

アジャイルって何? ~ Agile Japan 2021 北陸サテライトであらためて学んだこと

おかかアジャイルって何?」

子供時代からのあだ名で私を呼ぶような古い友人に、このような質問をされることがあります。Facebookでやたら、アジャイルアジャイルだと書いているからなんでしょうね。

そのたびに私は、できるだけわかりやすいように、例えを駆使して、何度か説明を試みてきました。

  • 家を建てるときに設計士がまず全体の図面引いて、そのあと大工さんが建てるのが普通でしょ。でも、そうでなくて、顧客の欲しい部屋から設計と施工をスピーディーに繰り返していくイメージなのよ

「うーん。わかるようでわからない。」

  • みんなスマホでアプリ使ってるでしょ?最近のアプリって、最初は必要最小限の機能があって、どんどん要望や流行りに合わせて機能が追加されるでしょ?そうすることで、ビジネスを無駄なく回せると思わない?アジャイルは今のビジネス環境に合わせて出てきた手法なんだよ

「うーん。少しはわかったような。」

まあ、こんな感じになります。

ソフトウェア開発から生まれたアジャイル手法や、その後、それをビジネスや経営に拡大適用している「アジャイル」の現在地点を、ひとまとめでわかりやすくソフトウェアやIT業界外の人に説明するのは難しいよなぁ。。

など考える日々の中、1月22日に開催された Agile Japan 2021 北陸サテライトに実行委員として参加してきました。

北陸サテライトで再度学んだアジャイルの本質

まずは、基調講演であるアリスター・コーバーン博士の録画再演をじっくり視聴しました。博士曰く、アジャイルの本質は「素早くかつ容易に行動し方向転換する力」なんだと。

アジャイルソフトウェア開発宣言はソフトウェア業界向けなので、他の職種の人たちがアジャイルを活用するときは、辞書的な定義・意味を理解してもらうことが大切だとのことです。

私も、"agile" を辞書で引いたことは何度かありますが、この定義が一番しっくりきました。これからは、「アジャイルって何?」という質問に、次のように回答することもできそうです。

  • アジャイルとは「素早くかつ容易に行動し方向転換する力」のことなんだけど昔の常識やしがらみに縛られた仕事のやり方では、その力を発揮するのが難しいことも多くて、それが今の時代にはマッチせず難儀してる企業が数多いのよ。でも、アジャイルの力を組織に注入したいと考える人も増えていて、僕はそれの手助けをする仕事をしているんだよ

これでもうまく伝わるか、まだわかりません。ただ、こうやって本質を考え続けるきっかけとなる人の集まり・イベントは本当に有意義なんだということを改めて感じます。

まとまりとメッセージのあるセッション

コーバーン博士以外のセッションも素敵でした。

北陸サテライト基調講演の北國銀行岩間さんには、銀行から地域総合企業への変革の道のりについて、生々しくお話いただきました。前日のアジャイル経営カンファレンスでもお話を伺っていたのですが、エンジニアが中心となる北陸サテライトの客層に合わせ、現場の声を入れてくださるなど、わかりやすく勇気がもらえる内容でした。

富山のクリエーションライン長田さんは、Scrumを取り入れてみて感じたことをストレートに伝えてくれるさわやかな事例でした。モブの良さと難しさ(言葉遣い問題)など、アジャイル開発を実践する人にとって共感度が高かったです。

石川のカラフルカンパニー渡辺さんは、テクニカルな内容も含んだ幅広いレンジで、自身の活動をふりかえりながら、まさに、悩みながらも、「素早くかつ容易に行動し方向転換する」している様を現在進行形で伝えてくださりました。

福井の永和システムマネジメント岡本さんは、ご自身のエンジニア人生をふりかえりながら「人脈・プレゼンス・経験」というコア資産の重要性と、リモート時代では地方在住でもそれが弱みにはならない点を強調されていました。特にコア資産の大切さについて、私も強く共感します。

富山、石川、福井それぞれの方に話してもらうことを重視し、内容についてはお任せだったのですが、結果的には、全体に統一感のあるイベントだったように思います。このあたりは、歴史ある Agile Japan のサテライトイベントとしての強みかもしれませんね。

アジャイルの体現者であり続けよう

今回は、ZoomとDiscordを使ったリモート開催でしたが、北陸以外の方も参加くださり、多い時で38人がZoomに接続していました。これはもちろん、既存のイベントに比べれば小さな集まりなのですが、私は、何かとても大きな力を感じました。

まず、Agile Japanやスクフェスをはじめ、これまで各地で開かれてきた(オンライン)カンファレンスにおけるノウハウは大きいです。これにより、地域を超えた集まりを、今後も続けていけそうだという自信を持てました。先人の積み上げた知見に本当に感謝です。

そしてもちろん、そこに集った人達の想いも。今は小さくても、参加者の会話が重なることで、次に繋げていきたい、繋げていくぞ、という熱を、ネットワーキングでの会話や、Twitterを通じて感じることができました。

最後になりますが、実行委員長をはじめスタッフの方々、登壇者、参加者の皆様、あらためて、ありがとうございました。これからも、それぞれの現場で、素早くかつ容易に行動し方向転換し、アジャイルの本質を体現していきましょう。

 

 

兼業で福井県CDO補佐官として働きます

本日福井県より発表がありましたが、2022年1月11日より、地方兼業(委嘱)未来戦略アドバイザーという形で、CDO補佐官として福井県のDX推進をサポートさせていただきます。

本業(永和システムマネジメント Agile Studio)で培った経験を、地元福井県のために活かしてみたいという想いで応募したのですが、私のやってみたいこと・強みと、福井県の求めていること・課題感がマッチしたようで、多くの応募者の中から選んでいただきました(もう一名の補佐官は、自治体DXに関する実績が豊富な神奈川の狩野さんです。多くのことを学べそうで楽しみです)。

f:id:HappymanOkajima:20220112131735j:plain

狩野さん、米倉DX推進監、岡島

私のやりたいことキーワードは、アジャイルと内製化、そしてノーコードです。ご参考までに、提案スライドをそのまま貼っておきます。短いものなので、よろしければ私のモチベーションとコミットメントをご確認ください。

www2.slideshare.net

県庁で行われた委嘱式の後、一緒に働くことになる県の職員の方とのミーティングに参加させていただきました。みなさん熱意があり、早くワンチームとなって成果を出していきたいという想いを強くしております。一緒に登壇などできたら最高ですね。

企業でのDXや内製化とは、また違った課題と難しさがあると思います。せっかくの機会なので、ここで学んだことは積極的に発信していきますので、よろしくお願いします。

2021年をふりかえる

この記事はあじゃてくアドベントカレンダー 2021の24日目です。

 

2021年は、コロナ禍によりリモート(在宅)勤務が完全に日常になった1年でした。そして今年もいろいろあったなとは思うのですが、ふりかえると、こちらのブログにはAppSheetのことしか書いてませんでした…。

ということで、今年最後の記事は2021年のアジャイル関連コミュニティ活動のふりかえりです。

まず、5月には「デジタル時代のアジャイルマネジメントセミナー」に登壇させていただきました。何度か話をしているモダンエンジニアへの技術転換(リスキル)の事例について、0から1(最初の一人)だけでなく、1から10(チームへのスケール)についても発表することができました。

この時取り上げた「モダンチーム」はさらに増え、みなさん立派に現場で活躍していて嬉しい限りです。

www2.slideshare.net

6月はスクラムフェス大阪です。金沢トラックで、アジャイル受託開発の話をさせていただきました。1月のAgile Studioのウェビナーで話した内容を大幅にブラッシュアップしたものです。Agile Studioの複数の事例を紐解くことで、請負から始まって内製化支援へ到達する流れの中で、まずビジョンを持ち、顧客との関係性をマクロに調整しながら進めていくことの大切さを明らかにしていきます。

アジャイル受託開発」の話題は、企業様の社内講演などでも何度かお話をさせていただいたこともあり、とてもこの一年印象に残ったというか、自分なりにしっくりと来た感があります。来年は、さらに良いアジャイル受託を追求していきたいですね。

www2.slideshare.net

さあ、7月はAgile TECH Expoです。この時はスポンサーとしての参加(2021年のAgile TECH Expoは、7月のEpisode2だけでなく1月のEpisode1にもスポンサーとして参加しました)だったのですが、いつも一緒に仕事をしている川西さんの初登壇ということもあり、とても印象に残っています。マーケティングアジャイル(Scrum)で回しているよ!という事例をお話させていただきました。
オンラインにおけるスポンサーとしてのふるまいについてはいまだ悩みますが、コンテンツの質や運営サポートの厚みなど、参加するごとに満足度が高まるイベントです。

そして9月のXP祭り(初参加!)にも、マーケティングアジャイルの話題で参加しました。あじゃてくの時より時間もあったので、より深掘りできたんじゃないかな、って思います。なんだかんだAgile Studioのマーケティングに時間を割いてた2021年です。

www2.slideshare.net

そして忘れてはいけないのは、春に出版された「アジャイル開発とスクラム第2版」。ASYの室木さん、ESMの橋本さん(つい先日、12月21日のエンタープライズアジャイル勉強会にも同じメンバーで登壇しました)と一緒に事例を執筆させていただきました。出版記念イベント大喜利(パネル)したり、野中先生と同じZoomにつながって感激したり、良い思い出ばかりです。

いざ!RSGT2022

その他にも、Agile Studioのウェビナーやら見学や講演や授業などで、たくさんアジャイルについて語ってきた一年でした。

ここ数年の目標は、「月に少なくとも一度は社外の人たちの前で話す」です。2021年も無事達成できました。2022年も、さらに様々な機会をキャッチして、自分(達)のやったことや想いを発信していきたいと思います。

2022年一発目は Regional Scrum Gathering Tokyo 2022 で、私は1月5日に登壇します。資料は6割程度は書けたかなぁ、、状態なのですが、今から気合入れて磨きます。これで年初に立てた目標は、ほぼ達成できた!…はず。

www.agile-studio.jp

では、みなさま良いお年を!

 

 

65分でAppSheetを理解する(Automation対応版)

AppSheet Automation (Bot による Workflow の置き換え)がリリースされてからしばらく経ち、ちょっとエディタのUIが使いにくく、慣れないと何しているかわからなくなったりもしましたが、ようやく私もキャッチアップできてきました。

ということで、1年前に作成した資料をAutomation対応にアップデートしました。実用的な注文アプリの機能(フィーチャー)を、AppSheet の主要概念を説明しながら組み上げていくスタイルになっています。 

www2.slideshare.net

 なぜ「60分」が「65分」になったかというと、フィーチャーを一つ追加したからです。せっかく Automation を使うので、売りであるProcess (AppSheet の処理単位で、一つの業務フローを表現する)を再利用して、一括で注文書PDFを時間起動でメールする機能を、ごく短時間で実現しています。

スクリーンショットが古いままだったり、完璧なものではありませんが、AppSheet の基本構造を理解したい & Automation も使って実用的なアプリを作りたいという方の参考になれば幸いです(かなりのボリュームなので、ダウンロードしてご覧ください)。


happyman.hatenablog.jp

 

AppSheetからGASの関数を呼び出す

AppSheet を本格的に業務で使おうとする際、既存システムやデータとの連携にGAS(Google Apps Script)を利用したいと思われる方は多いでしょう。

もちろん、単にスプレッドシートのデータを読み書きするのであれば、AppSheet のデータソースとしてスプレッドシートを使えばよいのですが、そうではなくて、「従来から利用しているテスト済みのGAS関数を利用したい」とか「スプレッドシートだと無秩序になり管理が難しい」など様々な理由で、「公認されたAPIとしてのGAS関数」を叩きたくなりますよね*1

そのような時のために、AppSheet には Apigee 経由でGAS関数を呼び出す方法があります。ちょっとマニアックなのですが、今回はその手順をサンプルコードも使いながら説明します。

*1:

AppSheet には「データが更新された」などのイベントに反応して Webhook を呼び出す機能があるため、GASでWebアプリとして作成された関数(doGetやdoPost)を実行することは可能です。ただし、Webhook 経由でGAS関数を実行できたとしても戻り値を取得することはできないため、基幹システムの最新の在庫情報を取得する、などのユースケースを実現することは困難です。AppSheet はCloud SQLと接続できるので昔ながらのDBを経由したデータのやり取りもできますが…。あと、GASからAppSheetにAPIアクセスし値を書き戻す方法もあります

続きを読む

AppSheetからApigee経由でREST APIを呼び出す

はじめに

AppSheetを使うと、本当に簡単にノーコードでアプリを開発できます。ただ、手元のスプレッドシートを活用する個人用ではなく、企業内で統制をとりながら本格的に業務利用するには、API呼び出しによるビジネスロジックとの連携が必要になるでしょう。

ということで、最近正式にサポートされたApigeeによるREST連携が、どんな感じで使えるのか試してみました。 おそらくもっともシンプルな手順になっているかと思いますので、手短にAppSheet+Apigeeの動作検証してみたい方がいらっしゃれば、参考にしてみてください。

続きを読む