他のアプリのサブテーブのを条件に合ったフィールドを更新したいのです。
サブテーブルの更新処理で困っています。
今はこのようなエラーが発生しています。
動いているコードは以下のコードです。
jQuery.noConflict();
(function($) {
“use strict”;
kintone.events.on(‘app.record.detail.show’, function(event) {
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//スペースフィールドにボタンを設置
var mySpaceFieldButton = document.createElement(‘button’);
mySpaceFieldButton.id = ‘copy_button_id’;
mySpaceFieldButton.innerHTML = ‘年次レート反映’;
mySpaceFieldButton.onclick = function () {
var afterRec = event.record;
var copyRate;
var appId = kintone.app.getId();
var recId = event.recordId;
var yyyy = afterRec[‘copy_yyyy’].value;
var currency = afterRec[‘通貨’].value;
var manyappId =[22,0];
var body = {
“app”: appId
};
kintone.api(kintone.api.url(‘/k/v1/form’, true), ‘GET’, body, function(resp) {
// success
for(var i =0; i < resp.properties.length; i++) {
var detailName = resp.properties[i].label;
var detailCode = resp.properties[i].code;
if(detailName == yyyy){
copyRate = afterRec[detailCode].value;
}
}
//*************************************************************************************************************************************
// 次に、ルックアップ参照元(コピー先)の更新対象レコードを取得する
fetchRecords(manyappId[0], ‘見積通貨 = "’ + currency + ‘"’).then(function (records) {
var recCount = records.length;
var putCount = Math.ceil(recCount / 100);
for (var i = 0; i < putCount; i++) {
var offset = i * 100;
var limit = 100;
if (offset + limit > recCount) {
limit = recCount - offset;
}
var putLimit = limit + offset;
var editRecords = [];
var Tbl = [];
var tblRow = [];
var roeField = [];
for (offset; offset < putLimit; offset++) {
var record = records[offset];
var table_Row = record[‘Table_1’][‘value’].length;
var mknenuri1000 = [];
var mtnenuri = [];
var mtnenuri1000 = [];
var mtnenuri_kh = [];
var coment0 = [];
var krirekiauto = [];
var mknenuri = [];
var nenji = [];
var nenRate = [];
for(var j = 0; j < table_Row; j++) {
var tbl_1 = record[‘Table_1’][‘value’][j].value;
nenji[j] = tbl_1[‘年’][‘value’];
mknenuri1000[j] = tbl_1[‘見込年間売上_千円’][‘value’];
mtnenuri[j] = tbl_1[‘見積年間売上’][‘value’];
mtnenuri1000[j] = tbl_1[‘見積年間売上_千円’][‘value’];
mtnenuri_kh[j] = tbl_1[‘見積年間売上_確率反映’][‘value’];
coment0[j] = tbl_1[‘コメント_0’][‘value’];
krirekiauto[j] = tbl_1[‘改訂履歴_自動入力’][‘value’]
mknenuri[j] = tbl_1[‘見込み年間売上’][‘value’];
if (nenji[j] = yyyy) {
nenRate[j] = copyRate;
}else{
nenRate[j] = tbl_1[‘年次レート’][‘value’];
}
}
kintone.api(
kintone.api.url(‘/k/v1/record’,true),
‘PUT’,
{
“app”: manyappId[0],
“id” : record[‘$id’][‘value’],
“record”: {
“Table_1”:{
“value”: [
{
“value”: {
“見込年間売上_千円”: {
“value”: mknenuri1000
},
“見積年間売上”: {
“value”: mtnenuri
},
“見積年間売上_千円”: {
“value”: mtnenuri1000
},
“年”: {
“value”: nenji
},
“見積年間売上_確率反映”: {
“value”: mtnenuri_kh
},
“コメント_0”: {
“value”: coment0
},
“見込み年間売上”: {
“value”: mknenuri
},
“年次レート”: {
“value”: nenRate
},
“改訂履歴_自動入力”: {
“value”: krirekiauto
}
}
},
]
}
}
},
function(resp){
console.log(resp);
window.alert(‘更新処理を行いました。’);
},
function(resp) {
var errmsg = ‘レコード更新時にエラーが発生しました。’;
if (resp.message !== undefined){
errmsg += ‘’ + resp.message;
}
console.log(errmsg);
}
);
}
}
}
);
});
}
//**********************************************************************************************************************************************
kintone.app.record.getSpaceElement(‘copy_button_id’).appendChild(mySpaceFieldButton);
});
//**********************************************************************************************
// 全件取得関数
function fetchRecords(appId, query, opt_offset, opt_limit, opt_records) {
var offset = opt_offset || 0;
var limit = opt_limit || 100;
var allRecords = opt_records || [];
var params = {app: appId, query: query + ’ limit ’ + limit + ’ offset ’ + offset};
return kintone.api(‘/k/v1/records’, ‘GET’, params).then(function (resp) {
allRecords = allRecords.concat(resp.records);
if (resp.records.length === limit) {
return fetchRecords(appId, query, offset + limit, limit, allRecords);
}
return allRecords;
});
}
//*************************************************************************************************
})(jQuery);
サブテーブルの各行、各項目の取扱がいまいちなのでそのあたりが間違っているような気がしますがはっきりわかりません。
どうかご教示よろしくお願いいたします。