実現させたい要件
Googleフォームで回答したら、kintoneアプリでレコードが新規作成されて、Googleフォームで回答された内容がそのレコードの該当するフィールドに反映される
実装環境
GoogleAppsScript
進捗状況
Googleフォームで回答したら、kintoneアプリでレコードが新規作成されるところまでは実装出来ている。
Googleフォームで回答された内容がそのレコードの該当するフィールドに反映されるところが実装できておらず、解決策が見いだせない。
#相談事項
コードでいうとif (title == '休日')
の部分から不具合が起きている。休日という質問項目の回答結果の値は取得できるが、else if (title == '勤務先')
の勤務先という質問項目の回答結果の値が取得できない(GASのログを見ると以下のようになっており、勤務先の回答結果が取得できていない)
[18-05-10 00:27:54:747 PDT] Form submitted
[18-05-10 00:27:54:803 PDT] Response JSON is "[{"休日" : { "value": ["月","火","水"] },}]"
[18-05-10 00:27:55:645 PDT] Response code is "200.0"
if (title == '休日')からelse if (title == '勤務先')前までの部分で宣言した変数などが原因かと思われますが、こちら原因についてアドバイス頂ければ幸いです。
コード
// アンケートの回答を取得する関数 function getFormResponse(e) { 'use strict'; // アンケートの回答を取得する var itemResponses = e.response.getItemResponses(); // KINTONEへ送信するためのデータを作成 var records = '[{'; for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; var title = itemResponse.getItem().getTitle(); if (title == '休日'){ var checkboxValues = []; var responses = itemResponse.getResponse(); for (var i = 0; i < responses.length; i++){ checkboxValues.push('"'+responses[i]+'"'); } records += Utilities.formatString('"休日" : { "value": ' + '[' + checkboxValues + ']' + ' }' +',',responses); } else if (title == '勤務先') { records += Utilities.formatString('"勤務先" : { "value": "%s" }', itemResponse.getResponse()); }; } records += '}]'; Logger.log('Response JSON is "%s"', records); return records; } // kintoneに値を送る関数 function sendToKintone(e) { 'use strict'; Logger.log('Form submitted'); var subdomain = '(サブドメイン名)'; var apps = { YOUR_APPLICATION1: { appid: (id), name: '(アプリ名)', token: '(token)' } }; var manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリーの初期化 var str = getFormResponse(e); str = str.replace(/\n/g, "\n").replace(/\r/g, "\r").replace(/\t/g, "\t"); var records = JSON.parse(str);// JSON形式に変換 var response = manager.create('YOUR_APPLICATION1', records);// kintone レコードの生成 // ステータスコード // 成功すれば200になる var code = response.getResponseCode(); Logger.log('Response code is "%s"', code); }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/11 01:22
2018/05/11 01:40 編集
退会済みユーザー
2018/05/11 01:55
2018/05/11 07:41