CM KanbanBoardは基本的には“columnField”に指定した選択リスト項目値を全てカラムとして表示します。
しかし、レコードタイプを使用している場合、レコードタイプ毎に選択リスト項目の値を分けているケースがあります。また、カンバンボードには特定のステータスは表示したくないというケースもあると思います(例えば、ロストした商談は表示しなくてよいといったケース)。
そういったケースに対応するため、CM KanbanBoardには“columnOptions”という属性があります。“columnOptions”を使用すると使用すると以下のようなケースに対応できます。
- レコードタイプで使用できるカラムだけを表示したい
- 表示するカラムの順番を変更したい
- 一部のカラムを表示したくない
なお、これはLightningアプリケーションビルダーからは設定できず、Lightning ApplicationおよびLightning Componentを作成してCM KanbanBoardを使用した場合のみ設定できます。
このドキュメントでは、レコードタイプ毎に選択リスト項目値が異なる値が使用できるように設定されているオブジェクトをCM KanbanBoardで表示し、“columnOptions”を使用して使用できる値のみをカラムに表示するよう設定する方法を説明します。
前提
ToDo(Task)オブジェクトの選択リスト項目である状況(Status)がレコードタイプごとに以下のように使用できる値を分けている設定になっているとします。
レコードタイプ | 状況 |
---|---|
通常 | – 未着手 – 進行中 – 完了 – 却下 – 保留 |
問い合わせ | – 未着手 – 一次回答作成中 – 本対応中 – エスカレーション – 完了 – 却下 – 保留 |
ゴール
カラムとして状況(Status)を使用して、ToDo(Task)オブジェクトをCM KanbanBoardで表示します。
以下のように「通常」フィルターを選ぶと「通常」レコードタイプで使用できる状況のみがカラムとして表示され、「問い合わせ」フィルターを選ぶと「問い合わせ」レコードタイプで使用できる状況のみがカラムとして表示されるようにCM KanbanBoardを設定します。
設定手順
Lightningアプリケーションで使用する(開発者向け、PC向き)を参考にして、Lightningアプリケーションを作成します。
作成したLightningアプリケーションに以下のコードを貼り付けます。
<aura:application > <cmkanban:kanbanBoardApp object="Task" columnField="Status" cardTitleField="Subject" cardField1="What.Name" cardField2="ActivityDate" cardField3="Owner.Name" query1="通常 : RecordType.Name='通常'" query2="問い合わせ : RecordType.Name='問い合わせ'" columnOptions='[ { "labels": ["未着手","保留","進行中","完了","却下"], "queries": ["query1"] }, { "labels": ["未着手","保留","一次回答作成中","本対応中","エスカレーション","完了","却下"], "queries": ["query2"] } ]' /> </aura:application>
これでゴールに記載したようなアプリケーションができあがります。
設定の解説
“query1”のWHERE句の設定で、「RecordType.Name = ‘通常’」のように指定することで、「通常」レコードタイプのオブジェクトのみを取得しています。“query2”も同様です。
“columnOptions”は以下のように設定します。
columnOptions='[ { "labels": [表示したい選択リスト項目の値を配列で指定], "queries": [labelsで指定したカラムで表示したフィルタを配列で指定] }, { ... } ]
“labels”に記述した値の順番通りにカラムは表示されます。注意点としてはSalesforceの設定でレコードタイプの選択リスト項目値を変更してもこちらの設定は連動しないので、その際はこちらも合わせて変更する必要があります。
どの“queries”にも指定されなかったフィルターは選択リスト項目の全ての値がカラムとして表示されます(columnOptionsを指定しなかった時と同じ動作です)。