Memos About Salesforce

Salesforceにハマってたこと!

Salesforce VF サンプル リダイレクト

こんにちは、管理人の@Salesforce.Zです。

Salesforceは、URLとそのパラメータを指定するだけで、様々な画面を表示できます。

代表的な画面のURLとそのパラメータをメモします。

目次

VFのリダイレクト

代表的な画面のURL

  • ベースURL

以降のURLでは、ベースURLは省略して表記します。

例)/home/home.jsphttps://na7.salesforce.com/home/home.jsp

SalesforceのURLは基本下記になります。

↓↓↓

https://<インスタンス名>.salesforce.com

# 画面 URL
1 ホーム /home/home.jsp
2 すべてのタブ画面 /home/showAllTabs.jsp
3 高度な検索画面 /search/AdvancedSearch
4 設定画面 /ui/setup/Setup
5 システムログ画面 /_ui/common/apex/debug/ApexCSIPage
6 ヘルプ画面 /help/doc/user_ed.jsp
7 タブ画面 /<オブジェクトPrefix>/o (URLFOR($Action.<オブジェクト名>.Tab) でURL作成可)
8 新規画面 /<オブジェクトPrefix>/e (URLFOR($Action.<オブジェクト名>.New) でURL作成可)
9 詳細画面 /<レコードID> (URLFOR($Action.<オブジェクト名>.View, <レコードID>) でURL作成可)
10 編集画面 /<レコードID>/e (URLFOR($Action.<オブジェクト名>.Edit, <レコードID>) でURL作成可)
11 Visualforceページ /apex/<Visualforceページ名>
12 ファイルダウンロード画面 https://c.インスタンス名>.content.force.com/servlet/servlet.FileDownload?file=<ファイルID>

標準オブジェクトPrefix

# オブジェクト名 オブジェクトPrefix
1 レポート 00O(ゼロゼロオー)
2 取引先 001
3 取引先責任者 003
4 ユーザ 005
5 商談 006
6 ドキュメント 015
7 ケース 500
8 ソリューション 501
9 契約 800
10 リード 00Q
11 ダッシュボード 01Z

オブジェクトのPrefixをもっと見たい場合別の記事標準オブジェクトのAPI参照名一覧に細かく記載しています

VFのダイレクトサンプル

<apex:page id="pgid" docType="html-5.0">
<head>
    <title>Blog</title>
    <!-- CSS -->
    <style type="text/css">
    </style>
    <!--JavaScript-->
    <script type="text/javascript">
    </script>
</head>
<body>
    <apex:form id="formid">
        <apex:pageBlock title="ダイレクトボタン群">
            <apex:pageblockSection >
                <apex:commandButton value="HOME" action="{!URLFOR('/home/home.jsp')}" />
                <apex:commandButton value="ダイレクトしたいページへ" action="{!URLFOR($Page.PageName)}" />
                <apex:commandButton value="パラメータでダイレクトしたいページへ" action="{!URLFOR($Page.PageName)}?prm=xxx" />
                <!-- For this example to render fully, associate the page
                with a valid contact record in the URL.
                For example: https://Salesforce_instance/apex/myPage?id=001D000000IRt53 -->   
                <apex:page standardController="Contact">
                    <apex:outputLink value="http://google.com/search">
                        <!--Search Google-->
                        <apex:param name="q" value="{!contact.name}"/>
                    </apex:outputLink>
                </apex:page>
            </apex:pageblockSection>
        </apex:pageBlock>
    </apex:form>
</body>
</apex:page>

最後に

パラメータでダイレクトする場合、シンプルの場合もある、複雑の場合もある

例えば、複数のパラメータが必要な時に、その構成はVF側で実装するかAPEX側で実装するか

どっちも可能だが、必要に応じて、やりましょう。

パラメータを結合する時に少し工夫ですね。頑張りましょう。あきらめずに試行錯誤しようね^^