Sie befinden sich hier:
Anpassen einer Visualforce-Komponente zum Steuern des Flow-Verhaltens bei der Fertigstellung
Wenn Benutzer auf Fertigstellen klicken, wird standardmäßig ein neues Interview gestartet und der erste Bildschirm des Flows wird angezeigt. Nachdem Sie einen Flow in eine Visualforce-Seite eingebettet haben, konfigurieren Sie das Attribut finishLocation, um Benutzer zu einer anderen Seite in Salesforce umzuleiten.
Festlegen von finishLocation mit der Funktion "URLFOR"
- Sie können Flow-Benutzer nicht zu einem URL umleiten, der sich außerhalb Ihrer Salesforce-Organisation befindet.
- Rufen Sie die
Auth.SessionManagement.finishLoginFlow-Methode und das AttributfinishLocationnicht im selben Flow auf.Auth.SessionManagement.finishLoginFlowgibt das Ende eines Visualforce Page Login Flows an. Wenn sichfinishLocationim selben Flow befindet, wirdbeim Starten des Flows ausgeführt, wodurch Benutzer uneingeschränkten Zugriff auf die Sitzung erhalten.finishLocation
Um Benutzer zu einem relativen URL, einem bestimmten Datensatz oder einer Detailseite mit der entsprechenden ID umzuleiten, verwenden Sie die Funktion URLFOR.
Das folgende Beispiel leitet Benutzer zur Salesforce-Startseite um.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/home/home.jsp')}"/>
</apex:page>Das folgende Beispiel leitet Benutzer zu einer Detailseite mit der ID 001D000000IpE9X um.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!URLFOR('/001D000000IpE9X')}"/>
</apex:page>Weitere Informationen zu URLFOR finden Sie im Visualforce Developer's Guide unter "Functions".
Festlegen von finishLocation mit der Variable "$Page"
Um Benutzer zu einer anderen Visualforce-Seite umzuleiten, ohne URLFOR zu verwenden, legen Sie für finishLocation den Namen der Zielseite mit dem Format {!$Page.pageName} fest.
<apex:page>
<flow:interview name="MyUniqueFlow" finishLocation="{!$Page.MyUniquePage}"/>
</apex:page>Weitere Informationen zu "$Page" finden Sie unter "Global Variables" im Visualforce Developer's Guide.
Festlegen von finishLocation mit einem Steuerfeld
Sie haben mehrere Möglichkeiten, um finishLocation mit einem benutzerdefinierten Steuerfeld festzulegen.
Dieses Beispielsteuerfeld konfiguriert drei verschiedene Verhaltensweisen für das Fertigstellen eines Flows.
public class myFlowController {
public PageReference getPageA() {
return new PageReference('/300');
}
public String getPageB() {
return '/300';
}
public String getPageC() {
return '/apex/my_finish_page';
}
}
getPageAinstanziiert einen neuen Seitenverweis, indem eine Zeichenfolge übergeben wird, um den Standort zu definieren.getPageBgibt eine Zeichenfolge zurück, die wie eine PageReference behandelt wird.getPageCgibt eine Zeichenfolge zurück, die in eine PageReference übersetzt wird.
Diese Visualforce-Beispielseite verweist auf dieses Steuerfeld und legt die erste Option als Verhalten bei Fertigstellung des Flows fest.
<apex:page controller="myFlowController">
<h1>Congratulations!</h1> This is your new page.
<flow:interview name="flowname" finishLocation="{!pageA}"/>
</apex:page>
Wenn Sie ein Standard-Steuerfeld auf der gleichen Seite wie den Flow verwenden, wird ein neues Flow-Interview gestartet, sobald ein Benutzer auf Fertigstellen klickt. Die Benutzer sehen den ersten Bildschirm des Flows ohne den Datensatz, da der Abfragezeichenfolgeparameter id nicht im Seiten-URL beibehalten wird. Konfigurieren Sie bei Bedarf finishLocation, um die Benutzer zurück zum Datensatz zu leiten.
