お世話になります。
背景・実現したいこと
様々な方のやり方等を参考に、 アプリAに登録するとアプリBに自動で
登録、更新を実現できました。
登録したアプリAのレコードでテーブル行を追加し、保存するとエラー
になります。どうエラーを回避すればいいでしょうか?
登録済みのレコード内容を更新するだけの場合は問題ないです。
エラー情報
Failed to load resource: the server responded with a status of 404 (Not Found)
Uncaught Object
- code: “GAIA_RE01”
- id: “8eGrxB5fFBX92NCnqJov”
- message: “The specified record (ID: 0) is not found.”
Failed to load resource: the server responded with a status of 520 (520)
利用したソースコード
(function() {
“use strict”;
kintone.events.on(“app.record.create.submit.success”, function(event) {
var postApp = 348; // 別アプリのID
var recId = event.recordId; // テーブルを登録したレコードを更新するためのID
var subTable = ‘table1’; //サブテーブルのフィールドコード
var headers = [ //コピーするサブテーブル外のフィールドのフィールドコード
‘From’, ‘To’,
];
var record = event.record;
// テーブルを更新するための値
var table = event.record.table1.value;
var array = [];
return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘POST’, {
app: postApp,
records: event.record[subTable].value.map(function (row) {
headers.forEach(function (header) {
row.value[header] = event.record[header];
});
return row.value;
})
}).then(function(resp) {
// ↓↓↓↓↓↓↓↓↓↓↓↓登録が成功したレコードID をテーブルに登録するための処理
console.log(resp);
for (var i = 0; i < table.length; i++) {
array.push({
“id”:table[i].id,
“value”:{
“id”: {
“value”: resp.ids[i]
}
}
});
}
var body = {
“app”: kintone.app.getId(),
“id”: recId,
“record” :{
“table1”:{
“value”: array
}
}
};
return kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body).then(function(resp) {
// success
console.log(resp);
}, function(error) {
// error
console.log(error);
});
});
});
// 更新時の処理
kintone.events.on(“app.record.edit.submit.success”, function(event) {
var postApp = 348; // 別アプリのID
var recId = event.recordId; // テーブルを登録したレコードを更新するためのID
var subTable = ‘table1’; //サブテーブルのフィールドコード
var headers = [ //コピーするサブテーブル外のフィールドのフィールドコード
‘From’,‘To’,
];
var record = event.record;
console.log(event.record[subTable].value.map(function (row) {
headers.forEach(function (header) {
row.value[header] = event.record[header];
});
return row.value;
}));
return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘PUT’, {
app: postApp,
records:
event.record[subTable].value.map(function (row) {
headers.forEach(function (header) {
row.value[header] = event.record[header];
});
return {
id: row.value.id.value,
record: row.value
};
})
});
});