Skip to main content

複数のフィールドで管理している情報を一つにまとめる

  • March 25, 2026
  • 0 replies
  • 3 views

Hideta Mitsuhashi
Forum|alt.badge.img+1

以下のように複数のブーリアン(True/False)フィールドで管理している情報があったとします。

 

 

 

 

 

今これを、以下のように一つのフィールドに変換したいです。

 

 

 

 

 

 

皆さんならどのように変換しますか。

 

一度きりの変換で、今後は新しいフィールドしか使わない「移行」であれば、

レポートでエクスポートして、エクセルでフィルタなど駆使して新しい項目を埋め、

CSVでS3経由でアップデートする、というのも一つの手かと思います。

10-20個程度のレコードであれば、編集可能なレポートを作り、そこで入力するのもありですね。

 

ある程度の件数があり、元のフィールドは残しつつ、定期的に新しいフィールドも更新したい、という場合は

ルールエンジンの活用がおすすめです。

ルールエンジンでも、いくつかやり方が考えられますが、Case関数を使うのが簡単ですので

この記事ではCase関数を使った方法を解説します。

 

  1. フィールドの用意

フィールドがない場合はカスタムフィールドを新しく作成します。

 

  1. ルールエンジンの設定

ルールエンジンで対象のオブジェクトを開き、上記の複数のフィールドを含めておきます。

Transformにて、Case Fieldを追加します。

Caseの編集画面では、新しいフィールドに結果として出力したい値ごとにCaseおよびCase Filterを登録します。

例えばChampionであれば、Case FilterとしてはChampionフィールドがTrueであるという条件になります。

 

このCaseを新しいフィールドの値の数だけ作り、ルールエンジンのLoadアクションでフィールドにロードすれば完成です。

 

  1. Caseの順番

ここで、Caseフィールドの中に作成するCase(枝)の順番が大事になります。

Caseフィールドはルールエンジンの実行時に以下のように処理されます。

・最初にCase1のロジックを評価する

・条件が合致した場合は定義された値を返し、Case 2以降のロジックは評価しない

・Case1の条件が合致しない場合、Case2、Case3へ、と順番に評価する。

・同様に合致した場合はそれ以降のロジックは評価しない。

・どれも合致しない場合は、デフォルトで設定した値を返す。

 

つまり、Caseを作る順番が結果に影響する場合があります。

例えば、前述の例だと、ChampionおよびAdminのどちらもTrueになっている場合、

Caseの上の順番で設定されているもののみが値として入ります。


Caseの順番もよく考慮の上設定しましょう。​​