[Salesforce]StandardControllerとStandardSetController使い分け

Salesforceでよく使われているStandardControllerとStandardSetController使い分けについて共有する。

1.カスタムボタンでの使い分け

表示ボタン :  StandardController

リストビューボタン :  StandardSetController

※表示ボタン : 詳細画面に配置して使用

※リストビューボタン : 関連リストのメニューに配置して使用

2.Visualforceとコントローラでの使い分け

StandardController の場合

・Visualforce page

<apex:page standardController="Account" extensions="myControllerExtension">
    {!greeting} <p/>
    <apex:form>
        <apex:inputField value="{!account.name}"/> <p/>
        <apex:commandButton value="Save" action="{!save}"/>
    </apex:form>
</apex:page>

・コントローラ

public class myControllerExtension {

    private final Account acct;
    
    // The extension constructor initializes the private member
    // variable acct by using the getRecord method from the standard
    // controller.
    public myControllerExtension(ApexPages.StandardController stdController) {
        this.acct = (Account)stdController.getRecord();
    }

    public String getGreeting() {
        return 'Hello ' + acct.name + ' (' + acct.id + ')';
    }
}

StandardSetController

・Visualforce Page

<apex:page controller="opportunityList2Con">
    <apex:pageBlock>
        <apex:pageBlockTable value="{!opportunities}" var="o">
            <apex:column value="{!o.Name}"/>
            <apex:column value="{!o.CloseDate}"/>
        </apex:pageBlockTable>
    </apex:pageBlock>
</apex:page>

・コントローラ

public class opportunityList2Con {
    // ApexPages.StandardSetController must be instantiated
    // for standard list controllers
    public ApexPages.StandardSetController setCon {
        get {
            if(setCon == null) {
                setCon = new ApexPages.StandardSetController(Database.getQueryLocator(
                    [SELECT Name, CloseDate FROM Opportunity]));
            }
            return setCon;
        }
        set;
    }

    // Initialize setCon and return a list of records
    public List<Opportunity> getOpportunities() {
        return (List<Opportunity>) setCon.getRecords();
    }
}

[Salesforce]ClassicのOnClick JavaScriptボタンのLightning Experience移行

SalesforceのClassicでOnClick JavaScriptボタンをLightning Experienceに移行する際にその方法の一つを共有します。

1.詳細ボタンの場合

Classic:

window.open(“/apex/Test_VF?id=”+ ids, “_blank”);

Lightning Experience:

window.location.href = '/apex/Test_VF?id={!ids}';

2.リストビューボタンの場合

Classic:

var ids = {!GETRECORDIDS($ObjectType.Test__c)};

if (ids.length === 0) {
    alert('None');
} else {
    var test_url = '{!URLFOR("/apex/Test_VF?id=")}' ;
    window.open(test_url + ids, 'Test');
} 

Lightning Experience:

<script type="text/javascript">
    var __sfdcSessionId = '{!GETSESSIONID()}';
</script>

<script src="../../soap/ajax/44.0/connection.js" type="text/javascript"></script>

<script src="../../soap/ajax/44.0/apex.js" type="text/javascript"></script>

<script type="text/javascript">
    var ids = "<apex:repeat value="{!selected}" var="obj">{!obj.Id},</apex:repeat>".slice(0,-1).split(',');
    if (ids[0] == "") { 
        alert('None');
        history.back();
    } else { 
        window.location.href = '/apex/Test_VF?id='+ids;
    }
</script>

[Salesforce]リストボタン

Salesforceのリストボタンについて共有する。

以下に例で説明する。

1.取引先レコード作成する。

取引先タブ > 新規ボタン 

取引先名 : testAccount

保存する。

2.取引先責任者レコード作成する。

取引先責任者タブ > 新規 

姓 : testCotact

取引先 : testAccount

保存する。

3.取引先責任者にリストボタン作成する。

設定 > カスタマイズ > 取引先責任者 > ボタン、リンク、およびアクション > 新規ボタンまたはリンク

表示ラベル : testListView

名前 : testListView

表示の種類 : リストボタン

動作 : JavaScriptを実行

内容のソース : OnClick JavaScript

内容:

var iframe_url = ‘{!URLFOR(“/apex/testVF?id=”)}’ ;
var id = “{!Contact.Id}”;
window.open(iframe_url + id, ‘testVF’);

保存する。

4.リストビュー配置する。

設定 > カスタマイズ > 取引先 > ページレイアウト > Account Layout > 編集 > 関連リスト > 取引先責任者 > 関連リストのプロパティ > ボタン > 手順3.で作成したリストビューを選択したボタンに移動 > OKボタン押下 > 保存ボタン押下

5.動作確認する。

手順1.で作成した取引先レコード詳細画面を表示する。

関連リスト > 取引先責任者 > 手順4.で配置したリストビューボタンを押下する。

testViewのVisualforceページが表示されることを確認する。

[Salesforce]承認プロセス

Salesforceは承認プロセスが標準機能として備えられています。

その承認プロセスについて共有します。

1.承認プロセスの対象

Salesforceの標準オブジェクト、またはカスタムオブジェクト

2.承認プロセスの構成

・申請条件

 条件を加えることで、レコードタイプ毎など分けて処理することができる。

・申請時のメールテンプレート

 メールテンプレートは標準メールテンプレートも備えられてあるが、カスタマイズして使用することができる。

 メールテンプレートは承認申請時に、例えば承認申請者に承認申請したことを知らせるメールなどで使われています。

 または承認ステップにて、承認者へ、またはそのほかのユーザに対してメールを送信することができる。

・承認ステップ

 承認するステップを意味しており、組織の該当オブジェクトに対して業務に応じて作成することができる。

・最終承認

 最終承認時に必要なアクションを追加することができる。

・承認取消

 承認を途中で取消ことができて、その時に必要なアクションを追加することができる。

・承認却下

 承認ステップにて承認却下した際に、必要なアクションを追加することができる。

・承認申請すると、該当レコードはロックされ、最終承認、承認取消、承認却下後にロックが解除される。

[Software]Salesforceログインプラグイン

Salesforceにログイン時に便利なプラグインを共有します。

以下のプラグインが使ったことがあるプラグインリストです。

1.Force.com LOGINS

https://chrome.google.com/webstore/detail/forcecom-logins/ldjbglicecgnpkpdhpbogkednmmbebec?hl=ja

2.Salesforce Logins by Synebo

https://chrome.google.com/webstore/detail/salesforce-logins-by-syne/mhpbcjokcjoldhjcapkcmfkkkgepapgm

[Technical terms]プラグイン

専門用語「プラグイン」について共有します。

英語名は、「 plug-in 」で、直訳では「差し込む」意味を持っている。

IT分野では、ソフトウェアに機能を追加する小さなプログラムのことを指す場合が多い。

多くのソフトウェアは外部のプログラムを追加することで機能を拡張でき、その追加するソフトウェアのことをプラグインと言います。

[Software]現在接続IPアドレス確認

無線LANでWifiを使っている環境で、現在接続IPアドレスを確認したいときに便利なSoftwareを一つ共有します。

例えば、確認くん

URLは以下です。

https://kakunin.net/kun/

上記のURLを表示すると、テーブルが表示されますが、
現在接続している場所(現IP)が現在接続しているIPとなります。

そのほかにも プロバイダー名 など確認できます。

[Salesforce]EclipseにForce.comのIDEインストール

Salesforce開発環境の代表的なものとして、Eclipseのインストールと、その上にForce.comのIDEをインストールについて共有する。

1.Eclipseインストール

Eclipseを利用するためにはJavaをインストールする必要があります。

例えば、

jre1.8.0_181

ダウンロードするURLは以下の公式サイトにて行う。

https://www.oracle.com/technetwork/java/javase/downloads/index.html

Javaインストール後にコマンドプロンプトにて以下のコマンドインストール済みJavaバージョンを確認できます。

java -version

例えば、

C:\xxx>java -version
java version “1.8.0_181”
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

次にEclipseをインストールする。

例えば、

https://www.eclipse.org/downloads/packages/release/neon/3

2.EclipseにForce.comのIDEをインストールする。

EclipseでForce.com開発するためにはEclipseにForce.comのIDEをインストールする必要があります。

Eclipse > Help > Install NewSoftware にて、

Work with: の入力欄に以下を入力する。

例えば、

http://media.developerforce.com/force-ide/eclipse42

Nameに以下を入力する。

例えば、

Force.com IDE

インストール対象はまずいかでよいです。

Force.com IDE

3.EclipseでForce.comプロジェクト作成する。

File > New > Force.com Projectにて以下の項目値を入力する。

Project Name

User Name

Password

Finishボタン押下することでEclipse上でForce.comのプロジェクトが作成されるようになります。