Você está aqui:
Personalizar um componente do Visualforce para controlar o comportamento de conclusão do fluxo
Por padrão, os usuários que clicam em Concluir iniciam uma nova entrevista e veem a primeira tela do fluxo. Depois de integrar um fluxo a uma página do Visualforce, configure o atributo finishLocation para encaminhar usuários para outra página no Salesforce.
Definir finishLocation com a função URLFOR
- Você não pode redirecionar usuários de fluxo para um URL que seja externo à sua organização do Salesforce.
- Não chame o método
Auth.SessionManagement.finishLoginFlowe o atributofinishLocationno mesmo fluxo.Auth.SessionManagement.finishLoginFlowindica o fim de um fluxo de login de página do Visualforce. SefinishLocationestiver no mesmo fluxo, oserá executado quando o fluxo começar, dando aos usuários acesso total à sessão.finishLocation
Para encaminhar usuários para um URL relativo, um registro específico ou uma página de detalhes, usando seu ID, use a função URLFOR.
Este exemplo roteia os usuários para a página inicial do Salesforce.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/home/home.jsp')}"/>
</apex:page>Esse exemplo roteia usuários para uma página de detalhes com um ID igual a 001D000000IpE9X.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/001D000000IpE9X')}"/>
</apex:page>Para obter detalhes sobre URLFOR, consulte Funções no Guia do desenvolvedor do Visualforce.
Definir finishLocation com a variável $Page
Para encaminhar usuários para outra página do Visualforce sem usar URLFOR, defina finishLocation como o nome da página de destino com o formato {!$Page.pageName}.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!$Page.MyUniquePage}"/>
</apex:page>Para obter detalhes sobre $Page, consulte Variáveis globais no Guia do desenvolvedor do Visualforce.
Definir finishLocation com um controlador
Você pode definir finishLocation de algumas formas com um controlador personalizado.
Esse controlador de amostra configura o comportamento de conclusão de um fluxo de três maneiras diferentes.
public class myFlowController {
public PageReference getPageA() {
return new PageReference('/300');
}
public String getPageB() {
return '/300';
}
public String getPageC() {
return '/apex/my_finish_page';
}
}
- O
getPageAinstancia uma nova referência de página passando uma string para definir o local. getPageBretorna uma string tratada como PageReference.getPageCretorna uma string que é traduzida em PageReference.
Aqui está uma amostra da página do Visualforce que faz referência ao controlador e define o comportamento de conclusão do fluxo para a primeira opção.
<apex:page controller="myFlowController">
<h1>Congratulations!</h1> This is your new page.
<flow:interview name="flowname" finishLocation="{!pageA}"/>
</apex:page>
Se você usar um controlador padrão para exibir um registro na mesma página que o fluxo, os usuários que clicam em Concluir iniciam uma nova entrevista de fluxo. Eles veem a primeira tela do fluxo sem o registro, pois o parâmetro da string de consulta id não é preservado no URL da página. Se necessário, configure finishLocation para retornar os usuários ao registro.
