2018年11月17日

Google Apps Scriptで、「getItemResponses」が動作しなくなった?

 GoogleフォームとGoogle Apps Scriptを使う場合、submitForm(e)で、


var itemResponses = e.response.getItemResponses();



 という感じで、回答のオブジェクトを取得します。

 本日新しく、フォーム連動のスクリプトを作成したところ、

「TypeError: undefined のメソッド「getItemResponses」を呼び出せません。(行 3、ファイル「コード」)」

 というエラーが頻発します。

 コード自体は、何度もいろんなスクリプトで使っているものなので間違いはありません。

 これまでも、同様のエラーが出ることはありました。
 スクリプトを変更するなど、新たに権限が増えた場合や、トリガーが消えてしまったりした場合です。

 権限の設定をやり直す、トリガーを一度消して設定し直すことで解消していました。
 今回に限っては、何度やってもエラーのままです。

 過去に作ったスクリプトは、全く同じ記述で問題なく動いています。


 トリガーの設定画面が新しくなっていることから、Google Apps Scriptで何かしら変更が行われたことは判るのですが・・・

 プロジェクト自体を削除して、新たに作り直すなどもしてみましたがダメです。

 そこで、「アカウントにアクセスできるアプリ」にてスクリプトの権限を確認してみると・・・
 動作しているものには、次のものが許可されています。
「Google ドライブのフォームの表示と管理」

Screenshot 2018-11-17 at 18.40.52.png

 エラーとなっているスクリプトでは、この権限が出てきません。

Screenshot 2018-11-17 at 18.31.54.png

 そこで、スクリプトがバインドされているフォームを取得する「FormApp.getActiveForm()」をスクリプトの先頭に追加しました。


// FormApp.getActiveForm()
function submitForm(e){
var itemResponses = e.response.getItemResponses();
(以降省略)



 この状態でトリガーを設定し直したところ、追加の権限として「Google ドライブのフォームの表示と管理」が出てきました。

Screenshot 2018-11-17 at 18.33.40.png

「getItemResponses」のエラーもなくなり、正常にスクリプトが動作するようになりました。


 すでに、正常動作しているものは、「FormApp.getActiveForm()」がなくても動作しています。


 朝からこれにハマって、ずいぶんと時間を使ってしまいました。
 Google Apps Scriptでエラーが出るときは、権限を確認してみることをおすすめします。
posted by Outliner 伊藤 崇 at 19:10| 効率化・仕組み

2018年03月30日

Google Apps Scriptの基本

Screenshot 2018-03-20 at 00.43.36.png

 Chromebookを使うようになってから、Googleのサービスをより活用するようになりました。
 中でも、「Google Apps Script」は業務ツールの作成なども含めて最も活用していると言ってもいいと思います。
続きを読む
posted by Outliner 伊藤 崇 at 17:56| 効率化・仕組み

2018年02月19日

Googleフォームで業務システム事例「開業前搬入(初期搬入)」

FormSyokihann_takuhai.png

 Googleフォームは気軽にアンケートの仕組みを作れるツールです。
 アンケートだけではなく、作業記録や申請フォームなどにも利用できます。

 標準で、フォームに入力されたものをGoogleスプレットシートに記録する機能があるのでこれだけでも充分に活用できます。

 また、Google Apps Scriptと組み合わせることで、かなり複雑なことも可能になります。
 実際に物流系の会社に提供している事例です。
続きを読む
posted by Outliner 伊藤 崇 at 07:00| 効率化・仕組み

2018年02月18日

Chromeリモートデスクトップでリモートログを記録する

 Chromebookから、リモートを行うときはメインはTeamViewerです。

 TeamViewerは、細かい設定や低速回線で利用できる反面、動きに弱い欠点があります。
 ウインドウの移動や、マウスオーバーなどのちょっとした動き、サウンドの再生などは省略されてしまいます。低速回線でのパフォーマンスを良くするにはこの方がいいのですが、作業する内容によっては困ることがあります。

 Chromeリモートデスクトップなら、動画やサウンドの再生・細かい動きなども確認できます。
 同時に複数のパソコンへ接続することも可能です。
続きを読む
posted by Outliner 伊藤 崇 at 16:48| 効率化・仕組み

2018年01月26日

QRコード決済を使ってみたくて、LINEのアカウントをChromebookで作成

 ずっと、セキュリティや時間的な側面からLINEはやらずにいました。
 しかし、「LINEで連絡を」と言われることもあるのと、QRコード決済を試してみたかったのでアカウントを作成しました。

続きを読む
posted by Outliner 伊藤 崇 at 00:20| 効率化・仕組み