背景・実現したいこと
お世話になります。
Aアプリ(行動履歴)・Bアプリ(お客様情報)があり、Aアプリの特定フィールドの情報をBアプリのサブテーブル内に行を追加する形で更新したいと考えております。
テーブル内に更新されていることは確認が取れました。しかし、putのリクエストを投げると400で返されており必須項目に対しての入力がうまくできていないように感じています。
https://developer.cybozu.io/hc/ja/articles/201941984#step4
大変お手数をおかけいたしますが、アドバイスをいただけないでしょうか。
下記、エラーコードとなります。
利用したソースコード
(function () {
“use strict”;
let user = kintone.getLoginUser().code;
console.log(user);
if (user == “152006”) {
kintone.events.on(“app.record.index.show”, function (event) {
let records = event.records;
for (var m = 0; m < records.length; m++) {
let tagName = records[m][“文字列__1行__1”].value;
let oldButton = document.getElementById(“UUアプリへ一括更新”);
let button = document.createElement(“button”);
if (oldButton !== null) oldButton.parentNode.removeChild(oldButton);
button.innerHTML = “UUアプリ更新”;
button.id = “UUアプリ更新”;
kintone.app.getHeaderMenuSpaceElement().appendChild(button);
button.addEventListener(“click”, function () {
let GET_param = {
app: 917,
Query: kintone.app.getQuery(),
fields: [“$id”, “文字列__1行__1”, “UURecordID”],
};
return kintone
.api(kintone.api.url(“/k/v1/records”, true), “GET”, GET_param)
.then(function (resp) {
let resp1 = resp.records;
console.log(resp);
for (let j = 0; j < resp1.length; j++) {
let UUrecID = resp1[j].UURecordID.value;
console.log(UUrecID);
//UUアプリに対して対象レコードを取得
let GET_param2 = {
app: 906,
Query:
‘record_id = "’ +
UUrecID +
‘" order by record_id desc limit 100 offset 0’,
fields: [“$id”, “テーブル”],
};
return kintone
.api(
kintone.api.url(“/k/v1/records”, true),
“GET”,
GET_param2
)
.then(function (resp2) {
console.log(resp2); //ここまでOK
let resp_2 = resp2.records;
for (let k = 0; k < resp_2.length; k++) {
let existing_subtable = resp_2[0][“テーブル”].value;
let subtable = []; // 最終的にPUTするサブテーブル
// 既存のサブテーブルを抽出
for (let l = 0; l < existing_subtable.length; l++) {
subtable.push(existing_subtable[k]);
}
let body = {
id: “15970462”,
value: [
{
文字列__1行__5: {
value: tagName,
},
},
],
};
console.log(body);
subtable = subtable.concat(body); // 既存と追加分のサブテーブルを結合
console.log(subtable);
let put_record = {}; // レコード更新用オブジェクト
put_record[“テーブル”] = {
value: subtable,
};
let put_Params = {
app: 906,
id: resp_2[k].$id.value,
record: put_record,
};
return kintone
.api(
kintone.api.url(“/k/v1/records”, true),
“PUT”,
put_Params
)
.then(function () {
alert(“UUアプリへの登録が完了しました!”);
})
.catch(function (error) {
alert(
“UUアプリへの登録でエラーが発生しました。” +
error.message
);
console.log(error);
});
}
});
}
});
});
}
});
}
})();