はじめに
kintoneで朝に予定アプリで予定を立て、仕事が終わったらそのように対してどうなったか書くなど、
何かしらアプリをまたいだデータ連携がしたくなるときが多々あると思います。
通常のレコードなら簡単なのですが、それがサブテーブル内の値を持ってきたいという場合、
かなり話がややこしくなります。
どんなあぷり?
このように、サブテーブル(テーブル名は、plantableです)に一日の予定を立てます。
そうすると報告アプリでは、その立てた予定のサブテーブルの値をサブテーブル(テーブル名は、tasktableです)にコピーしたくなります。
どうやるの?
以下のコードを追加で登録します。
ルックアップでレコードナンバーを取ってきますが、それはダミーです。
持ってきたい本体はplantableです。
そのplantableをtasktableにツッコめば任務完了です。
plancopy.js
(function() {
'use strict';
const events = [
'app.record.create.change.Number',
'app.record.edit.change.Number',
];
kintone.events.on(events, function(event) {
const targetAppId = kintone.app.getLookupTargetAppId('Lookup');
const targetRecordId = event.record['Number'].value;
// ルックアップクリアをしたらテーブルを空にする
if (!targetRecordId) {
event.record['tasktable'].value = [];
return event;
}
const body = {
app: targetAppId,
id: targetRecordId,
};
kintone.api(kintone.api.url('/k/v1/record', true), 'GET', body, function(resp) {
event.record['tasktable'].value = resp.record['plantable'].value;
kintone.app.record.set(event);
}, function(err) {
window.alert('REST APIでエラーが発生しました');
});
});
})();
おわりに
意外とサブテーブルの値を持ってきたい!というシチュエーションが多いので私はこのコードを多様しています。
もし役に立ったな、と思って頂けたらイイネをお願いします。