はじめに
別アプリからテーブルのデータをまるごと参照したい方が、実は多いのではないでしょうか?
そんな方々のために、今回はアプリ間でテーブルのデータを参照する方法をまとめました。
さっそく、詳細を見ていきましょう。
環境準備
- kintoneアプリ
- エディター
- エディターの準備については カスタマイズファイルを適用してみよう|準備するもの を参照してください。
カスタマイズのイメージ
今回実現したいことは、「出張申請」アプリから「旅費精算申請」アプリの「旅費」テーブルのデータを参照することです。
実現方法として、次の2パターンを紹介したいと思います。
- パターン1:REST APIを使って参照する。
- パターン2:標準機能のみで参照する。
パターン1:REST APIを使って参照する
テーブルのデータを参照するのみではなく、次のようなデータ扱いをしたい場合はあると思います。
- テーブルデータを別のアプリから取得したい。
- テーブルデータを別のアプリに保存したい。
次は、上記2パターンの自動参照を実現する、JavaScriptカスタマイズを使った方法を紹介したいと思います。
テーブルデータを別のアプリから取得する
しくみ
具体的には、「別アプリからテーブルデータを取得し、詳細画面のスペースフィールドに表示させる」というしくみになります。
今回の例では、「出張申請」アプリのレコード詳細画面が表示されたときに、「旅費精算申請」アプリから「旅費」テーブルのデータを取得し、スペースフィールドに表示させるイメージです。
アプリ間の関係図は次になります。
完成イメージ
適用手順
-
「出張申請」アプリ
- フィールドコードが「出張申請番号」のレコード番号フィールドを追加する。
- フィールドコードが「tableSpace」のスペースフィールドをひとつ追加する。
フィールドコード フィールドの種類 備考 出張申請番号 レコード番号 「旅費精算申請」レコードを特定するための番号です。
同じ「出張申請番号」の「旅費精算申請」レコードのテーブルデータを参照し、「出張申請」レコードに反映します。tableSpace スペース 取得した「旅費精算申請」のテーブルデータを表示するために利用します。 - サンプルプログラムをJavaScriptファイルに保存し、設定画面からファイルを読み込む。
ファイルの読み込み方法は 「JavaScriptやCSSでアプリをカスタマイズする」 を参照してください。
警告
スペースフィールドにデータを表示させる場合、表示されたデータは、標準機能で合計値を計算できません。
スペースフィールドに表示されたデータも含めて、金額の合計値を計算したい場合は、「旅費精算申請」アプリから取得したデータを利用して合計値を算出する処理が必要です。 -
「旅費精算申請」アプリ
- フィールドコードが「出張申請番号」のレコード番号フィールド(必須項目)を追加する。
フィールドコード フィールドの種類 備考 出張申請番号 数値 「出張申請」レコードを特定するための番号です。
同じ「出張申請番号」の「出張申請」レコードに、「旅費精算申請」のテーブルデータを反映します。
紐つけたい「出張申請」アプリのレコード番号を、こちらに入力します。
「出張申請アプリ」の「出張申請番号」とフィールドコードを合わせてください。
「必須項目にする」「値の重複を禁止する」にチェックしてください。
- フィールドコードが「出張申請番号」のレコード番号フィールド(必須項目)を追加する。
サンプルプログラム
「出張申請」アプリのレコード詳細画面の表示イベントで、「旅費精算申請」アプリから「旅費」テーブルのデータを取得し、「出張申請」アプリのスペースフィールドに表示させる処理です。
|
|
動作確認
- 「旅費精算申請」アプリに新規レコードを作成し、保存する。
「旅費」テーブルにデモ用のデータを登録する。 - 「出張申請」アプリに新規レコードを作成し、保存する。
保存後のレコード詳細画面の「tableSpace」スペースフィールドに、「完成イメージ」のようなテーブルが表示されたかどうかを確認する。
テーブルデータを別のアプリに登録する
しくみ
具体的には「レコード保存時に、テーブルデータを参照させたいアプリのテーブルにも登録する」になります。
今回の例では、「旅費精算申請」アプリのレコードを保存するときに「旅費」テーブルのデータを「出張申請」アプリにも保存するイメージになります。
アプリ間の関係図は次になります。
完成イメージ
適用手順
- 「出張申請」アプリ
- フィールドコードが「出張申請番号」のレコード番号フィールドを追加する。
- 設定から、取得したデータを格納するためのテーブルを追加する。
フィールドコード フィールドの種類 備考 出張申請番号 レコード番号 「旅費精算申請」レコードを特定するための番号です。
同じ「出張申請番号」の「旅費精算申請」レコードから更新されたテーブルデータを「出張申請」レコードに反映します。旅費 テーブル 「旅費精算申請」の「旅費」テーブルと同じものを追加します。
- 「旅費精算申請」アプリ
- フィールドコードが「出張申請番号」のレコード番号フィールドを追加する。
フィールドコード フィールドの種類 備考 出張申請番号 数値 「出張申請」レコードを特定するための番号です。
同じ「出張申請番号」の「出張申請」レコードに、「旅費精算申請」のテーブルデータを反映します。
紐つけたい「出張申請」アプリのレコード番号を、こちらに入力します。
「出張申請アプリ」の「出張申請番号」とフィールドコードを合わせてください。
「必須項目にする」「値の重複を禁止する」にチェックしてください。 - サンプルプログラムをJavaScriptファイルに保存し、設定画面からファイルを読み込む。
ファイルの読み込み方法は 「JavaScriptやCSSでアプリをカスタマイズする」 を参照してください。
- フィールドコードが「出張申請番号」のレコード番号フィールドを追加する。
サンプルプログラム
「旅費精算申請」アプリのレコード追加・編集画面の保存成功後イベントで、「旅費精算申請」アプリの「旅費」テーブルのデータを、「出張申請」アプリの「旅費」テーブルにも登録する処理になります。
|
|
動作確認
- 「出張申請」アプリに新規レコードを作成し、保存する。
- 「旅費精算申請」アプリに新規レコードを作成し、保存する。
「旅費」テーブルにデモ用のデータを登録する。 - 「旅費精算申請」アプリのレコード追加/編集画面を保存する。
- 「出張申請アプリに旅費精算申請データを反映しました」のメッセージが表示されたら、1で作成した「出張申請」レコードの「旅費」テーブルに、データが反映されたどうかを確認する。
パターン2:標準機能のみで参照する
JavaScriptを使ったカスタマイズの方法を紹介しましたが、もう少し手軽にできる、標準機能を使った方法についても紹介したいと思います。
アクションボタンを押す作業があるなど、利便性に少し欠ける方法ですが、ノンコーディングでできるので、ご興味のある方はぜひ試してみてください。
しくみ
「テーブルとして保存したいデータは、別のアプリに保存しておき、そのアプリから、関連レコード機能を使ってデータを参照する」というしくみになります。
今回の例で使うアプリの場合、次の流れになります。
- 「旅費明細」アプリを作成する。
- 「旅費精算申請」アプリのテーブルデータに相当する内容を、「旅費明細」アプリに保存する。
- 保存された「旅費明細」アプリのデータを「旅費精算申請」「出張申請」アプリから、関連レコードを使って参照する。
アプリ間の関係図は次になります。
「旅費明細」アプリへのデータ登録は、「旅費精算申請」アプリのアクションボタンを使って、1レコードにテーブル1行のデータを保存する、という運用になります。
完成イメージ
適用手順
-
「旅費明細」アプリ
- 「旅費明細」アプリを新規作成する。
- 「日付」「手段」「旅費摘要」「金額」「領収書」など、「旅費精算申請」アプリのテーブルデータに相当する内容を保存するためのフィールドを追加する。
- フィールド名が「旅費申請番号」の文字列(1行)フィールドを追加する。
- 追加するフィールドの詳細は下記を参照してください。
フィールド名 フィールドの種類 備考 日付 日付フィールド 旅費の「日付」情報を入力します。 手段 ドロップダウン 旅費の「手段」情報を入力します。 旅費摘要 文字列(1行) 旅費の「旅費摘要」情報を入力します。 金額 数値 旅費の「金額」情報を入力します。 領収書 チェックボックス 旅費の「領収書」情報を入力します。 旅費申請番号 文字列(1行) 関連レコードとアクションの関連付けのキーとして利用します。
- 「旅費明細」アプリを新規作成する。
-
「旅費精算申請」アプリ
- 「旅費」テーブルを削除する。
- アクション機能を設定する。
アクションの設定の「フィールドの関連付け」で、「No」フィールドと「旅費明細」アプリの「旅費申請番号」を関連付けさせる。
アクションの設定方法はkintoneヘルプ アプリアクションを設定する を参照してください。 - 関連レコード一覧フィールドを追加し、「旅費明細」アプリのデータを参照できるように設定する。
追加するフィールドの詳細は下記を参照してください。フィールド名 フィールドの種類 備考 旅費明細 関連レコード一覧 - 参照するアプリ:旅費明細
- 表示するレコードの条件:このアプリのフィールド「No」と参照するアプリのフィールド「旅費申請番号」
- 表示するフィールド:「旅費精算申請」アプリに表示させたいフィールド
- 関連レコードの設定方法詳細はkintoneヘルプ 関連レコード一覧を設定する を参照してください。
警告
テーブルの代わりに、関連レコード機能で「旅費精算申請」アプリに「旅費」データを表示させる場合、テーブルデータでは行える、標準機能の合計値の計算ができなくなります。
関連レコードにある金額データも含めて合計値を計算したい場合は、 関連レコードの項目を条件付きで集計 を参照してください。
「テーブルデータの参照」部分の動作をまず試してみたい方は、「旅費精算申請」の「旅費」テーブルを削除する際に、「旅費合計」計算フィールドも含めて削除してください。 -
「出張申請」アプリ
- フィールドコードが「旅費申請番号」の文字列(1行)フィールドを作成する。
(関連レコードとアクションの関連付けのキーとして利用) - 関連レコード一覧フィールドを追加し、「旅費明細」アプリのデータを参照できるように設定する。
追加するフィールドの詳細は下記を参照してください。フィールド名 フィールドの種類 備考 旅費申請番号 文字列(1行) 関連レコードとアクションの関連付けのキーとして利用します。 旅費明細 関連レコード一覧 - 参照するアプリ:旅費明細
- 表示するレコードの条件:このアプリのフィールド「旅費申請番号」と参照するアプリのフィールド「旅費申請番号」
- 表示するフィールド:「旅費精算申請」アプリに表示させたいフィールド
- 関連レコードの設定方法の詳細はkintoneヘルプ 関連レコード一覧を設定する をして参照ください。
- フィールドコードが「旅費申請番号」の文字列(1行)フィールドを作成する。
おわりに
今回のTipsでは、アプリ間でテーブルのデータを参照する方法を紹介しました。
他にも、データ参照でよく使われる 関連レコードのカスタマイズ や テーブルのほかの活用方法 など、便利な情報がたくさんありますので、ぜひ確認してみてください。
このTipsは、2022年10月版kintoneで動作を確認しています。