0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Apex】各種ホスト名の取得アクション

Last updated at Posted at 2024-11-03

本記事は、Salesforceの各種ホスト名を取得するフローから利用可能なアクションの作成方法をまとめます。

各種ホスト名の取得方法

Apexの標準クラスでSystem.DomainCreatorクラスがあり、このクラスの各種メソッドによって各種ホスト名を取得することが可能です。

Apexアクションの作成

フローから利用可能なアクションは下記のように作成することができます。

HostNameAction.cls
public class HostNameAction {
    public class Request {
        @InvocableVariable(label='Host Type' required=true)
        public String hostType;
        @InvocableVariable(label='Package Name' required=false)
        public String packageName;
    }
    public class Result {
        @InvocableVariable(label='Host Name')
        public String hostName;
    }
    @InvocableMethod(label='Get Host Name' description='Returns the hostname of the current org.' category='Utilities')
    public static List<Result> getHostNameAction( List<Request> requests ){
        List<Result> results = new List<Result>();
        for( Request request : requests ){
            Result result = new Result();
            result.hostName = getHostName( request.hostType , request.packageName );
            results.add( result );
        }
        return results;
    }
    private static String getHostName( String hostType , String packageName ){
        switch on hostType {
            when 'Content'                         { return DomainCreator.getContentHostname();                                  }
            when 'ExperienceCloudSitesBuilder'     { return DomainCreator.getExperienceCloudSitesBuilderHostname();              }
            when 'ExperienceCloudSites'            { return DomainCreator.getExperienceCloudSitesHostname();                     }
            when 'ExperienceCloudSitesLivePreview' { return DomainCreator.getExperienceCloudSitesLivePreviewHostname();          }
            when 'ExperienceCloudSitesPreview'     { return DomainCreator.getExperienceCloudSitesPreviewHostname();              }
            when 'LightningContainerComponent'     { return DomainCreator.getLightningContainerComponentHostname( packageName ); }
            when 'Lightning'                       { return DomainCreator.getLightningHostname();                                }
            when 'OrgMyDomain'                     { return DomainCreator.getOrgMyDomainHostname();                              }
            when 'SalesforceSites'                 { return DomainCreator.getSalesforceSitesHostname();                          }
            when 'Setup'                           { return DomainCreator.getSetupHostname();                                    }
            when 'Visualforce'                     { return DomainCreator.getVisualforceHostname( packageName );                 }
        }
        return null;
    }
}

基本的な仕様

取得したいホスト名の種類をhostTypeに設定することで、対応したDomainCreatorクラスのメソッドによってホスト名を取得します。
取得したいホスト名の種類によってはpackageNameが必要になります。

ホスト名の種類と引数の対応

設定された引数(hostType)の値と取得するホスト名の種類は下記のような対応関係になります。

引数の値(hostType 引数(packageName)の必要性 取得するホスト名
Content 不要 組織に保存されているコンテンツ (ファイルなど) のホスト名
ExperienceCloudSitesBuilder 不要 組織の Experience Cloud サイトのエクスペリエンスビルダーにアクセスするホスト名
ExperienceCloudSites 不要 組織の Experience Cloud サイトのシステム管理のホスト名
ExperienceCloudSitesLivePreview 不要 組織の Experience Cloud サイトのエクスペリエンスビルダーのライブプレビューにアクセスするホスト名
ExperienceCloudSitesPreview 不要 組織の Experience Cloud サイトのエクスペリエンスビルダーのプレビューにアクセスするホスト名
LightningContainerComponent 必要 packageNameに対応した組織の Lightning コンテナコンポーネントのホスト名
Lightning 不要 組織の Lightning ページのホスト名
OrgMyDomain 不要 組織の 私のドメイン のログインドメインのホスト名
SalesforceSites 不要 組織の Salesforce サイトのホスト名
Setup 不要 組織の設定ドメインのホスト名
Visualforce 必要 packageNameに対応した組織の Visualforce ページのホスト名
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?