見出し画像

SalesforceフローからApexを呼び出して別ページへリダイレクトさせたい

はじめに

はじめまして、CREFILでエンジニアをしている藤野です。

今回はフローから別ページにリダイレクトする方法をご紹介します。
フローでごちゃごちゃ処理をしてから、別ページにリダイレクトさせたい…
LWCを使わずにできるだけ標準機能でリダイレクトさせたい…
なんて方はご参考になると思います。

この記事の内容は、現在動作しなくなっております
以下の記事で別の方法をご紹介しておりますので、この記事と同じ動きを実現したい方はご確認ください。

【Salesforce】Apexを使って画面フローからリダイレクトができないので、別の方法を試してみた

対象読者

  • Salesforceエンジニア

  • フローを使ってリダイレクト処理を実行させたい方

「Apexの基本構文」、「フローの作成方法」の解説は割愛させていただきます。

実装手順

それでは、実装していきます。
今回はCREFILホームページにリダイレクトするフローを例に解説します。

1. Apexアクションの準備

まずはApexアクションを作成します。
@InvocableMethodアノテーションを使用した関数を作成しましょう。

public with sharing class Redirect {

    /**
     * フローからCrefilホームページにリダイレクトする
     */
    @InvocableMethod(label='フローからCrefilホームページにリダイレクト' description='フローからCrefilホームページにリダイレクトする')
    public static void RedirectToCrefil() {
    
       
    }

}


2. リダイレクト処理を実装する

次にリダイレクト処理を実装します。

リダイレクト実行関数
リダイレクトにはSystem.aura.redirectを使用します。
System.aura.redirectは@AuraEnabledアノテーションを使用した関数内で実行する必要があるため、Apexアクション用とは別の関数を作成する必要があります。

    /**
     * SVF Cloudにリダイレクトする
     * System.auraでリダイレクトを実行する。
     * System.auraはアノテーション「AuraEnabled」をつけた関数内で実行する必要がある。
     */
    @AuraEnabled
    public static void redirectToPageReference(string url){
        // auraでリダイレクトを実行する。
        PageReference pageRef = new PageReference(url);
        System.aura.redirect(pageRef);
    }

コード全体
Apexアクション用の関数の中で、リダイレクト実行関数を呼び出せば完成です。

public class Redirect {
    
    /**
     * フローからCrefilホームページにリダイレクトする
     */
    @InvocableMethod(label='フローからCrefilホームページにリダイレクト' description='フローからCrefilホームページにリダイレクトする')
    public static void RedirectToCrefil() {
        // リダイレクト実行
        redirectToPageReference('https://crefil.com/');
    }

    /**
     * リダイレクトを実行する。
     */
    @AuraEnabled
    public static void redirectToPageReference(string url){
        // auraでリダイレクトを実行する。
        PageReference pageRef = new PageReference(url);
        System.aura.redirect(pageRef);
    }
}


3. フローを作成する

Apexの実装が完了したら、フローを作成していきます。
作成するフローは下記の順で実行されます。

  1. フロー画面を表示

  2. フロー画面で「はい」をクリック

  3. CREFILホームページにリダイレクト

フロー全体図

動作確認

一通り実装したので、動作確認を行います。

フロー画面を表示して、「はい」をクリックすると…

フロー画面


CREFILホームページにリダイレクトしました!

リダイレクト後


ApexアクションにAura関数を組み合わせることでリダイレクトを実現させました。フローからリダイレクトさせたい方はぜひご参考ください。

参考