フローの finishLocation 属性の設定
finishLocation が指定されない場合、ユーザが [完了] をクリックすると、新しいインタビューが開始され、フローの最初の画面が表示されます。URLFOR 関数、$Page 変数、またはコントローラを使用して、最後の画面で [完了] をクリックするときに実行される内容を指定できます。
次のセクションでは、<flow:interview> コンポーネントの finishLocation 属性を設定する方法を示します。
URLFOR 関数を使用して finishLocation を設定する
ID を使用して、相対 URL、特定のレコードまたは詳細ページにユーザの経路を設定するには、URLFOR 関数を使用します。
この例では、Salesforce ホームページにユーザの経路を設定します。
1<apex:page>
2 <flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/home/home.jsp')}"/>
3</apex:page>この例では、ID が 001D000000IpE9X である詳細ページにユーザの経路を設定します。
1<apex:page>
2 <flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/001D000000IpE9X')}"/>
3</apex:page>URLFOR の詳細は、「関数」を参照してください。
$Page 変数を使用して finishLocation を設定する
URLFOR を使用しないで別の Visualforce ページにユーザの経路を設定するには、{!$Page.pageName} の形式で finishLocation を宛先ページの名前に設定します。
1<apex:page>
2 <flow:interview name="MyUniqueFlow" finishLocation="{!$Page.MyUniquePage}"/>
3</apex:page>$Page の詳細は、「グローバル変数」を参照してください。
コントローラを使用して finishLocation を設定する
カスタムコントローラを使用したいくつかの方法で finishLocation を設定できます。
このサンプルコントローラは、3 つの異なる方法でフローの完了動作を設定します。
1public class myFlowController {
2
3 public PageReference getPageA() {
4 return new PageReference('/300');
5 }
6
7 public String getPageB() {
8 return '/300';
9 }
10
11 public String getPageC() {
12 return '/apex/my_finish_page';
13 }
14}次は、コントローラを参照し、フローの完了動作を最初のオプションに設定する Visualforce ページの例です。
1<apex:page controller="myFlowController">
2 <h1>Congratulations!</h1> This is your new page.
3 <flow:interview name="flowname" finishLocation="{!pageA}"/>
4</apex:page>標準コントローラを使用して同じページにフローとしてレコードを表示する場合、ユーザが [完了] をクリックすると、新しいフローインタビューが開始され、レコードのないフローの最初の画面が表示されます。これは、id クエリ文字列パラメータが、ページ URL に保持されないためです。必要な場合は、ユーザをレコードに戻すように finishLocation を設定します。