LoginSignup
2
4

Pleasanterのルックアップを改めて整理してみる

Last updated at Posted at 2023-09-06

はじめに

Pleasanterのルックアップは、リンクを指定した上で、リンク先の特定の項目を転記することができる機能です。いわゆる、Excelのvlookupとかと同じイメージです。

このルックアップ、オプションがいろいろありますが、少々理解が難しいこともあり、改めて、オプション指定で何が起こるのか、可能な限りわかりやすくまとめてみたいと思います。

注意

  • ルックアップを使うためには、リンク機能を知っておく必要がありますが、こちらについては理解している前提で整理しています。
  • 以下に示したサイトは、基本的に自動ポストバックを設定、選択の都度、値が転記されるような設定を前提としています。

基本

参照するマスタサイト

image.png
「分類A(ClassA)」を転記します。分類A(ClassA)は単純にテキストを入力しています。
image.png

ルックアップで転記する側

転記先イメージ
image.png

分類I(ClassI)にルックアップを指定、分類J(ClassJ)にルックアップしてきた値を転記します。

分類I(ClassI)の設定("選択肢一覧の設定")
image.png

[
    {
        "SiteId": 315196,
        "Lookups": [
            {
                "From": "ClassA",
                "To": "ClassJ"
            }
        ]
    }
]

"SiteId"にルックアップ参照するサイトIDを指定します。
"Lookups"の"From"にルックアップ参照するサイトの転記したい項目(=ClassA)を指定、"To"に転記させたい項目(ClassJ)

ルックアップした結果

image.png
分類I(ClassI)に"マスタ2-1-1"を選択すると、同レコードの分類A(ClassA)の値"データ1"が、転記先の分類J(ClassJ)が転記されました。

Typeの指定

マニュアルには以下のように記載されています。
image.png

実際に試してみます。

参照するマスタサイト

image.png
基本の時と同じく、分類A(ClassA)を転記します。今回はこの分類A(ClassA)を以下のように設定します。
image.png
テーブルの管理
image.png
値と表示名を定義する形で設定します。

ルックアップで転記する側が"Type" : 0 のとき

転記先イメージ
image.png
こちらも同じように、分類A(ClassA)にルックアップを指定、分類B(ClassB)に転記します。

分類A(ClassA)の選択肢一覧の設定

[
    {
        "SiteId": 315180,
        "Lookups": [
            {
                "From": "ClassA",
                "To": "ClassB",
                "Type": 0
            }
        ]
    }
]

ルックアップした結果

image.png
表示名である"組織A"ではなく、値"1"が転記されました。

ルックアップで転記する側が"Type" : 1 のとき

ルックアップ参照するサイトは、"Type":0 のと同じです。

転記先イメージ
image.png

分類C(ClassC)を以下のように設定します。

[
    {
        "SiteId": 315180,
        "Lookups": [
            {
                "From": "ClassA",
                "To": "ClassD",
                "Type": 1
            }
        ]
    }
]

ルックアップした結果

image.png
今度は、表示名"組織A"が転記されました。

"Type" : 0 の応用

転記先の項目を、転記元と同じように選択肢を指定、値と表示名を定義する形で設定します。

転記先イメージ
image.png

転記先項目の分類H(ClassH)は以下のように設定
image.png
image.png
転記元と同じ選択肢一覧を設定します。

分類G(ClassG)の選択肢一覧の設定は以下のとおり

[
    {
        "SiteId": 315180,
        "Lookups": [
            {
                "From": "ClassA",
                "To": "ClassH",
                "Type": 0
            }
        ]
    }
]

"Type": 0 を指定します。

ルックアップした結果

image.png
選択肢項目として、"組織A"が転記されました。

Overwrite/OverwriteForm

OverwriteとOverwriteFormは、転記先の項目に値が入力済だった場合、どのような動きになるか、を制御します。

まずはマニュアル
image.png
ちょっと難しい。

Overwriteの指定

trueの場合 

基本で使用したサイトで確認します。未設定のため、規定値Trueの動作になります。

パターン1

実施前 → まだ、値は保存されていない状態
image.png
ここで、分類J(ClassJ)に任意の値を入力します。
image.png
そこから、分類I(ClassI)を変更します。
image.png
分類J(ClassJ)は変更されません。

パターン2

実施前 → 画面を開いた時点で、値が表示される。すでに値は保存済の状態。ここから、分類I(ClassI)を変更します。
image.png
ここから、分類I(ClassI)を変更します。
image.png
値が転記されました。

falseの場合

以下のように設定を変更します。

[
    {
        "SiteId": 315196,
        "Lookups": [
            {
                "From": "ClassA",
                "To": "ClassJ",
                "Type": 0,
                "Overwrite": false
            }
        ]
    }
]
パターン1

実施前 → まだ、値は保存されていない状態
image.png
ここで、分類J(ClassJ)に任意の値を入力します。
image.png
そこから、分類I(ClassI)を変更します。
image.png
分類J(ClassJ)は変更されません。trueのパターン1と変わりません。

パターン2

実施前 → 画面を開いた時点で、値が表示される。すでに値は保存済の状態。ここから、分類I(ClassI)を変更します。
image.png
ここから、分類I(ClassI)を変更します。
image.png
今度は値が転記されませんでした。

"OverwriteForm"の指定

falseの場合

既定値のため、"Overwrite"の"true"のパターンで示したものと挙動は同じ。

trueの場合

以下のように設定を変更します。

[
    {
        "SiteId": 315196,
        "Lookups": [
            {
                "From": "ClassA",
                "To": "ClassJ",
                "Type": 0,
                "OverwriteForm": true
            }
        ]
    }
]
パターン1

実施前 → まだ、値は保存されていない状態
image.png
ここで、分類J(ClassJ)に任意の値を入力します。
image.png
そこから、分類I(ClassI)を変更します。
image.png
今度は値が転記されました。

パターン2

実施前 → 画面を開いた時点で、値が表示される。すでに値は保存済の状態。ここから、分類I(ClassI)を変更します。
image.png
ここから、分類I(ClassI)を変更します。
image.png
値が転記されました。こちらは変わりません。

整理してみる。

少々ややこしいので整理してみました。

No Overwrite OverwriteForm DB保存済の状態で、選択肢を変更した場合 値を画面から入力後、選択肢を変更した場合
1 TRUE FALSE 上書きする 上書きしない
2 FALSE FALSE 上書きしない 上書きしない
3 TRUE TRUE 上書きする 上書きする
4 FALSE TRUE 上書きしない 上書きする

ひとことでまとめると・・

  • Overwriteは、DB保存済の値を上書きするか否かを制御する
  • OverwriteFormは、画面入力値を上書きするか否かを制御する

終わりに

選択肢一覧に設定できるオプションとしては、「選択肢一覧を他の項目の値で絞り込む」というのがありますが、こちらはさらに難しくなるため、また別の機会に整理したいと思います。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4