Labyrinth of Wisdom

-This is My Archive-


リストビューに「レコードを複数選択して削除するボタン」を追加する

はじめに

Salesforceのリストビュー画面で、選択した複数のレコードを削除するボタンのサンプルを書きます。

標準だと一つづつレコードを消していくか全部消すしかないので、これがあると便利です。

オブジェクトの種類でアクセスする場所が違うので気を付けてください。

  • 標準オブジェクトの場合

設定 > カスタマイズ > 任意のオブジェクト(キャンペーン等) > ボタン、リンク、およびアクション > 新規ボタンまたはリンク

  • カスタムオブジェクトの場合

設定 > 作成 > オブジェクト > 任意のオブジェクト > ボタン、リンク、およびアクション > 新規ボタンまたはリンク

カスタムボタン作成

それぞれの種類に適した場所にアクセス後、下記の設定を行います。

表示の種類 => リストボタン

動作 => JavaScriptを実行

内容のソース => OnClick JavaScript

そしてテキストフィールドに下記のサンプルコードを記入してください。

3行目の対象オブジェクトは状況に応じて 変更してください。

{!REQUIRESCRIPT("/soap/ajax/9.0/connection.js")}

// 対象のオブジェクトを指定する
var records = {!GETRECORDIDS( $ObjectType.Hogehoge__c )};

if (records[0] == null) {
    alert("削除対象にチェックがついていません。");
} else if(confirm(records.length + "個のレコードを削除しますがよろしいですか?")){
        sforce.connection.deleteIds(records);// ここで削除
        location.reload();// 削除成功後に画面をリロード
} else {
        alert("キャンセルされました。");
}

リストビューに表示

これだけだとリストビューにボタンが表示されないので、ボタンが表示されるように設定します。

  • 標準オブジェクトの場合

設定 > カスタマイズ > 任意のオブジェクト(キャンペーン等) > 検索レイアウト > ***リストビュー

  • カスタムオブジェクトの場合

設定 > 作成 > オブジェクト > 任意のオブジェクト > 検索レイアウト > ***リストビュー

こんな感じでボタンが追加される。

f:id:Labyrinth_of_Wisdom:20160517180129p:plain

参考