本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 04

ルックアップで名称や単価を取得する

選んだ商品の名称や単価を、別の表示項目へ取り出す方法を説明します。

最終更新日:

モデル間の関係と参照の小目次へ

1. このページで伝える機能

ルックアップは、参照項目で選んだデータから、名称や単価など別の項目の値を取得する機能です。商品を選ぶと、商品名や標準単価を自動的に表示できます。利用者が同じ内容を転記する手間を減らせます。ルックアップの項目は表示専用であり、利用者がその欄へ直接入力するものではありません。

2. Wagby11で実現できること

2.1 商品の選択に合わせて値を取得する

商品でデスクライトを選ぶと商品名と見積単価が表示され、ブックスタンドへ変更すると保存する前に両方の表示が切り替わります。

デスクライトの商品名と見積単価を取得した例。
デスクライトの商品名と見積単価を取得した例。
商品を変えると、商品名と見積単価も連動して変わります。
商品を変えると、商品名と見積単価も連動して変わります。

商品名は表示だけに使い、見積単価は見積に保存する設定にしました。値を保存するルックアップは、商品マスターの単価を後から変えても既存の見積単価を自動的には更新しません。参照する商品のキーが変わると取り直します。商品名のように保存しない項目は、参照先の値を表示します。

顧客の会社や、その親組織まで参照をたどる場合は、参照を複数段たどって値を取得するを参照してください。

取得した値そのものを保存する場合と、最終取得先のキーを保存して現在値を表示する場合の違いは、ルックアップの値保存とキー保存で説明します。

2.2 取得元の表示書式を引き継ぐ

Web UIのルックアップ項目は、取得元の項目に指定された表示書式を引き継げます。例えば、商品の単価を桁区切りと「円」付きで表示する設定なら、見積単価のルックアップ項目にも同じ表示を使えます。表示書式は見せ方の設定であり、取得する値や保存内容そのものを変更するものではありません。

継承するのは、formatのpattern(数値・日付などの書式)、prefix(前に付ける文字)、suffix(後ろに付ける文字)、style(表示方法)です。それぞれの設定ごとに、取得側で指定したものを優先し、未指定のものは取得元から引き継ぎます。書式全体を一括で置き換える必要はありません。

例えば、桁区切りを残して「円」だけを外したい場合は、取得側のsuffixへ空文字を指定します。未指定のpatternは引き継ぐため、桁区切りは残ります。単にsuffixの指定を省略すると取得元の「円」を引き継ぐので、未指定と空文字は使い分けます。リッチテキスト表示をやめて通常の文字列として表示したい場合は、取得側でstyle: plainを指定します。

lookup.entityで取得元を明示した場合や、lookup.viaで参照を複数段たどった場合も、最終的に値を取得する項目の書式を使います。一方、入力制御、画面のレイアウト、表示・非表示、配置位置などは、この書式継承の対象ではありません。必要な設定は取得側で別に指定します。

AIには「見積単価は商品の単価の桁区切りを引き継ぎ、円の表示だけを外してください」のように、残す書式と変える部分を伝えられます。書式や項目スタイルの基本は、一覧・詳細の項目スタイルを設定するも参照してください。

3. AIへの指示例

最小限の指示例

見積で商品を選んだら、商品名と標準単価を自動表示してください。

どの値を取得するか、取得した値を保存するか表示だけに使うかをAIが類推して補います。見積時点の単価を残す必要がある場合は、その点も明示します。

より詳細な指示例

見積のproductIdからProduct.productNameとProduct.unitPriceをルックアップで取得してください。productNameDは表示だけに使って保存しません。quotedPriceは見積単価として値を保存し、その後商品マスターが変更されても既存見積の値は自動更新しないようにします。両項目は表示専用とし、商品選択を変更すると保存前に表示が切り替わることと、保存後の値を確認してください。
既存の主キー・項目・データ・権限を保持し、必要なguide・referenceを確認してください。新しいモデルには自動採番の主キーとG_ADMINの登録・参照・更新・削除権限を用意してください。メニューと一般利用者向け操作マニュアルを更新し、設計情報の検証・コード生成・起動を行って動作を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。記述方法を覚えなくても、実現したい動作をAIへ伝えられます。

entity:
  attributes:
    - { name: 商品, name_en: productId, type: reference,
        fk: { entity: Product, field: productId } }
    - name: 商品名
      name_en: productNameD
      type: reference-lookup
      lookup: { source: productId, field: productName }
      transient: true
    - name: 見積単価
      name_en: quotedPrice
      type: reference-lookup
      lookup: { source: productId, field: unitPrice }
      transient: false

ルックアップ項目は、AppSchemaではtype: reference-lookupと取得条件を指定するlookupで定義します。

lookup.sourceは同じ見積モデル内の参照項目、lookup.fieldは商品側から取得する項目です。ここでは既定の値保存を使い、transientで保存の有無を分けています。複数参照はルックアップ元にできません。

5. 参考資料

guide:ルックアップの連動
designer/docs/appschema/html/guide/05-input-control/10-reference-lookup-linkage.html
guide:エンティティ属性タイプ
designer/docs/appschema/html/guide/03-model/02-fields.html
guide:ルックアップ
designer/docs/appschema/html/guide/08-rules/06-reference-lookup.html
reference:entity
designer/docs/appschema/html/reference/06-entity.html