LoginSignup
18
11

More than 3 years have passed since last update.

リストビューで選択したレコードに対して Apex を実行する方法

Posted at

今回は Salesforce オブジェクトのリストビューで複数選択したレコードに対して、 Visualforce ページを呼び出し Apex で処理する方法をご紹介します。

動作イメージ

  1. 商談のリストビューで、レコードを複数選択
  2. リストボタンで VF ページを開き、選択されている商談レコードを確認
  3. 選択された商談レコードに対して Apex 処理を実行し、前の画面に戻る

ezgif-3-b2cfd7098a56.gif

設定方法

1. Visualforce ページと Apex を作成

CustomOpportunitySetController.apxc
public with sharing class CustomOpportunitySetController {
    public List<Opportunity> selectedOpportunities {get;set;}

    // コンストラクター
    public CustomOpportunitySetController(ApexPages.StandardSetController controller) {
        List<Opportunity> opportunities = controller.getSelected();
        this.selectedOpportunities = [SELECT Id, Name FROM Opportunity WHERE Id IN :(new Map<Id, Opportunity>(opportunities)).keySet()];
    }
    public void execute() {
        // this.selectedOpportunities に対し必要なの処理をする
    }
}
VisualforcePageForOpportunityListButton.vfp
<apex:page standardController="Opportunity" recordSetvar="opportunities" extensions="CustomOpportunitySetController">
    <apex:form>
        <apex:pageBlock title="現在選択されている商談" >
            <apex:pageBlockButtons location="bottom">
                <apex:commandButton action="{!execute}" value="処理を実行" oncomplete="history.back();" />
            </apex:pageBlockButtons>
            <apex:pageBlockTable value="{!selectedOpportunities}" var="opportunity">
                <apex:column value="{!opportunity.Name}"/>
            </apex:pageBlockTable>
        </apex:pageBlock>
    </apex:form>
</apex:page>

2. リストボタンの作成と表示

設定 > オブジェクトマネージャー > 商談 > ボタン、リンク、およびアクション > 新規ボタンまたはリンク から、以下の要領で作成

設定 > オブジェクトマネージャー > 商談 > Salesforce Classic の検索レイアウト > リストビューのドロップダウンメニューから編集 から、以下の要領で作成

18
11
1

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
18
11