デプロイット実践編6「関連レコードとルックアップの配布 相互参照編」

公開日:

注意

本記事は情報提供を目的としており、本記事の内容は無保証、サポートの対象外です。
サポート窓口、問合せ窓口にご質問をいただいても対応いたしかねますのでご了承ください。

はじめに

こんにちは、サポートの沖です。秋は食べ物が美味しいですね。。。(67.4kg 24.9%)

デプロイットではアプリの配布が可能で、ルックアップなどの複数アプリが関連するようなケースでも配布できます。デプロイットについてはこちらのページをご確認ください。

https://deploit.gusuku.io

一方通行のルックアップや関連レコードの配布の場合は、以前のブログをご確認ください。ルックアップや関連レコードがある場合は、こちらで案内している手順で大丈夫と思います。

ただ、相互参照の場合は簡単には配布できません。今回は相互参照の色々なパターンを紹介したいと思います。

アプリテンプレートで新規作成

おそらく、これが一番簡単と思います。kintoneではテンプレートを作成する時に、選択したアプリに関連するものが全て自動で含まれます。この場合、参照先のアプリが更に別のアプリを参照しているなど、多段構成の場合はまとめて含まれるので見落としにくくなります。

テンプレートがあれば、配布先環境でテンプレートからアプリを追加可能です。追加後はデプロイットに紐付きで登録するという手順になります。

紐付け登録についてはこちらのブログをご確認ください。

相互参照のアプリが同一環境にある場合

相互ルックアップ

画像のようにそれぞれのアプリが相手側をルックアップしているケースです。

この場合は、以下の手順になります。

1.商品マスタを配布

2.配布先アプリからルックアップを削除

3.売上明細を配布

4.商品マスタを配布

ポイントは配布済みのルックアップの「関連付けるアプリ」は変更できないことです。そのため手動での削除が必要です。

相互関連レコード

画像のように関連レコードで相互に参照しているケースです。

この場合は以下の手順になります。ルックアップと比べて1手順短縮です。

1.商品マスタを配布

2.売上明細を配布

3.商品マスタを配布

ポイントは配布済みの「参照するアプリ」がアプリの更新によって変更できることです。なので手動削除が不要です。この動きは便利だったり、罠だったりします。。。(この後の配布でも、この仕様を前提とした手順が出てきます)

ルックアップと関連レコード

片方にはルックアップがあり、もう片方には関連レコードがあるケースです。今までのケースでは最初に配布するアプリがどちらでも問題ないのですが、このケースは売上明細の方を先に配布する必要があります。

1.売上明細を配布

2.商品マスタを配布

3.売上明細を配布

基本は、ルックアップの「関連付けるアプリ」の方から先に配布することです。関連レコードは上書き可能なので後でなんとでもなります。まぁ、なってしまうのが弱点という点がありますが。。(2回目)

相互参照のアプリが同一環境にない場合

プロジェクトの環境内に参照先アプリがない場合は、デプロイットで紐付けが出来ません。そのため基本的には配布できないと考えた方が良いと思います。例えば、以下のようなケースを考えてみます。

この状態で商品マスタを配布すると以下のようになります。

アプリAからは開発環境のみを参照することになるので、検証環境のアプリは表示されません。そのため商品マスタとしては配布できているように見えますが、アプリA視点で考えると検証環境は存在しないことになります。

ルックアップの場合も同じになり、相互参照の場合は混乱の元になるのでお勧めはできません。

相互参照のアプリが同一環境になくて、環境毎に参照先アプリが変わる場合

画像のようにデプロイットの環境毎に別にアプリがあるようなケースを考えてみます。この場合であればそれぞれのアプリが参照する先が別なので配布できるような感じがすると思います。

試しに配布してみるとこんな感じになります。

関連レコードがアプリAを参照しているので手動でアプリBを参照するように変えてみたら、うまくいっているように見えます。

なお、この修正後に再度配布すると元に戻ります。(3回目)

ですので、現実的には配布は出来ないと思います。
ただ、ルックアップの場合は参照先アプリは変わらないので、ルックアップなら実現可能かも?

とは言え、そのような複雑な配布を考えるくらいなら、同一環境内にアプリを登録することをお勧めします。

最後に

相互参照編はいかがだったでしょうか?

配布によってアプリの参照が変わるのですが、デプロイットでは配布時に自動で置き換えをします。ただ、ルックアップの場合はアプリIDを指定しても無視され、関連レコードは反映するという点にご注意ください(4回目)。

細かく言うと、ルックアップで変更出来ない箇所は無視されて、変更出来ない項目は反映するという結果になります。「ほかのフィールドのコピー」などの修正は可能なので、アプリで変更した部分は反映されるので安心ですね。

なお、別プロジェクトで管理しているマスタをルックアップしているケースなど、ルックアップだけで考えると色々と方法はありそうなので、リクエストがあれば考えます。要望お待ちしてまーす。

投稿者プロフィール

アバター画像
"サイボウズ公認kintoneエバンジェリスト
カスタマインやデプロイットでも色々とやってます"