2021/04/27

Salesforceのメンテナンスを省力化する「項目セット」の使い方やメソッドをご紹介

 
  

Salesforceの項目セットとは

Salesforceにおける項目セットとは、Salesforceの項目をグループ化する機能です。 管理者は、組織の項目セットの作成・編集及び、インストールされている項目セットを編集できます。項目セットに追加できるのは、APIで使用できる項目に限られます。 項目セットは、カスタム項目をサポートしている標準オブジェクト、Visualforceページの作成をサポートしている組織で使用できます。

Salesforceの項目セットでできること

項目セットの活用で、コードに手を入れずに、Visualforceページを変更できるようになります。 例えば、管理者がユーザーの氏名、役職、部署などの項目セットを作成し、Visualforceページに追加すれば、開発者はその項目を反復してレンダリングできるようになります。 さらに、そのページを管理パッケージに追加すると、項目セットの追加、削除、変更が、Visualforceページに表示される項目に反映されます。

Salesforceの項目セットの使い方(作成・編集)

Salesforceには、WYSIWYG(ウィジウィグ)エディターが用意されています。このツールによって、項目セットはドラッグ&ドロップやクリック操作だけで、画面上で表示される内容と同じに編集されます。 項目セットの新規作成と編集の手順を紹介します。

項目セットを新規作成する

はじめに、項目セットを新規に作成する方法を説明します。 ①項目セットの編集を開きます。[管理設定]、[項目セット]、[新規]の順にクリックします。 ②「項目セットラベル」を入力します。この内容がサブスクライバーに表示されます。 ③「項目セット名」に項目セットの名前を入力します。この名前は、Visualforceページで参照する際に使用されます。 ④「使用場所」に、項目セットを使用するVisualforceページ、使用目的などの簡単な説明を入力します。この説明によって、項目セットがどこでどのように使用されているかを把握しやすくなります。 ⑤「保存」をクリックして終了です。 続いて、項目セットに追加する項目を選択します。 ⑥追加したい項目を、オブジェクトパレットから「項目セットで使用可能」にドラッグ&ドロップします。ここで並べた通りの順番でVisualforceページにレンダリングされます。 ⑦必須にしたい項目があればダブルクリックします。 ⑧「保存」して終了です。

項目セットを編集する

前項の手順で作成した項目セットに、追加、削除、変更などの編集を行う方法を説明します。 ①編集する項目セットの編集画面を開く。 クイック検索ボックス、[インストール済みパッケージ]、[インストール済みパッケージ]の順にクリックし、編集したい項目セットを選択します。 ②変更したい項目をドラッグ&ドロップで編集します。「追加」は、追加したい項目をオブジェクトパレットから移動します。「削除」は、削除したい項目をオブジェクトパレットに戻します。「並び順の変更」は、リスト上で上下を移動します。 ③「保存」して終了です。

Visualforceページで項目セットを表示する方法

項目セットの項目を参照して、Visualforceページに表示できます。Visualforceは、Salesforceが提供する、カスタムユーザーインタフェイスを作成する、開発者向けのフレームワークです。 項目セットの直接参照には、Visualforceで、$ObjectTypeグローバル変数をキーワード“FieldSets” に組み合わせて使用しますAPIバージョン21.0以降に対応しています。Visualforce ページの1ページに最大50個の参照と、sObjectには、最大2,000個まで、項目セットを持たせることができます。

Visualforce で項目セットを使用する例

Visualforceでは、以下のような反復によって項目セットのデータを参照できます。項目セットの変更が、このVisualforce ページに反映されます。 オブジェクト:Aproject 項目セット:xxxxxx





Apex で項目セットを使用する例

ここでは、Schema オブジェクトを使用して、カスタムオブジェクトの項目セットに含まれる項目を取得する方法を説明します。Apexでは、項目セットとそこに含まれる項目を検出する、2つの Schema オブジェクトを提供しています。 Visualforceページで標準コントローラを使用すると、項目セットの項目は自動的に読み込まれます。但し、カスタムコントローラを使用する場合には、ページのSOQLクエリに必須項目を追加しなければなりません。 取得した項目のリストを、これらの項目の表示に使用できるようにするSOQLクエリを作成します。

サンプル:カスタムコントローラ BprojectDetailsクラス

Schema.FieldSet とSchema.FieldSetMember メソッドを使用して、カスタムコントローラを作成します。 カスタムオブジェクト:Bproject 項目セット:zzzzz
public class BprojectDetails {
     public Bproject__c merch { get; set; }
    public BprojectDetails() {
        this.merch = getBproject ();
    }
     public List getFields() {
        return SObjectType. Bproject__c.FieldSets.zzzzz.getFields();
    }
     private Bproject__c getBproject () {
        String query = 'SELECT ';
        for(Schema.FieldSetMember f : this.getFields()) {
            query += f.getFieldPath() + ', ';
        }
        query += 'Id, Name FROM Bproject__c LIMIT 1';
        return Database.query(query);
    }
}

サンプル: BprojectDetails クラスを使用したVisualforce ページ

前項のカスタムコントローラを使って、項目セットをVisualforceページに表示します。 カスタムコントローラ:BprojectDetails クラス pageBlock : abcdDetails pageBlockSection : abcd









required=“{!OR(f.required, f.dbrequired)}”/>




Salesforceの項目セットのメソッド

項目セットには、インスタンスメソッドが用意されています。 ・getDescription() 動作:項目セットの説明を返す。 シグネチャ:public String getDescription() 戻り値:String ・getFields(): 動作:Schema.FieldSetMember オブジェクトのリストを返す。 シグネチャ:public List getFields() 戻り値:List ・getLabel() 動作:Salesforceのユーザインターフェースのテキスト表示ラベルを返す。 シグネチャ:public String getLabel() 戻り値: String ・getName(): 動作:項目セットの名前を返す。 シグネチャ:public String getName() 戻り値: String ・getNamespace() 動作:項目セットの名前空間を返す。 シグネチャ:public String getNamespace() 戻り値: String ・getSObjectType() 動作:項目セットの定義に含まれる sObject の Schema.sObjectType を返す。 シグネチャ:public Schema.SObjectType getSObjectType() 戻り値: Schema.SObjectType

Salesforceのメンテナンスをマウスだけでできる項目セット

ここでは、Salesforceの項目セットについて紹介しました。 開発者側で、Visualforceページで項目セットを参照させると、項目セットを変更するだけで、Visualforceページに反映させることができます。例えば、Salesforceで作成したパートナーポータルの記載内容の一部を、開発者を通さず、管理者のドラッグ&ドロップ操作だけで変更できるということです。 メンテンナンスの利便性とレスポンスを向上する項目セットを理解し、活用してみましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】