kintone の 関連レコード一覧 、便利な機能ですよね。
例えば顧客アプリの詳細画面にさまざまなアプリの関連レコード一覧を表示し、その顧客に関する受注やお問合せなど様々なアプリの情報を集約して表示する、といった事が可能です。
ただ、関連レコード一覧の対象となるのはレコードのみであるため、他のアプリのテーブルに登録した行を関連レコードに表示することはできません。
今回は、他のアプリのテーブル行を”関連レコードのように”表示する方法をご紹介します。
例の中では、「発送依頼」アプリのテーブルを「発送依頼一覧」アプリのスペースにまとめて表示します。
表示手順は下記です
「発送依頼一覧」アプリの詳細画面が表示されたら「発送依頼」アプリからテーブルが入ったレコードを取得する
1で取得したレコードからテーブルすべてをレコードとして取り出す
2で取り出したレコードを並べ替える(並べ替える必要がなければ不要です)
3で並べ替えたレコードをスペースに表示する
アプリの設定
※フィールド名とフィールドコードは同じに設定しています。
発送依頼アプリ
出荷依頼を行うアプリです。
「出荷一覧テーブル」に、「出荷予定日」と「発送先」ごとの出荷予定商品を登録します。
週か予定日フィールドは日付フィールド、発送先フィールドはルックアップフィールドで作成しています。
発送依頼一覧アプリ
こちらがCustomineでのカスタマイズ対象となるアプリです。
「発送日」と「送付先」を指定してレコードを保存すると、詳細画面で「発送依頼」アプリのレコードを取得し、取得されたテーブルの行が関連レコードの様に表示されます。
発送日フィールドは日付フィールド、送付先フィールドはルックアップフィールドで作成しています。
スペースフィールドのフィールドコードは「list」と設定しました。
Customineでのカスタマイズ
「発送依頼一覧アプリ」アプリのカスタマイズを作成します。
「発送依頼一覧」アプリの詳細画面が表示されたら「発送依頼」アプリからテーブルが入ったレコードを取得する
やること
「クエリで条件を指定してレコードを取得する」を選択します。
取得先アプリは「発送依頼」、抽出条件は下記です。
出荷予定日 = "${発送日}" and 発送先 = "${送付先}"
意味としては、
発送依頼アプリの「出荷予定日」フィールドの値が発送依頼一覧アプリの「発送日」フィールドの値と一致し、
かつ発送依頼アプリの「発送先」フィールドの値が発送依頼一覧アプリの「送付先」フィールドの値と一致しているレコードを取得するという内容です。
なお、ここでは二つのフィールドを条件としたため「クエリで条件を指定してレコードを取得する」を選択しましたが、条件によっては下記のようなレコードを取得するやることでしたらいずれも利用可能です。
レコードの取得条件によって使い分けてください。(下記は一部です)
条件
詳細画面を表示した時に表示したいので「詳細画面を表示した時」を選択します。
レコードからテーブルすべてをレコードとして取り出す
やること
アクション番号1で取得したレコードからテーブルを取り出すため「他のレコード内のテーブルをレコードとして取得する」を選択します。
取り出したテーブルはレコードとして取得するのですが、これはテーブルのまま扱うより、レコードに変換した方がその後の処理で利用可能なやることが多いためです。
テーブルを含むレコードは、レコードを取得するアクションである「1」、テーブルには「出荷一覧テーブル」を指定しました。
空の行は表示したくないので「空の行は取得しない」、取得したレコード全てのテーブルをまとめて取得したいので「すべてのレコードのテーブルを結合する」を指定します。
条件
レコードの取得が完了してからテーブルを取り出したいので「他のアクションの実行が完了した時」を指定します。
アクションには「1」を指定しました。
取り出したレコードを並べ替える(並べ替える必要がなければ不要です)
やること
アクション番号2で取り出したテーブル行を並べ替えて表示したいので、「レコードを並べ替える」を選択します。
レコード選択アクションは、並べ替えの対象としたいアクション番号「2」です。
もし並べ替えの必要がなければ省いていただいて問題ありません。
今回は、商品コード順に並べたいので、キーとなるフィールド(1)に「商品コード」を指定しました。
条件
レコードからテーブル行の取り出しが完了してから並べ替えたいので「他のアクションの実行が完了した時」を指定します。
アクションには「2」を指定しました。
並べ替えたレコードをスペースに表示する
やること
最後に、並べ替えたテーブル行(レコードに変換済み)をスペースに表示するため「レコードの一覧をスペースに表示する」を選択します。
表示する場所は、あらかじめスペースフィールドにフィールドコードを指定しておいた「list」です。
レコードは、並べ替えた後のアクション番号「4」、表示するフィールドは下記です。
コード
商品コード
商品名
数量
条件
並べ替えが終わってから表示したいので「他のアクションの実行が完了した時」を指定します。
アクションには「4」を指定しました。
以上でカスタマイズは完了です。
「kintoneアプリへ登録」し、実行を確認してみてください。
関連レコード一覧のように、テーブルの値が表示されましたでしょうか?
なお、元のフィールドがルックアップフィールドやリンクであっても、ただの文字列として表示されますので、その点ご注意ください。
カスタマイズ作成の際は、Customineヘルプやサポートをぜひご活用ください。