dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]オブジェクトの「最近使ったXX」ビューに列を追加する

標準またはカスタムオブジェクトのタブを開いたときに最初に表示される、このリストビューについて。

f:id:dackdive:20160210161243p:plain

列のカスタマイズとかどこで設定できるのかなと思って調べてみたメモ。
UI からの設定だけでなく、Force.com Migration Tool でデプロイできるようメタデータも調べてます。

1. UI で設定する方法

以下、[オブジェクト名] は設定したい標準/カスタムオブジェクト名が入ります。

標準オブジェクトの場合
カスタマイズ > [オブジェクト名] > 検索レイアウト

を開き、「[オブジェクト名]タブ」を編集する。

カスタムオブジェクトの場合
作成 > オブジェクト

から対象のオブジェクトを選び、「検索レイアウト」項目にある 「[オブジェクト名]タブ」を編集する。

f:id:dackdive:20160211141801p:plain

(キャプチャは「取引先責任者」の場合)


2. Force.com Migration Tool で設定する方法

オブジェクト (.object) の searchLayouts という項目があるので、そこに customTabListAdditionalFields を追加する。

customTabListAdditionalFields についてはドキュメントに次のように書いてある。

https://developer.salesforce.com/docs/atlas.en-us.200.0.api_meta.meta/api_meta/meta_searchlayouts.htm

The list of fields displayed in the Recent Object Name list view on a tab associated with the object. The name field is mandatory and is always displayed as the first column header, so it is not included in this list; all additional fields are included. The field name relative to the object name, for example MyCustomField__c, is specified for each custom field.

たとえば「取引先責任者(Contact)」について、列の設定がこのようになっている場合、

f:id:dackdive:20160211141327p:plain

メタデータを retrieve すると、Contact.object は以下のようになっている。

<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
    ...

    <searchLayouts>
        <customTabListAdditionalFields>FULL_NAME</customTabListAdditionalFields>
        <customTabListAdditionalFields>ACCOUNT.NAME</customTabListAdditionalFields>
        <customTabListAdditionalFields>CONTACT.PHONE1</customTabListAdditionalFields>
        <customTabListAdditionalFields>CONTACT.LAST_UPDATE</customTabListAdditionalFields>
        <customTabListAdditionalFields>UPDATEDBY_USER.ALIAS</customTabListAdditionalFields>
        ... <!-- customTabListAdditionalFields 以外の項目 -->
    </searchLayouts>

    ...

</CustomObject>

最終更新日などの一部項目は API 参照名と一致しない ことに注意。
ただ、今のところこの項目名が載っているドキュメントがわからず、一旦 UI 上で編集 → メタデータを retrieve してみて確認する、という方法を取っている。