お世話になっております。
タイトルの件について、他のアプリからデータを取得し、そのデータを登録、更新を行いたいと考えております。
レコード追加時では出来るのですが、一覧画面を開いた際に自動で取得、取得先のデータが変更していれば、自動で更新するような設定が出来ないかと考えております。
連携するアプリは下記のような構成になっております。
*-----------------------------------*
H28年アプリ
・リレーション(文字列)※値の重複禁止でこちらをKeyにしています。
・合計(数値)
*-----------------------------------*
H29年アプリ
・リレーション(文字列)
・合計(数値)
・前年計(数値)※H28年アプリの合計の値が入るようにしたいです。
*-----------------------------------*
現在、下記コードで設定をしているのですが、うまくいきません。
(function() {
"use strict";
kintone.events.on('app.record.index.show', function(event){
var changed = false;
var appId = 448;
var recordId1 = kintone.app.getFieldElements('リレーション');
var recordId2 = kintone.app.getFieldElements('前年計');
for (var i = 0; i < recordId1.length; i++) {
var record = event.records[i];
var relation = record['リレーション'].value;
var OldTotal = record['前年計'].value;
var getBody = {
"app": appId,
"query": 'リレーション = "' + relation + '"',
"fields": ['合計'],
};
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', getBody, function(resp) {
var records = resp["records"];
var putBody = {
"app": kintone.app.getId(),
"query": 'リレーション = "' + relation + '"',
"fields": ['前年計'],
"records":[]
};
records.forEach(function(record){
putBody.records.push({
"id": record.$id.value,
"record": {
"前年計": {
"value":OldTotal
}
}
});
if(OldTotal != record.前年計.value){
changed = true;
}
});
if(changed){
kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', putBody, function(){
location.reload();
});
}
});
}
});
})();
お手数でございますが、ご教授いただいたければ幸いでございます。
よろしくお願いいたします。