お疲れ様です。
まず以下のアプリを作成しました。
処理について
① 更新したテスト書籍登録のレコードを取得
② 更新したレコードの書籍番号とテスト書籍登録サブにあるレコードの書籍番号が一致したレコード番号を取得
③ ②をもとにそのレコード番号のレコードに①で取得したレコード内容を更新
データの取得まではうまくできているのですが、更新処理が行われません。
何が原因なのかよくわからず質問させていただきました。
分かる方がいらっしゃれば教えていただけますでしょうか。
以下が作成した処理になります。
/*
*
* 全件レコード取得処理
*
*/
(function get_Records(){
“use strict”;
//変数宣言
var offset = 0;
var records = new Array();
var loopendflg = false;
var offset_sub = 0;
var loopendflg_sub = false;
/*書籍登録テスト 処理*/
while(!loopendflg){
var query = encodeURIComponent(‘order by レコード番号 asc limit 100 offset ’ + offset);
var appUrl = kintone.api.url(’/k/v1/records’) + ‘?app=’+ 33 + ‘&query=’ + query; //書籍登録テスト アプリID
//リクエストヘッダ
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“GET”, appUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.send(null);
//格納
var respdata = JSON.parse(xmlHttp.responseText);
if(respdata.records.length > 0){
for(var i = 0; respdata.records.length > i; i++){
records.push(respdata.records[i]);
//書籍登録テストの書籍番号取得
alert(“appUrl :”+ appUrl +“配列”+ i +“番目の”+“書籍番号 :”+JSON.stringify(respdata.records[i].書籍番号.value));
var shoseki = JSON.stringify(respdata.records[i].書籍番号.value);
var offset_sub = 0;
var loopendflg_sub = false;
/*書籍登録サブ 処理*/
while(!loopendflg_sub){
var appUrl_sub = kintone.api.url(‘/k/v1/records’) + ‘?app=’+ 34 + ‘&query=’ + query; //書籍登録サブ アプリID
var xHp = new XMLHttpRequest();
xHp.open(“GET”, appUrl_sub, false);
xHp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xHp.send(null);
//格納
var resp = JSON.parse(xHp.responseText);
if(resp.records.length > 0){
for(var j = 0; resp.records.length > j; j++){
records.push(resp.records[j]);
//書籍登録サブの書籍番号取得
alert(“appUrl_sub”+ appUrl_sub +“配列”+ j +“番目の”+“書籍番号 :”+ JSON.stringify(resp.records[j].書籍番号.value));
//書籍番号比較
if(resp.records[j].書籍番号.value == respdata.records[i].書籍番号.value){
var i_sub = JSON.stringify(resp.records[j].レコード番号.value); //レコード番号取得
var shoseki_sub = JSON.stringify(resp.records[j].書籍番号.value);
alert(“一致レコード発見”);
};
};
offset_sub += resp.records.length;
loopendflg_sub = true;
}else{
loopendflg_sub = true;
}
};
//書籍登録と書籍登録サブの書籍番号が一致した場合のみ以下の処理開始
if(shoseki == shoseki_sub){
alert(“同レコードのため更新開始”);
alert(JSON.stringify(respdata.records[i].シリーズ名.value));
var url = ‘https://devqsdtfb.cybozu.com/k/v1/records.json’;
var body = {
“app”:34,
“records”:[
{
“id”:i_sub,
“record”:{
“ID”:{
“value”:JSON.stringify(respdata.records[i].数値.value)
},
“ISBN番号”:{
“value”:JSON.stringify(respdata.records[i].ISBN番号.value)
},
“本体価格”:{
“value”:JSON.stringify(respdata.records[i].本体価格.value)
},
“書名”:{
“value”:JSON.stringify(respdata.records[i].書名.value)
},
“書名_フリガナ”:{
“value”:JSON.stringify(respdata.records[i].書名_フリガナ.value)
},
“シリーズ番号”:{
“value”:JSON.stringify(respdata.records[i].シリーズ番号.value)
},
“シリーズ名”:{
“value”:JSON.stringify(respdata.records[i].シリーズ名.value)
}
}
}
],
// CSRF TOKEN: kintone上からAPI(POST, PUT, DELETE)を実行する場合に設定する必要あり
“__REQUEST_TOKEN__”: kintone.getRequestToken()
};
// リクエストヘッダ
var xhr = new XMLHttpRequest();
xhr.open(‘PUT’, url);
xhr.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xhr.setRequestHeader(‘Content-Type’, ‘application/json’);
xhr.onload = function() {
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
};
};
xhr.send(JSON.stringify(body));
};
}
offset += respdata.records.length;
}else{
loopendflg = true;
}
}
})();