5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

kintoneで違うアプリのサブテーブル値を関連レコードとしてコピりたい

Last updated at Posted at 2022-12-14

はじめに

kintoneで朝に予定アプリで予定を立て、仕事が終わったらそのように対してどうなったか書くなど、
何かしらアプリをまたいだデータ連携がしたくなるときが多々あると思います。
通常のレコードなら簡単なのですが、それがサブテーブル内の値を持ってきたいという場合、
かなり話がややこしくなります。

どんなあぷり?

このように、サブテーブル(テーブル名は、plantableです)に一日の予定を立てます。
image.png

そうすると報告アプリでは、その立てた予定のサブテーブルの値をサブテーブル(テーブル名は、tasktableです)にコピーしたくなります。

image.png

どうやるの?

以下のコードを追加で登録します。
ルックアップでレコードナンバーを取ってきますが、それはダミーです。
持ってきたい本体は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でエラーが発生しました');
    });
  });
})();

おわりに

意外とサブテーブルの値を持ってきたい!というシチュエーションが多いので私はこのコードを多様しています。
もし役に立ったな、と思って頂けたらイイネをお願いします。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?