Loading
Automatize seus processo de negócios com o Fluxo do Salesforce
Personalizar um componente do Visualforce para controlar o comportamento de conclusão do fluxo

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

Nota
Nota
  • 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.finishLoginFlow e o atributo finishLocation no mesmo fluxo. Auth.SessionManagement.finishLoginFlow indica o fim de um fluxo de login de página do Visualforce. Se finishLocation estiver no mesmo fluxo, o finishLocation será executado quando o fluxo começar, dando aos usuários acesso total à sessão.

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 getPageA instancia uma nova referência de página passando uma string para definir o local.
  • getPageB retorna uma string tratada como PageReference.
  • getPageC retorna 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.

 
Carregando
Salesforce Help | Article