[Salesforce]SOQL文のHAVINGの使い方

SOQL文のHAVING

HAVINGではGROUP BYでグルーピングした結果に対して、絞込みの条件を入れることが出来ます。

絞込み条件という意味ではWHEREと似ていますが、WHEREではグルーピングする前、HAVINGはグルーピングした後です。

次のサンプルは商談のリードソースでグルーピングし、同じ値のレコード数が1以上のリードソース別金額を表示します。

AggregateResult[] results = [SELECT LeadSource, SUM(Amount) summary 
                               FROM Opportunity 
                               GROUP BY LeadSource 
                               HAVING Count(LeadSource) > 1];
for(AggregateResult ar: results){
  System.debug('LeadSource='+ ar.get('LeadSource') 
                   + ':Amount='+ ar.get('summary'));
}

デバッグの結果

LeadSource=LeadSource1:Amount=2
LeadSource=LeadSource2:Amount=3

[Salesforce]CANNOT_EXECUTE_FLOW_TRIGGER

CANNOT_EXECUTE_FLOW_TRIGGER

テストクラス実行時、エラー詳細

System.DmlException: Insert failed. First exception on row 0; first error: 
CANNOT_EXECUTE_FLOW_TRIGGER, 
「Campaign Create、Member Status Auto Set」処理失敗により、このレコードを保存できません。
Salesforce システム管理者に次の詳細を報告してください。
Salesforce には、削除条件に一致するレコードがありません。
Salesforce には、削除条件に一致するレコードがありません。: []

対応案の一つは以下です。

@isTest(SeeAllData=true)
※場合によって効く。

[Salesforce]Lightningのアクション押下してVisualforceページ表示

[Salesforce]Lightningのアクション押下してVisualforceページ表示

SalesforceLightningのオブジェクトの詳細画面で、アクション押下して、Visualforceページを表示することを共有します。

1.カスタムボタンを配置するレコード作成

例えば、取引先のレコードを作成する。

2.アクション用Visualforceページ作成

ホームページ画面で、開発者コンソールリンクを押下する。

開発者コンソールリンクを押下すると、以下のコンソル画面が表示される。

Visualforceページ作成

File→New→Visualforce Page順で選択する。

Visualforceページ名入力欄にページ名を入力して、OKボタン押下する。

ページ名は、例えば「testActionPage」とする。

以下のコードを挿入する。

<apex:page standardController="Account">
 <script>
 window.open('/apex/testPage');
 </script>
 </apex:page>

3.アクション作成する。

SalesforceLightningの以下の設定ボタン押下する。

オブジェクトマネージャリンク押下する。

取引先リンク押下する。

ボタン、リンク、およびアクションリンク押下する。

新規アクションボタン押下する。

新規アクション入力画面で、入力する。

入力値は、例えば以下の設定する。

アクション種別 : カスタム Visualforce

Visualforceページ : testActionpage

高さ : 250ピクセル

表示ラベル : testActionPage

名前 : testActionPage

4.アクション配置する。

ページレイアウトにアクションを配置する。

該当ページレイアウトリンク押下する。

配置するアクション指定する。

アクション配置する。

5.アクション確認する。

アプリケーションランチャリンク押下する。

取引先先リンク押下する。

該当レコード押下する。

実行するアクション選択する。

動作確認する。

[Salesforce]JavaScriptカスタムボタン押下してVisualforceページ表示

Salesforceのオブジェクトの詳細画面で、カスタムボタン押下して、JavaCriptカスタムボタン押下してVisualforceページを表示することを共有します。

1.カスタムボタンを配置するレコード作成

例えば、取引先のレコードを作成する。

2.JavaScriptカスタムボタン作成

詳細画面の「項目を参照する」リンク押下する。

ボタン、リンク、およびアクションリンク押下する。

新規ボタンまたはリンクボタン押下する。

JavaScriptカスタムボタンを作成する。

上記の各入力欄に、例えば以下を入力する。

表示ラベル :testJavascriptButton

名前 : testJavascriptButton

表示の種類 : 詳細ページボタン

動作 : JavaScriptを実行

内容のソース : OnClick JavaScript

コード :

window.open('/apex/testPage');

3.カスタムボタン配置

作成したカスタムボタンを詳細画面に配置する。

詳細画面の「レイアウトを編集する」リンク押下する。

ページレイアウトの「ボタン」リンク押下する。

配置するボタン選択する。

配置するボタン選択する。

ボタンを配置して、保存する。

保存すると、詳細画面に戻り、カスタムボタンが配置されていることが確認できる。

4.カスタムボタン押下してVisualforceページ表示確認

[Salesforce]Visualforceページ作成


CRMプラットホームとして世界シェアNo.1として誇るSalesforce、そのSalesforceのVisualforceページ作成方法を共有します。

1.Salesforce環境へログイン

例えば、デベロッパーEditionの場合だと以下のようなログイン画面となる。

https://login.salesforce.com/

IDとPW入力し、ログインボタン押下する。

IDとPW入力し、ログインボタン押下する。

2.ホームページ画面

ログインすると、以下のホームページ画面が表示される。

3.開発者コンソール画面表示

ホームページ画面で、開発者コンソールリンクを押下する。

開発者コンソールリンクを押下すると、以下のコンソル画面が表示される。

4.Visualforceページ作成

File→New→Visualforce Page順で選択する。

Visualforceページ名入力欄にページ名を入力して、OKボタン押下する。

ページ名は、例えば「testPage」とする。

Visualforceページのコード入力画面で、簡単コード2-4行目を追加して保存する。

5.Visualforceページ表示

URLの後半部に、「インスタンス/apex/testPage」を入力する。

ここで、「testPage」はページ名です。

画面上にはVisualfoceページのコードの内容が表示されることが確認できます。