株式会社XenoX

マニュアル›ルックアップサブテーブルコピープラグイン

ルックアップサブテーブルコピープラグイン マニュアル

このプラグインでできること

kintone 標準のルックアップは、1つずつのフィールドの値しかコピーできません。
取得元のレコードにサブテーブル(明細行を入力する表)があっても、その中身は運べません。
このプラグインを使うと、ルックアップの「取得」を実行したときに、取得元レコードのサブテーブルの全行が、自分のアプリのサブテーブルへ自動でコピーされます。
たとえば商品セットマスタの明細を、見積アプリの明細へそのまま展開できます。

ルックアップサブテーブルコピープラグインの紹介ページを見る

1-1. 主な機能

  • ルックアップの「取得」を実行すると、取得元レコードのサブテーブルの全行を自動でコピーします。
  • コピー元と登録先のフィールドの対応(マッピング)を、設定画面で自由に決められます。
  • 同じフィールドタイプで同じフィールド名(またはフィールドコード)の項目は、自動でマッピングされます。
  • サブテーブル以外の通常フィールドも、同じ取得元レコードから一緒にコピーできます。登録先が文字列なら、ドロップダウンや日付などの値も文字列にしてコピーできます。
  • 取得元のアプリは、ルックアップの参照先以外のアプリにも変更できます。
  • 1つのアプリの中に複数の設定を登録できます。設定はタブで切り替えて管理します。
  • パソコンとスマートフォンの両方で動作します。
  • レコードを再利用して作成した場合にも、明細がコピーされます。

💡 サブテーブルのコピーは「追記」ではなく「全置換」です。自分のアプリのサブテーブルの内容は、取得元の内容で丸ごと入れ替わります。

動作環境・前提条件

2-1. 必要な権限

対象者必要な権限
設定する方このプラグインを追加するアプリの「アプリ管理権限」
利用する方取得元アプリのレコードを閲覧できる権限

⚠️ 利用する方に取得元アプリの閲覧権限がないと、明細はコピーされません。エラーの通知が表示されます。

2-2. 事前に必要なアプリ・フィールド

設定を始める前に、2つのアプリを次の状態にしておきます。
ここでは「商品セットマスタ」を取得元アプリ、「見積アプリ」をプラグインを追加するアプリとして説明します。

取得元アプリ(例:商品セットマスタ)に必要なもの

  1. キーにするフィールドを用意します。
  2. そのフィールドの設定で「値の重複を禁止する」にチェックを入れます。
  3. 明細を入力するサブテーブルを用意します。

キーに使えるフィールドは次のとおりです。

キーに使えるフィールド条件
文字列(1行)「値の重複を禁止する」にチェックが必要
数値「値の重複を禁止する」にチェックが必要
レコード番号条件なし(常に選べます)

⚠️ 「値の重複を禁止する」にチェックが入っていないフィールドは、設定画面の選択肢に表示されません。同じキーのレコードが複数あると、どのレコードの明細をコピーすべきか決められないためです。

プラグインを追加するアプリ(例:見積アプリ)に必要なもの

  1. 取得元アプリを参照するルックアップフィールドを用意します。
  2. ルックアップの「コピー元のフィールド」に、上で用意した重複を禁止したフィールドを指定します。
  3. 明細を登録するサブテーブルを用意します。
  4. そのサブテーブルの中に、取得元の明細と同じフィールドタイプのフィールドを用意します。

見積アプリのルックアップの設定。「コピー元のフィールド」に重複を禁止したフィールドを指定する

見積アプリのルックアップの設定。「コピー元のフィールド」に重複を禁止したフィールドを指定する

💡 登録先のフィールド名を取得元と同じ名前にしておくと、設定画面でマッピングが自動で入ります。設定の手間が減ります。

設定手順

設定画面では、1つの「設定」ごとに、どのルックアップでどのサブテーブル・フィールドをコピーするかを決めます。
設定はタブで管理します。複数のルックアップがある場合は、設定を複数登録できます。

設定が1つもないときの設定画面

設定が1つもないときの設定画面

3-1. 設定を追加する

  1. 設定画面の上部にある「+設定を追加」をクリックします。
  2. タブが1つ追加され、設定の入力欄が表示されます。

💡 設定が1つもない場合は、画面に「設定がありません。「設定を追加」から作成してください。」と表示されます。

「+設定を追加」で追加されたタブ

「+設定を追加」で追加されたタブ

3-2. 設定名を入力する

  1. 「設定名(タブ名)」の入力欄をクリックします。
  2. 設定の内容が分かる名前を入力します(例:見積明細の取得)。

入力した名前は、そのままタブの名前になります。
未入力の場合は「設定1」のように自動で表示されます。

「設定名(タブ名)」の入力欄

「設定名(タブ名)」の入力欄

3-3. 対象ルックアップを選ぶ

  1. 「対象ルックアップ」の「ルックアップフィールド」をクリックします。
  2. 一覧から、トリガーにするルックアップフィールドを選びます。

選択肢には、このアプリのルックアップフィールドだけが表示されます。
選ぶと、「取得元アプリ」にそのルックアップの参照先アプリが自動で入ります。

💡 選択欄は文字を入力して絞り込めます。フィールド名の一部を入力すると候補が絞られます。

⚠️ このアプリにルックアップフィールドが1つもない場合、選択欄には「ルックアップフィールドがありません」と表示されます。先にルックアップフィールドを追加してください。

ルックアップを選ぶと、取得元アプリと一意キーが自動で入る

ルックアップを選ぶと、取得元アプリと一意キーが自動で入る

3-4. 取得元アプリを選ぶ

ルックアップを選ぶと、そのルックアップの参照先アプリが自動で入ります。
通常はそのままで問題ありません。

明細だけを別のアプリから取得したい場合に、次の手順で変更します。

  1. 「取得元アプリ」の選択欄をクリックします。
  2. 一覧から、明細を取得したいアプリを選びます。

選択肢には、自分が閲覧できるアプリがすべて表示されます。
アプリ名とアプリIDが並んで表示されるため、同名のアプリでも見分けられます。

⚠️ 取得元アプリを変更すると、「取得元アプリのキー」「取得元サブテーブル」「フィールドのマッピング」「通常フィールドのマッピング」は選び直しになります。設定の途中で変更する場合はご注意ください。

「取得元アプリ」。アプリ名とアプリIDが表示される

「取得元アプリ」。アプリ名とアプリIDが表示される

3-5. 一意キーを選ぶ

「一意キー(取得元レコードの特定に使用)」では、どのレコードの明細を取得するかを決めます。
左右2つの欄があり、「左の値と一致するレコードを、右のフィールドで探す」という関係になります。

「一意キー」。左がこのアプリのキー、右が取得元アプリのキー

「一意キー」。左がこのアプリのキー、右が取得元アプリのキー

左:このアプリのキー

  1. 「このアプリのキー(ルックアップ自体/ルックアップで取得するフィールド)」の選択欄をクリックします。
  2. 一覧から、末尾に「<ルックアップ>」と付いた項目を選びます。

「<ルックアップ>」が付いた項目は、手順3-3で選んだルックアップフィールドそのものです。
ルックアップのキーは取得元アプリで重複が禁止されているため、レコードを確実に1件に絞り込めます。

💡 選択欄には、ルックアップが一緒に取得する文字列(1行)と数値のフィールドも表示されます。特別な事情がなければ「<ルックアップ>」が付いた項目を選んでください。

⚠️ 候補が1つもない場合は「キーに使える 文字列1行/数値 のフィールドがありません(ルックアップ自体・コピー先とも該当なし)。」と表示されます。ルックアップのコピー元フィールドが、文字列(1行)または数値かをご確認ください。

右:取得元アプリのキー

  1. 「取得元アプリのキー(重複不可のみ)」の選択欄をクリックします。
  2. 一覧から、取得元アプリでキーになるフィールドを選びます。

取得元アプリがルックアップの参照先のままの場合、ルックアップのキーが自動で選ばれます。
候補が1つしかない場合も自動で選ばれます。

⚠️ 候補には、レコード番号と、「値の重複を禁止する」にチェックを入れた文字列(1行)・数値だけが表示されます。目的のフィールドが出てこない場合は、取得元アプリでそのフィールドの重複禁止の設定をご確認ください。

⚠️ 候補が1つもない場合は「取得元に 重複不可の 文字列1行/数値、またはレコード番号 がありません。」と表示されます。

3-6. サブテーブルを選ぶ

「サブテーブル」では、どの明細をどこへコピーするかを決めます。

  1. 「取得元サブテーブル」の選択欄をクリックします。
  2. 取得元アプリのサブテーブルを選びます。
  3. 「このアプリのサブテーブル」の選択欄をクリックします。
  4. 明細を登録するサブテーブルを選びます。

両方を選ぶと、下に「フィールドのマッピング」が表示されます。

取得元サブテーブルと、このアプリのサブテーブルを選ぶ

取得元サブテーブルと、このアプリのサブテーブルを選ぶ

💡 サブテーブルをコピーせず、通常フィールドだけをコピーする場合は、両方とも「(コピーしない)」のままにします。その場合は「3-8. 通常フィールドのマッピングを設定する」で1行以上設定してください。

3-7. フィールドのマッピングを設定する

「フィールドのマッピング」では、取得元の明細の各項目を、自分のアプリのどの項目に入れるかを決めます。
表の左が「取得元フィールド」、右が「登録先(このアプリ)」です。

サブテーブルを選んだ時点で、同じフィールドタイプかつ同じフィールド名(またはフィールドコード)の項目は自動で選ばれています。
そのままでよければ変更は不要です。

「フィールドのマッピング」。同じ型・同じ名前の項目は自動で選ばれている

「フィールドのマッピング」。同じ型・同じ名前の項目は自動で選ばれている

変更する場合は、次の手順で操作します。

  1. 変更したい行の「登録先(このアプリ)」の選択欄をクリックします。
  2. 一覧から、値を入れたいフィールドを選びます。

コピーしたくない項目がある場合は、次の手順で操作します。

  1. 対象の行の「登録先(このアプリ)」の選択欄をクリックします。
  2. 一覧から「(コピーしない)」を選びます。

「(コピーしない)」にした項目は転記されません。
その項目は、コピー前の明細の1行目と同じ値になります(新しいレコードでは、kintone のフィールド設定で決めた初期値または空欄)。

💡 「登録先(このアプリ)」の候補には、取得元と同じフィールドタイプのフィールドだけが表示されます。フィールドタイプが違うことによる保存エラーは起きません。

💡 他の行ですでに選んだ登録先は、候補から自動的に消えます。同じフィールドに2つの項目を入れる設定はできません。

⚠️ 取得元が計算フィールドの場合だけ、登録先に「計算」と「数値」の2種類を選べます。「数値」を選ぶと、取得した時点の計算結果がそのまま数値として入ります。「計算」を選ぶと、自分のアプリの計算式で計算し直されます。

⚠️ 添付ファイル、レコード番号、作成者などのフィールドはコピーできません。表にも表示されません。

⚠️ コピーできるフィールドが1つもない場合は「コピー可能なフィールドがありません。」と表示されます。

登録先を「(コピーしない)」にした行

登録先を「(コピーしない)」にした行

3-8. 通常フィールドのマッピングを設定する

設定画面の一番下にある「通常フィールドのマッピング」では、取得元レコードのサブテーブル以外のフィールド(通常フィールド)を、自分のアプリのどのフィールドに入れるかを決めます。
ルックアップの「取得」で、サブテーブルと一緒にコピーされます。

  1. 「+フィールドを追加」をクリックします。
  2. 追加された行の「取得元フィールド」で、コピー元のフィールドを選びます。
  3. 「登録先(このアプリ)」で、値を入れるフィールドを選びます。

「同じ名前のフィールドを一括追加」をクリックすると、同じ型で同じフィールド名(またはフィールドコード)のフィールドをまとめて追加します。
追加した件数は「◯件のフィールドを追加しました」と表示されます。追加できるものがない場合は「追加できる同名フィールドはありませんでした」と表示されます。

行を削除するときは、行の右端にある「×」をクリックします。

「通常フィールドのマッピング」で行を追加した状態

「通常フィールドのマッピング」で行を追加した状態

「登録先(このアプリ)」に選べるフィールドは、取得元フィールドの型で決まります。

取得元フィールドの型選べる登録先の型
文字列(1行)/ 文字列(複数行)/ 数値 / 日付 / 時刻 / 日時 / ドロップダウン / ラジオボタン / チェックボックス / 複数選択 / リンク / ユーザー選択 / 組織選択 / グループ選択同じ型、または文字列(1行)・文字列(複数行)
計算数値、または文字列(1行)・文字列(複数行)
リッチエディターリッチエディター

💡 文字列の登録先へ別の型の値を入れるときは、文字列に変換して入れます。チェックボックス・複数選択・ユーザー選択などの複数の値は「, 」でつなぎます。日時は「YYYY-MM-DD HH:mm」の形になります。文字列(1行)へ入れるときは、改行を空白に置き換えます。

⚠️ 対象ルックアップ自体と、ルックアップがコピーするフィールドは、登録先に選べません。

⚠️ 通常フィールドは、取得元の値で上書きされます。取得元が空欄なら、登録先も空欄になります。

3-9. 設定を保存する

  1. 設定画面の左上にある「設定保存」をクリックします。
  2. 画面右上に「設定を保存しました」と表示されます。

保存すると、アプリの更新(変更を反映)も自動で行われます。
アプリの設定画面に戻って「変更を反映」を押す必要はありません。

💡 キーボードの Ctrl キーと S キーを同時に押しても保存できます(Mac は command キーと S キー)。

⚠️ 入力に不備があると保存されません。不備のある設定のタブへ自動で切り替わり、画面右上にメッセージが表示されます。内容は「3-12. 保存できないときのメッセージと対処」をご確認ください。

保存すると表示される「設定を保存しました」

保存すると表示される「設定を保存しました」

3-10. 設定を追加・切り替え・削除する

1つのアプリに複数のルックアップがある場合は、設定を複数登録できます。

設定を切り替える

  1. 画面上部のタブをクリックします。
  2. そのタブの設定内容が表示されます。

設定を追加する

  1. 「+設定を追加」をクリックします。

設定を2つ登録した状態のタブ

設定を2つ登録した状態のタブ

設定を削除する

  1. 削除したいタブの右端にある「×」をクリックします。
  2. 「この設定を削除しますか?」と表示されます。
  3. 「削除する」をクリックします。

削除をやめる場合は「キャンセル」をクリックします。

⚠️ 削除しただけでは確定しません。「設定保存」をクリックするまで、削除内容はアプリに反映されません。

「この設定を削除しますか?」のダイアログ

「この設定を削除しますか?」のダイアログ

3-11. 設定項目一覧

項目名内容選択肢に表示されるもの
設定名(タブ名)設定の名前。タブに表示されます自由入力
ルックアップフィールドコピーのトリガーにするルックアップこのアプリのルックアップフィールド
取得元アプリ明細を取得するアプリ閲覧できるすべてのアプリ
このアプリのキー(ルックアップ自体/ルックアップで取得するフィールド)取得元を検索するときの値対象ルックアップ本体と、そのルックアップが取得する文字列(1行)・数値
取得元アプリのキー(重複不可のみ)取得元を検索するときの対象フィールドレコード番号と、重複を禁止した文字列(1行)・数値
取得元サブテーブルコピー元の明細「(コピーしない)」と、取得元アプリのサブテーブル
このアプリのサブテーブルコピー先の明細「(コピーしない)」と、このアプリのサブテーブル
登録先(このアプリ)明細の各項目の転記先取得元と同じフィールドタイプで、他の行で未使用のフィールド
通常フィールドのマッピング:取得元フィールド取得元レコードの、サブテーブル以外のフィールド取得元アプリの通常フィールド(添付ファイル・レコード番号・作成者などを除く)
通常フィールドのマッピング:登録先(このアプリ)通常フィールドの転記先「3-8. 通常フィールドのマッピングを設定する」の表のとおり。ルックアップと、そのコピー先は除く

3-12. 保存できないときのメッセージと対処

「設定保存」をクリックしたときに表示されるメッセージと、その対処は次のとおりです。
メッセージの先頭には、対象の設定名が付きます。

メッセージ対処
対象ルックアップを選択してください「ルックアップフィールド」を選びます
ルックアップ「(フィールドコード)」が存在しません。選び直してください設定後にルックアップが削除されています。選び直します
取得元アプリを選択してください「取得元アプリ」を選びます
このアプリのキーを選択してください左側の「このアプリのキー」を選びます
このアプリのキーが無効です。選び直してくださいルックアップの設定変更などで候補から外れています。選び直します
取得元アプリのキーを選択してください右側の「取得元アプリのキー」を選びます
取得元アプリのキーが無効です(重複不可でない等)。選び直してください取得元アプリでフィールドの重複禁止が外れています。設定を戻すか、別のキーを選びます
取得元サブテーブルを選択してください「取得元サブテーブル」を選びます(サブテーブルをコピーしない場合は、両方とも「(コピーしない)」にします)
このアプリのサブテーブルを選択してください「このアプリのサブテーブル」を選びます(同上)
サブテーブルの登録先フィールドを1つ以上選択してください「フィールドのマッピング」で「登録先(このアプリ)」を1つ以上選びます
サブテーブルの登録先フィールドが重複しています同じ登録先が複数の行で使われています。どちらかを選び直します
通常フィールドのマッピングに未選択の行があります(不要な行は削除してください)取得元・登録先の両方を選ぶか、行の「×」で削除します
通常フィールドの登録先が重複しています同じ登録先が複数の行で使われています。どちらかを選び直します
通常フィールド「(フィールドコード)」は登録先に指定できません。選び直してください型が合わなくなったなどで候補から外れています。選び直します
サブテーブルまたは通常フィールドのマッピングを1つ以上設定してくださいサブテーブルか通常フィールドの、どちらかのマッピングを設定します

保存後に次のメッセージが出た場合は、アプリの更新だけが失敗しています。

メッセージ対処
設定は保存しましたが、アプリの更新に失敗しました設定自体は保存されています。アプリの設定画面から「変更を反映」を実行してください
更新処理に失敗しました同上

設定画面を開いたときに次のメッセージが出る場合もあります。

メッセージ対処
取得元アプリのフィールド取得に失敗しました(アクセス権をご確認ください)取得元アプリが削除されたか、閲覧権限がありません
設定情報の読み込みに失敗しました。ページを再読み込みしてください。画面を再読み込みします
ご利用にはライセンスの契約が必要です。ご契約の状態をご確認ください

操作手順

設定が終わると、レコードの作成画面と編集画面で自動的に動作します。
ボタンの追加や特別な操作は不要です。

4-1. 新規レコードで明細を取り込む

  1. 見積アプリでレコードの追加画面を開きます。
  2. 設定したルックアップフィールドの「取得」をクリックします。
  3. 一覧から対象のレコードを選びます。
  4. ルックアップの値が入り、続けて明細のサブテーブルに行が追加されます。

ルックアップを取得すると、明細のサブテーブルに行がコピーされる

ルックアップを取得すると、明細のサブテーブルに行がコピーされる

💡 明細の行数が多い場合や、取得元アプリのレコード件数が多い場合は、行が表示されるまで少し時間がかかります。

⚠️ 明細はマッピングした項目だけが転記されます。「(コピーしない)」にした項目は、コピー前の明細の1行目と同じ値(新しいレコードでは初期値または空欄)になります。

4-2. 既存レコードの明細を入れ替える

  1. 見積アプリでレコードの編集画面を開きます。
  2. ルックアップフィールドの「取得」をクリックします。
  3. 別のレコードを選びます。
  4. 明細のサブテーブルの内容が、新しい取得元の内容に丸ごと入れ替わります。

⚠️ 既存の明細行はすべて削除されます。手入力で追加・修正した行も残りません。編集画面で明細を調整したあとにルックアップを取得し直すと、調整した内容は失われます。

⚠️ 取得元の明細が0行の場合、自分のアプリの明細も0行になります。

別のレコードを取得すると、明細が新しい取得元の内容に入れ替わる

別のレコードを取得すると、明細が新しい取得元の内容に入れ替わる

4-3. レコードを再利用して作成する

  1. 見積アプリでレコードの詳細画面を開きます。
  2. 「レコードを再利用する」をクリックします。
  3. 作成画面が開いた時点で、明細が取得元の内容で読み込まれます。

再利用して作成した場合は、ルックアップの「取得」を押さなくても明細がコピーされます。
再利用のときだけの動作です。既存レコードを開き直したときには実行されません。

レコードの詳細画面にある「レコードを再利用する」

レコードの詳細画面にある「レコードを再利用する」

4-4. スマートフォンで利用する

スマートフォンの作成画面・編集画面でも、パソコンと同じように動作します。

  1. スマートフォンで見積アプリのレコード追加画面を開きます。
  2. ルックアップフィールドの「取得」をタップします。
  3. 対象のレコードを選びます。
  4. 明細のサブテーブルに行が追加されます。

スマートフォンでも、取得すると明細がコピーされる

スマートフォンでも、取得すると明細がコピーされる

4-5. 明細が入らないときの確認

明細が入らない場合、次のいずれかに当てはまることが多いです。

状態原因と対処
ルックアップの値が空キーの値が空のときはコピーを実行しません。ルックアップを取得してください
取得元に一致するレコードがないキーの値と一致するレコードが取得元アプリに存在しません。取得元アプリのデータをご確認ください
取得元の明細が0行取得元レコードのサブテーブルに行がありません
「取得元レコードの取得に失敗しました(取得元アプリの閲覧権限やネットワークをご確認ください)」と表示される取得元アプリの閲覧権限がないか、通信に失敗しています。管理者へご連絡ください

💡 ルックアップの値を「クリア」しても、すでに入っている明細や通常フィールドの値は削除されません。明細を消したい場合は、サブテーブルの行を手動で削除してください。

制限事項・注意点

  • 明細は全置換されます。既存の行に追加されるのではなく、丸ごと入れ替わります。
  • 取得元の明細が0行の場合、自分のアプリの明細も0行になります。
  • ルックアップの値をクリアしても、すでに入っている明細は削除されません。
  • 添付ファイル、レコード番号、作成者、更新者などのフィールドはコピーできません。
  • ドロップダウン、ラジオボタン、チェックボックス、複数選択の項目を同じ型へコピーする場合は、登録先にも同じ選択肢を用意してください。
  • ユーザー選択、組織選択、グループ選択の項目を同じ型へコピーする場合は、登録先でも同じユーザー・組織・グループを選べるようにしておいてください。
  • 取得元アプリのキーは、レコード番号または「値の重複を禁止する」を設定したフィールドのみ使用できます。
  • キーの値と一致するレコードが複数ある場合は、先頭の1件が使われます。
  • 対象ルックアップ自体と、ルックアップがコピーするフィールドは、通常フィールドの登録先に選べません。
  • 明細のコピーはレコードの作成画面・編集画面でのみ動作します。一覧画面での編集や、他システムからのデータ取り込みでは動作しません。
  • 設定の変更は「設定保存」をクリックするまで反映されません。タブの削除も同様です。

« マニュアルの一覧に戻る