他アプリのデータを取得し、更新処理(一覧画面)

お世話になっております。

タイトルの件について、他のアプリからデータを取得し、そのデータを登録、更新を行いたいと考えております。

レコード追加時では出来るのですが、一覧画面を開いた際に自動で取得、取得先のデータが変更していれば、自動で更新するような設定が出来ないかと考えております。

連携するアプリは下記のような構成になっております。

*-----------------------------------*

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();
                    });
                }
            });
        }
    });
})();

お手数でございますが、ご教授いただいたければ幸いでございます。

よろしくお願いいたします。

H29年アプリのほうで、前年計を取得するのは、ルックアップで良いのでは?

ただし、ルックアップはH28年アプリを更新してもH29年アプリは更新できません。ですが、対処は可能です。

ルックアップのレコードの更新は第11回 kintone REST APIを利用したレコード更新を参考にしてください。

lpj 様

ご返信ありがとうございます。

ルックアップでの設定も出来るのですが、レコード登録時のフローをなるべく簡易的にしよと思い

質問させていただきました。

もう少しREST APIについて調べてみて挑戦したいと思います。

アドバイスありがとうございました。

今後ともよろしくお願いいたします。