アプリAのレコード登録成功時にアプリAのテーブルデータを、REST APIのPOSTにてアプリBのレコードに登録しています。
POSTする前にアプリBに同じレコードが無いかGETで調べ、あれば削除をしてからPOSTしています。
アプリBへのレコード登録やレコード削除は9割程度は成功しているのですが、たまにレコード登録や削除に失敗しています。
登録や削除を失敗する要因はどのような事が考えられますでしょうか?
毎回失敗するのであればコードに問題があるとわかるのですが、ほぼ成功しているので、原因がわかりません。
アプリAの使用頻度は60人ほどが頻繁に使用するといった感じです。
お手数をおかけいたしますが、アドバイスをいただけると助かります。
宜しくお願い致します。
因みにコードは下記になります。
(function() {
“use strict”;
kintone.events.on([
‘app.record.create.submit.success’,
‘app.record.edit.submit.success’
], function(event) {
return new kintone.Promise(function(resolve, reject) { //kintone.Promiseで非同期処理。
// アプリAID取得
var appId = event.appId;
// レコード番号の取得
var recordId = event.recordId;
//アプリBにキーとして登録するアプリID + レコード番号
var keyNo = appId + “-” + recordId;
//レコード取得
var record = event.record;
//アプリBにレコードがあればDELETE
var params = {
“app”: 9,
“query”: “レコード_紐付け用 = " + “"” + keyNo + “"”,
“fields”: [”$id"]
}
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, params).then(function(resp) {
// 成功時の処理
var delIds = new Array();
for (var i = 0; i < resp.records.length; i++) {
delIds.push(resp.records[i].$id.value)
}
console.log(resp.records);
if (delIds[0]) {
var body = {
“app”: 9,
“ids”: delIds
};
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘DELETE’, body).then(function(resp) {
console.log(resp);
resolve(event);
}, function(error) {
// error
console.log(error);
resolve(event);
});
} else {
resolve(event);
}
},
function(error) {
// エラー時の処理
console.log(error);
resolve(event);
});
var user = kintone.getLoginUser();
//アプリAのテーブルの行データをアプリBに登録
var tables = event.record.Table.value;
for (var i = 0; i < tables.length; i++) {
if(tables[i].value[“CHC_No”].value) {
var params = {
“app”: 9,
“record”: {
“訪問日”: { “value”: record[‘日付’].value },
“開始時刻”: { “value”: tables[i].value[“開始時刻”].value },
“顧客名”: { “value”: tables[i].value[“訪問先CHCオーナー名”].value },
“訪問者”: { “value”: user[‘name’] },
“訪問内容”: { “value”: tables[i].value[“業務内容”].value },
“顧客管理レコード番号_関連レコード一覧紐付け用”: { “value”: tables[i].value[“CHC_No”].value },
“日報レコード_紐付け用”: { “value”: keyNo }
}
};
// kintone REST API リクエスト ~ レコードの登録(POST)
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘POST’, params).then(function(resp) { // - callback
//アプリBに登録成功
resolve(event);
},
function(resp) { // - errback
//アプリBに登録失敗
resolve(event);
}
);
}
}
});
});
})();