Visualforce ページへのフローの埋め込み
フローのデザインをカスタマイズするか、機能を強化するには、フローを Visualforce ページに埋め込みます。組織のサイトとポータルでフローが有効になっている場合、Visualforce ページを使用してフローを Salesforce サイト、ポータル、またはコミュニティに提供できます。
フローを Visualforce ページに追加するには、次のように <flow:interview> コンポーネントを使用してフローを埋め込みます。
- フローの API 参照名を検索します。
- [設定] から、[クイック検索] ボックスに「フロー」と入力し、[フロー] を選択します。
- 埋め込むフローの名前をクリックします。
- 新しい Visualforce ページを定義するか、編集するページを開きます。
- <apex:page> タグ間の任意の場所に <flow:interview> コンポーネントを追加します。
-
name 属性をフローの一意の名前に設定します。次に例を示します。
1<apex:page> 2<flow:interview name="flowAPIName"/> 3</apex:page> - フローを含む Visualforce ページのページセキュリティを設定することで、フローを実行できるユーザを制限します。 外部ユーザ (コミュニティの外部ユーザなど) がフローを実行するには、Visualforce ページへのアクセス権が必要です。内部ユーザがフローを実行するには、Visualforce ページへのアクセス権と次のいずれかが必要です。
- 「フローを実行」権限
- ユーザ詳細ページの [Flow ユーザ] 項目が有効になっている
フローの変数値の設定
この例では、カスタマーサポートエージェントがケースを作成してモデムの問題をトラブルシューティングできるようにする、単純なフローを作成します。<apex:param> コンポーネントを使用してフローを開始するときに変数の値を設定できます。この例では、フローの読み込み時に vaCaseNumber というケース番号変数を初期値の 01212212 に設定するために、次のマークアップを使用します。
1<apex:page>
2 <flow:interview name="ModemTroubleShooting">
3 <apex:param name="vaCaseNumber" value="01212212"/>
4 </flow:interview>
5</apex:page>標準の Visualforce コントローラを使用して、変数を設定することもできます。たとえば、Visualforce ページが standardCase コントローラを使用している場合、標準コントローラからデータを渡すようにページの機能を強化できます。
1<apex:page standardController="Case" tabStyle="Case" >
2 <flow:interview name="ModemTroubleShooting">
3 <apex:param name="vaCaseNumber" value="{!Case.CaseNumber}"/>
4 </flow:interview>
5</apex:page>変数値のその他の設定例については、「Visualforce ページからのフロー変数値の設定」を参照してください。Visualforce ページで表示するフローの変数値の取得については、「Visualforce ページへのフロー変数値の取得」を参照してください。
finishLocation 属性の設定
モデムのトラブルシューティングの例に基づいて、ユーザがフローの終わりにある [完了] ボタンをクリックしたときに Salesforce ホームページにリダイレクトされるように、finishLocation 属性を設定することもできます。
1<apex:page standardController="Case" tabStyle="Case" >
2 <flow:interview name="ModemTroubleShooting" finishLocation="{!URLFOR('/home/home.jsp')}">
3 <apex:param name="vaCaseNumber" value="{!case.CaseNumber}"/>
4 </flow:interview>
5</apex:page>finishLocation のその他の設定例については、「フローの finishLocation 属性の設定」を参照してください。