22
ルルルルルルルルルルル ルルルル 、。 1 2016.08.03 サササササササササ ササササササササササササササ 西 SC ササササ ササ ササ

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

Embed Size (px)

Citation preview

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

ルックアップのことだけ、考えた。

1

2016.08.03サイボウズ株式会社

システムコンサルティング本部関西 SC グループ

萩澤 佑樹

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

• kintone ってアプリ間のデータ連携がクセあるなー

• いちいちカスタマイズでめんどくせーなー

• って方、挙手を !!

2

ところで

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 3

先に謝っておきます。

ごめんなさい !!

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 4

この資料では

頻出パターンの解決方法について逐次ググらなくても良いように

まとめました

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

なぜルックアップを使うのか

5

• たとえば kintone で案件管理システムを実現しようとして

• 要求されるデータモデルが以下のような ER 図だと

• kintone では各エンティティ ( 顧客、案件、日々の活動 ) をそれぞれ 1 アプリで作成する場合が多い

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

なぜルックアップを使うのか

6

• となると当然、子アプリでは親アプリのデータを利用してデータを作りたい ( なおかつ関連付けしたい )

• そういう場合に使うのがルックアップ

• 単純にルックアップの設定方法を知りたい人はこちら

便利に使おうガイドブックhttp://www.slideshare.net/cybozucommunity/kintonevol03

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

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

ルックアップ使うときの注意点

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

元々がデータコピー機能なので以下のケースでは要カスタマイズ

8

よく言われるパターン

2. ここを更新してもルックアップ先に値が同期されない

1. ここを変更したい

3. 絞り込み条件を変えたい

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

ルックアップのコピー先フィールドを入力可能に変更 !

1.

9

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

ルックアップフィールド使用時に

10

ここを変更したい

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

実は devnet に書いてる

11

つまり、新デザインは編集可能

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 12

デモ

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

以下のレコード更新処理でルックアップフィールドを指定するとルックアップ元の値に戻ってしまう• REST API• CSV ファイル読み込み機能

13

このカスタマイズの注意点

ルックアップ元の値に戻ってしまう

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

ルックアップ元の変更時にルックアップ先の値も更新 !!

2.

14

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

ルックアップ元の変更時に

15

ルックアップ元の値を変更したけど

社員名簿アプリ

人事評価管理アプリ

コピー先フィールドは更新されない

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 16

REST API でルックアップを一括更新

社員名簿アプリ 人事評価管理アプリ

JavaScript カスタマイズで• JS API の保存イベントで• 値の変更有無を確認し• 変更されていればルックアップ先

を一括更新

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

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 コードはこちらを参考に

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

分からなければ購入というのも手http://qiita.com/rex0220/items/573c462117ad4104c2cd

18

プラグイン

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

自作ルックアップ !!!( 複数のワードの AND 条件で検索 )

3.

19

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 20

デモ

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu

• 自作ルックアップ用のフィールドが若干冗長• ただ、それ以外は搭載されている API を使用している (DOM 操作

等が無い ) のでアップデートによる影響は受けにくい

21

このカスタマイズの注意点

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

URL: https://cybozudev.zendesk.com/ © 2016 Cybozu 22

ルックアップで手の行き届かない点を解消するためには、

カスタマイズで乗り越える !!

まとめ