No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
Newer Version Available
Embedding Flows in Visualforce Pages
To customize a flow’s look and
feel or enhance its functionality you can embed it as a component
in a Visualforce page.
If your organization has flows enabled for sites and portals, you
can then deliver the flow to your Force.com site, Customer Portal, or partner portal users.
To add a flow to a Visualforce page, embed
it using the <flow:interview> component:
- Find the flow's unique name:
- Go to the flow list page. From Setup, click .
- Click the name of the flow you want to embed.
- Define a new Visualforce page or open one that you want to edit.
- Add the <flow:interview> component, somewhere between the <apex:page> tags.
- Set the name attribute
to the unique name of the flow. For example:
1<apex:page> 2<flow:interview name="MyUniqueFlowName"/> 3</apex:page> - Restrict which users can run the flow by setting the page security
for the Visualforce page that contains it.
If the Visualforce page containing the flow is delivered externally to site or portal users, any of those users with access to the Visualforce page can run the embedded flow.
If the Visualforce page containing the flow is delivered to users within your organization through a custom Web tab, link, or button, users must have access to the page. They must also have the “Run Flows” permission or have the Force.com Flow User field enabled on their user detail page.
- Specify what happens when a user clicks Finish in a flow screen by setting the flow finish behavior.
Setting Variable Values in a Flow
In this
example, we'll build a simple flow to allow customer support agents
to troubleshoot modem issues by creating a case. You can set the value of variables when starting a flow through the <apex:param> component. For our
example, to set the case number variable called vaCaseNumber with the initial value
01212212 when the flow loads, use the following markup:
1<apex:page>
2 <flow:interview name="ModemTroubleShooting">
3 <apex:param name="vaCaseNumber" value="01212212"/>
4 </flow:interview>
5</apex:page>You can also leverage standard Visualforce controllers to set variables. For example, if the Visualforce page is using the standardCase controller, you can enhance the page to pass in the data from the
standard controller:
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>Setting the finishLocation Attribute
Building on our modem troubleshooting example,
we'll also set the finishLocation attribute to redirect the user to the Salesforce home
page when they click on the Finish button at
the end of the flow:
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>For more examples of setting finishLocation, see Configuring the finishLocation Attribute in a Flow.