いつもお世話になっております。
『第11回 kintone REST APIを利用したレコード更新』を参考にコードを作成しましたが、やりたいことが実現できず、またエラーが出ないため修正点もわからず、壁にぶち当たっております。
どなたかご教授頂けると幸いです。
何卒宜しくお願いいたします。
■やりたいこと
①アプリAの【_4月確認】(チェックボックス)の値を『済』にする。
②アプリBの更新対象レコード(アプリAで編集したレコードの「表示コード」と同じ表示コードが存在する複数レコードを取得する。
③②で取得した更新対象レコードの【_4月確認】(チェックボックス)の値を『済』にする。
※if(event.record[‘_4月確認’].value === ‘済’){の行を抜いてデバッグするとエラーは発生しませんが、②の対象レコードに変化はありません。
クエリの指定に問題があるのでしょうか?
(function() {
"use strict";
// アプリBのアプリID
var updateAppId = 11;
function createPutRecords(records) {
var putRecords = [];
for (var i = 0, l = records.length; i < l; i++) {
var record = records[i];
putRecords[i] = {
record: {
"_4月確認": {
value: "済"
}
}
};
}
return putRecords;
}
/*アプリAの_4月確認の値が『済』の場合のみ、
アプリBの更新処理(「_4月確認」の値を『済』にする)を実行する*/
if(event.record['_4月確認'].value === '済'){
// 保存成功後イベント
kintone.events.on(['app.record.edit.submit.success', 'app.record.index.edit.submit.success'], function(event) {
var hyouji = event.record["表示コード"].value;
// レコードの一括取得(100件まで)
var paramGet = {
"app": updateAppId,
"query" : '表示コード = " + hyouji "'
};
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramGet).then(function(resp) {
// アプリB対象レコードの更新
var records = resp.records;
var token = "9IoKNgv3H6IeUx7BPVb8UoVEjwP5jCRTmA8nKVJh";
var header = {
"X-Cybozu-API-Token": token,
"Content-Type": "application/json"
};
var paramPut = {
'app': updateAppId,
'records': createPutRecords(records)
};
return kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', paramPut);
}).then(function(resp2) {
// 処理成功
alert('_4月確認の一括更新が完了しました。');
return event;
}).catch(function(error) {
// エラー表示をする
alert('_4月確認の一括更新でエラーが発生しました。' + error.message);
console.log(error)
return event;
});
});
}
})();