子モデルのルックアップ

最終更新日: 2022年10月6日

動作イメージ

例を示します。「案件-案件明細」という親子関係と対になる「見積-見積明細」という関係があります。先に案件が登録されています。ここで見積作成時、案件を指定すると案件の親子データが見積側にルックアップされるという動作です。

動作イメージ

はじめに、案件と案件明細を用意します。

案件データ

見積の新規登録画面を開きます。

見積の新規登録画面

見積と紐づく案件を選択します。

見積と紐づく案件を選択する

案件(親)と、案件明細(子)がルックアップされました。

案件(親)と案件明細(子)がルックアップされた

設定方法

次の4つのモデルを用意しました。案件(親)と案件明細(子)がひとまとまりです。これと対になる、見積(親)と見積明細(子)があります。

4つのモデル

案件

案件モデルの内容は次のとおりです。

案件モデル

紐づく子モデルは次の通りです。

案件明細モデル

見積

案件と対になる見積もりモデルを用意します。

見積モデル

紐づく子モデルは次の通りです。

見積明細モデル

スクリプト (入力フィルタ)

モデルの「入力フィルタ」のタイミングでスクリプトを設定します。

今回のルックアップ操作は新規登録画面のみで有効です。
そのため画面が新規登録なら、という条件を用意します。また、案件と紐づくモデル参照項目が設定されていた時、という条件も含めてください。

新規登録画面かつモデル参照項目が空ではない場合という条件

はじめに、親モデル部分のルックアップ処理をスクリプトで用意します。モデル取得ブロックを使い、案件モデルの内容を見積モデルに転記します。

モデル操作ブロック
親モデル部分のルックアップ処理

次に子モデル部分のルックアップ処理を行うブロックを使います。このブロックは親子モデル同時更新の新規登録画面でのみ利用できます。

子モデルをルックアップするブロック

コピー元親モデル参照項目は、参照先モデルを示す項目(今回は見積モデルに用意した「案件」項目)を指定します。
コピー元データは、参照先の明細部のことです。通常、複数件あります。モデル取得ブロックを使います。
コピー先モデルは、自モデルの明細部のことです。ここでは「見積明細」を指定します。
マッピング部分に、読み込んだ値を自モデルにセットする文を用意します。図に示すように複数のセットブロックを含めることができます。

子モデル部分のルックアップ処理

仕様・制約

  • このスクリプトは親子同時更新画面の登録処理でのみ動作します。
  • スクリプトの動作タイミングは「入力フィルタ」です。
  • 登録処理を行う前であれば、参照先(上の例では「案件」)を変更することができます。変更時、すでに子モデルにデータが追加されている場合は、これらの値は削除され、あらためて(指定された参照データを)コピーします。