ルックアップのことだけ、考えた。
1
2016.08.03
サイボウズ株式会社
システムコンサルティング本部
関西SCグループ
萩澤 佑樹
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
• kintoneってアプリ間のデータ連携がクセあるなー
• いちいちカスタマイズでめんどくせーなー
• って方、挙手を!!
2
ところで
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 3
先に謝っておきます。
ごめんなさい!!
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 4
この資料では
頻出パターンの解決方法について
逐次ググらなくても良いように
まとめました
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
なぜルックアップを使うのか
5
• たとえばkintoneで案件管理システムを実現しようとして
• 要求されるデータモデルが以下のようなER図だと
• kintoneでは各エンティティ(顧客、案件、日々の活動)を
それぞれ1アプリで作成する場合が多い
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
なぜルックアップを使うのか
6
• となると当然、子アプリでは親アプリのデータを利用して
データを作りたい(なおかつ関連付けしたい)
• そういう場合に使うのがルックアップ
• 単純にルックアップの設定方法を知りたい人はこちら
便利に使おうガイドブック
http://www.slideshare.net/cybozucommunity/kintonevol03
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
• CSVファイル読み込み機能が若干使いにくくなる
• REST API でルックアップフィールドの値を更新するときは
APIトークン認証(X-Cybozu-API-Token)は使えないので
パスワード認証(X-Cybozu-Authorization)を使う
• JavaScript API の app.record.***.change.<fieldcode> 系
イベントではルックアップフィールドの変更を捕捉できない
• JavaScript API の app.record.***.submit 系イベントでは
ルックアップフィールドの値を扱えない
7
ルックアップ使うときの注意点
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
元々がデータコピー機能なので以下のケースでは要カスタマイズ
8
よく言われるパターン
2.ここを更新しても
ルックアップ先に
値が同期されない
1.ここを変更したい
3.絞り込み条件を
変えたい
ルックアップのコピー先フィールドを
入力可能に変更!
1.
9
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
ルックアップフィールド使用時に
10
ここを変更したい
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
実はdevnetに書いてる
11
つまり、新デザインは編集可
能
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 12
デモ
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
以下のレコード更新処理でルックアップフィールドを指定すると
ルックアップ元の値に戻ってしまう
• REST API
• CSVファイル読み込み機能
13
このカスタマイズの注意点
ルックアップ元の値に戻ってしまう
ルックアップ元の変更時に
ルックアップ先の値も更新!!
2.
14
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
ルックアップ元の変更時に
15
ルックアップ元の値を変更したけど
社員名簿アプリ
人事評価管理アプリ
コピー先フィールドは更新されない
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 16
REST APIでルックアップを一括更新
社員名簿アプリ 人事評価管理アプリ
JavaScriptカスタマイズで
• JS APIの保存イベントで
• 値の変更有無を確認し
• 変更されていればルックアップ先
を一括更新
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
• 第11回 REST APIを利用したレコード更新
https://cybozudev.zendesk.com/hc/ja/articles/204537310
• ルックアップ先が更新されてもルックアップ元が更新されない
https://kintoneapp.com/blog/lookup_improvement/
※サイボウズスタートアップス株式会社のブログ記事です。
17
JavaScriptコードはこちらを参考に
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
分からなければ購入というのも手
http://qiita.com/rex0220/items/573c462117ad4104c2cd
18
プラグイン
自作ルックアップ!!!
(複数のワードのAND条件で検索)
3.
19
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 20
デモ
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu
• 自作ルックアップ用のフィールドが若干冗長
• ただ、それ以外は搭載されているAPIを使用している(DOM操作等が
無い)のでアップデートによる影響は受けにくい
21
このカスタマイズの注意点
URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 22
ルックアップで手の行き届かない点を
解消するためには、
カスタマイズで乗り越える!!
まとめ

kintone devCamp Vol.10 ルックアップのことだけ、考えた。