LoginSignup
9
14

rex0220 ルックアップ先更新プラグイン

Last updated at Posted at 2016-03-28

kintone 標準機能では、ルックアップ項目の値を変更した場合、ルックアップ参照しているアプリのレコードは、更新されません。
RDB データベースで、テーブル結合した場合と異なり、ルックアップ機能は値のコピー機能です。
しかし、データベースとして使用する場合は、マスターの最新データを反映したい要望が多いです。

このプラグインは、ルックアップ先更新処理を簡単に設定して、更新できます。
複数アプリがルックアップ対象でも、対象アプリを順次更新します。

  • 更新条件指定機能
  • 一覧画面で、一括ルックアップ先更新機能(PCのみ)
  • APIトークン対応
  • PC・スマホ対応

stores で、販売中です。

※Ver.21
・ルックアップ時に、「"」ダブルクオートや「\」バックスラッシュが含まれているときエラーとなる不具合対応
・Edge において、チェックボックスの色を変更
・CONTAINS 関数を追加。テーブル内項目の値を確認する
 CONTAINS(文字列T, "ABC")
・MOD 関数を追加。剰余を求める関数。
 MOD(10, 3) -> 1
・MROUND 関数を追加。倍数に丸める関数。
 MROUND(10, 3) -> 9
・ARRAY_EQUALS 関数を追加
 2つの配列のすべての要素が等しいか判定。
 ARRAY_EQUALS(ARRAY(1,2,3),ARRAY(1,2,3)) -> true
・ARRAY_EVERY 関数を追加
 配列のすべての要素が特定の条件を満たしているか判定。
 ARRAY_EVERY(ARRAY(1,2,3),XX,XX>0) -> true
・ARRAY_SOME 関数を追加
 配列内の少なくとも1つの要素が指定された条件を満たしているか判定。
 ARRAY_SOME(ARRAY(1,2,3),XX,XX>1) -> true
・ISBLANK 関数を追加
 指定されたパラメータがブランクか判定
・ISNUMBER 関数について、複数パラメータに対応
 ISNUMBER(1,"2") -> true, ISNUMBER(1,"A") -> false
・ARRAY_GET 関数について、"first", "last" オプションの説明を追加
 ARRAY_GET(ARRAY("A","B"),"first") -> "A"
 ARRAY_GET(ARRAY("A","B"),"last") -> "B"
・DURATION_AS, DURATION_GET, DURATION_FORMAT 関数の第1パラメータについて、文字列の数値に対応

ルックアップ先更新プラグイン

編集画面で「保存」後に、ルックアップ先更新処理が実行されます。
また、詳細画面でプロセス管理のステータスを変更時に、ルックアップ先更新処理が実行されます。
更新処理中、処理件数が表示されます。

プログレスバーとアプリ別件数表示されます。

更新処理中に、画面を閉じたり、別ページに移動すると更新処理が中止されます。

lookup01.png

スマホ対応

スマホでレコード変更を行った場合も、ルックアップ先更新処理が実行されます。

2018-04-04_13h57_09.png

1万件のレコード更新可能

対象件数が1万件でも、更新可能です。
lookup02b.png

対象アプリ10本でも更新可能

プラグイン設定画面

2021-09-30_11h02_44.png

更新ダイアログ表示
lookup02d.png

ルックアップの項目値変更に対応

ルックアップのキー項目変更にも対応しています。

lookup02a.png

ルックアップデータ削除のエラー

ルックアップ先アプリのレコード状況により、更新エラーが発生する場合があります。
ルックアップのデータ削除した場合、該当レコードのエラーを訂正してください。

lookup04a.png

ルックアップ設定変更によるエラー

ルックアップ先アプリの画面設定変更により、更新エラーが発生する場合があります。
ルックアップ設定を変更した場合、プラグイン設定画面で再設定してください。

lookup04b.png

一覧画面での編集機能

2017-05-08_09h56_07.png

一覧画面での「ルックアップ先更新」機能

プラグイン設定により、一覧画面に「ルックアップ先更新」ボタンを表示できます。
一覧画面で表示対象のレコードについて、まとめてルックアップ先更新を実行できます。
※対象レコードは、最大 2,000件です。2,000件以上の場合は、対象レコードを絞ってください。
REST API の1日当たりの回数制限(1万件/日)を超えないように調整してください。

2020-04-05_23h55_40.png

プラグインの追加

lookup05.png

設定画面

設定画面を開くと全アプリを検索し、ルックアップ参照しているアプリを取得します。
更新対象とするアプリを選択して、「保存する」をクリックします。

2021-09-30_11h02_44.png

ルックアップ設定チェック

項目設定内容により、API更新可能かチェックします。
2020-04-05_23h30_14.png

「値の重複を禁止」の設定

ルックアップ先更新を行うには、ルックアップのマスター側の項目の値がユニークキーとなっている必要があります。

例えば、担当者名に同じ名前のデータが複数登録されているとルックアップされた値がどちらのレコードか判断できません。
※ルックアップ選択時は、マニュアルでどちらかのレコードを選択していますが、レコード登録後はどちらのレコードかわからなくなります。

対応としては、下記のように担当者名の「値の重複を禁止する」を設定します。
なお既存レコードに値の重複がある場合は、あらかじめ重複を解消してください。
また、「値の重複を禁止する」を設定できないようなケースでは、ルックアップ項目を変更する必要があります。

2020-06-19_08h59_36.png

更新条件

更新対象レコードの条件を指定します。
「編集」ボタンをクリックすると、更新条件のダイアログが表示されます。
更新先アプリの項目と条件を指定します。条件値には、計算式が指定できます。
※計算式には、計算式プラグインの計算式が使用できます。

2020-04-05_23h35_23.png

APIトークンの指定

ユーザーに更新先アプリの参照・更新権限を付与できない場合に、APIトークンを指定して更新することが出来ます。
自アプリのAPIトークンと更新先アプリのAPIトークンの指定を行います。

1: 自アプリのAPIトークン。レコード閲覧権限が必要
2: 更新先アプリのAPIトークン。レコード閲覧・レコード編集権限が必要

2021-09-30_11h02_44.png

  • API トークンのテスト

APIトークン入力エリアの右のボタンをクリックして、内容をチェックできます。
※テストは、対象アプリのレコード取得のみ

2021-09-30_11h15_21.png

APIトークンの生成方法

APIトークン生成後、アプリ更新まで行ってください。

1: 自アプリのAPIトークン。レコード閲覧権限を付与
2021-09-30_11h26_56.png
2: 更新先アプリのAPIトークン。レコード閲覧・レコード編集権限を付与
2021-09-30_11h31_10.png

ボタン別設定

一覧画面で「ルックアップ先更新」ボタンを表示する場合に、チェックします。
ボタン名を変更する場合は、名称を変更します。

2020-04-05_23h47_10.png ## 一覧別設定

「ルックアップ先更新」ボタンを表示する一覧を指定します。

2020-04-05_23h44_55.png

権限設定

「ルックアップ先更新」ボタンを表示するユーザー・組織・グループ(ロール)を指定します。

2020-04-05_23h46_03.png

注意事項

  • 更新処理中に、画面を閉じたり、別ページに移動すると更新処理が中止されます。
  • レコードを削除された場合、本プラグインではエラーになりません。
  • 既に、JavaScript によるカスタマイズを行っているアプリの場合、処理が競合して、エラーになる場合があります。その場合は、該当するアプリでプラグインの使用を中止してください。
9
14
8

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
9
14