実現したいこと
FormBridgeから取得した回答内容に応じたフィードバックコメントをKintoneアプリに表示・保存したい
背景
FormBridge上で◎、×の二択テストを作成しています。
その選択内容に応じたフィードバックコメントをKintone側の文字列(1行)の計算式で設定していました。
しかし、フィードバックコメントが5文以上となるため、改行が必要になりました。
文字列(1行)では改行不可であるため、JavaScriptカスタマイズにて文字列(複数行)フィールドでフィードバックコメントを表現することにしました。
JavaScriptコードを実装し、Kintone上で回答すれば、文字列(複数行)フィールドに、回答内容に応じたフィードバックコメントを改行させて表示することができました。
発生した問題やエラーメッセージを具体的に書きましょう
FormBridgeから回答が行われた際、FormBridge⇒Kintoneに回答は保存されるものの、Kintoneに保存された回答に応じたフィードバックコメントが文字列(複数行)に表示・保存されず、困っています。
調査の結果、Kintone REST APIを利用する必要があることは分かりましたが、具体的な改修方法が分かりません。
お手数ですが何か助言を頂けないでしょうか。
よろしくお願いいたします。
実行したコード
設問数はここでは2としています。Kintoneにて、設問フィールドコードはeq{i}_fcode, 表示フィールドコードはmultieq{i}_fcodeで統一しています。
(function() {
'use strict';
// 設問数
var questionCount = 2;
// 各設問のメッセージを格納するオブジェクト
var messages = {
1: '~~~~\n' +
'~~~~\n',
2: '~~~~\n' +
'~~~~\n'
};
// フォームのイベントタイプを格納する配列
var events = [];
// 設問ごとのイベントを設定
for (let i = 1; i <= questionCount; i++) {
// 設問のフィールドコードと結果フィールドコードを生成
let questionFieldCode = 'eq' + i + '_fcode';
let resultFieldCode = 'multieq' + i + '_fcode';
// イベントタイプを配列に追加
events.push('app.record.create.change.' + questionFieldCode);
events.push('app.record.edit.change.' + questionFieldCode);
// イベントハンドラを設定
kintone.events.on(['app.record.create.change.' + questionFieldCode,
'app.record.edit.change.' + questionFieldCode], function(event) {
var record = event.record;
// 設問の回答を取得
var answer = record[questionFieldCode].value;
// 表示するメッセージを格納する変数
var message = '';
// 回答内容に応じて表示するメッセージを設定
if (answer === '×') {
// メッセージは各設問ごとに異なるものを使用
message = messages[i];
} else {
// ◎の場合のフィードバックコメントを設定
message = '~~~';
}
// 結果フィールドにメッセージを設定
record[resultFieldCode].value = message;
return event;
});
}
})();