[Salesforce]サインインエラー: 「ログイン数超過」

サインインエラー: 「ログイン数超過」

・ログイン数とは、一定の期間内に 1 人のユーザが Salesforce へのログインを試みた回数です。

・ログイン数を制限することにより、Salesforce ではユーザあたりのログイン試行回数を制限してサービスのパフォーマンス低下を回避し、Salesforce へのログイン時のセキュリティを強化することができます。

ログイン数の超過エラーの原因は?

ユーザあたり 3,600 回/時を超えるログイン要求はブロックされ、組織のログイン履歴に LOGIN_RATE_EXCEEDED エラーが記録されます。

ログイン数の超過エラーをトラブルシューティングする方法 (例を参照)

組織 API インテグレーションのユーザログイン履歴を監視および確認して、ユーザあたり 3,600 回/時を超える Salesforce へのログインコールを何度も生成しているユーザを特定することをお勧めします。

1 時間待ってから再度ログインを試みる。
問題が解消されない場合は、カスタムインテグレーションまたはサードパーティアプリケーションが原因と考えられる。
インテグレーションユーザのユーザ名やパスワードが間違っている。

[Salesforce]取引開始済みのリードを表示するレポートを作成する方法

取引開始済みのリードを表示するレポートを作成する方法

Salesforce Classic:

  1. [レポート] タブをクリックします。
  2. [新規レポート] をクリックします。
  3. [リード] フォルダの隣にある + の記号をクリックします。
  4. [取引開始済みのリード情報が関連するリード] レポートタイプを選択します。
  5. [作成] をクリックします。
  6. 必要に応じて、追加する項目を [プレビュー] セクションにドラッグします。
  7. [追加] のメニューをクリックします。
  8. [項目の絞り込み] を選択します。
  9. 「取引開始済み 次の文字列と一致する True」の条件を入力します。
  10. [レポートを実行] をクリックします。

Lightning Experience:

  1. [レポート] タブをクリックします。
  2. [新規レポート] をクリックします。
  3. [リード] をクリックします。
  4. [取引開始済みのリード情報が関連するリード] レポートタイプを選択します。
  5. [続行] をクリックします
  6. 必要に応じて、[アウトライン] タブから項目を追加します。
  7. [検索条件] タブに切替えます。
  8. [検索条件] を選択します。
  9. 「取引開始済み 次の文字列と一致する True」の条件を入力します。
  10. [レポートを実行] をクリックします。
  11. [保存] をクリックします。

[Salesforce]選択リストの値とAPI参照名取得

選択リストの値とAPI参照名取得例を紹介します。

    	// 取引先選択リスト項目取得
    	Map<String, String> mapArealist = new Map<String, String>();
        Schema.DescribeFieldResult field = Account.Area__c.getDescribe();
        for (Schema.PicklistEntry f : field.getPicklistValues()) {
            System.debug(f.getLabel()+'-'+f.getValue());
            mapArealist.put(f.getLabel(), f.getValue());
        }

[Salesforce]Apex時間遅延関数

     

  wait(10000);//Wait

    //Wait
    public static void wait(Integer millisec) {

        if(millisec == null || millisec < 0) {
            millisec = 0;
        }
        
        Long startTime = DateTime.now().getTime();
        Long finishTime = DateTime.now().getTime();
        while ((finishTime - startTime) < millisec) {
            //sleep for parameter x millisecs
            finishTime = DateTime.now().getTime();
        }
        // System.debug(‘>>> Done from ‘ + startTime + ‘ to ‘ + finishTime);
    }

[Salesforce]Get Object API reference name and Prefix from object label

    String searchObjLabelName = '取引先企業';
	String targetObjectName = '';

    Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
    for (String sKey : gd.keySet()) {
        Schema.DescribeSObjectResult targetObject = gd.get(sKey).getDescribe();
        if(targetObject.getLabel() == searchObjLabelName){
            targetObjectName = targetObject.getName();
			System.debug('targetObject.getLabel()----->targetObject.getName()::::::'+targetObject.getLabel()+'----->'+targetObject.getName());
        }
    }

    String objName = targetObjectName;	
    schema.sObjectType sObjType = Schema.getGlobalDescribe().get(objName);
    system.debug('prefix:'+(sObjType.getDescribe().getKeyPrefix()));

[Salesforce]オブジェクト表示ラベルからオブジェクトAPI参照名とPrefix取得

    String searchObjLabelName = '取引先企業';
	String targetObjectName = '';

    Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
    for (String sKey : gd.keySet()) {
        Schema.DescribeSObjectResult targetObject = gd.get(sKey).getDescribe();
        if(targetObject.getLabel() == searchObjLabelName){
            targetObjectName = targetObject.getName();
			System.debug('targetObject.getLabel()----->targetObject.getName()::::::'+targetObject.getLabel()+'----->'+targetObject.getName());
        }
    }

    String objName = targetObjectName;	
    schema.sObjectType sObjType = Schema.getGlobalDescribe().get(objName);
    system.debug('prefix:'+(sObjType.getDescribe().getKeyPrefix()));