この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

一時停止中のフローインタビューをユーザが再開する方法のカスタマイズ

デフォルトでは、ユーザはホームページの [一時停止中のインタビュー] コンポーネントから一時停止中のインタビューを再開できます。ユーザがインタビューを再開できる方法と場所をカスタマイズするには、<flow:interview> コンポーネントの pausedInterviewId 属性を使用します。
次の例は、ページレイアウトのボタンから、インタビューを再開したり新しいインタビューを開始したりする方法を示しています。ユーザが取引先責任者レコードから [調査顧客] をクリックすると、ユーザに「調査顧客」フローで一時停止中のインタビューがあるかどうかに応じて、Visualforce ページで次の 2 つのいずれかが実行されます。
  • ユーザに一時停止中のインタビューがある場合、最初のインタビューが再開される。
  • ユーザに一時停止中のインタビューがない場合、新しいインタビューが開始される。

Visualforce および Apex コントローラの作成

Visualforce ページは取引先責任者固有のボタンで参照されるため、その標準コントローラを使用する必要があります。Apex でコントローラ拡張を使用して、ページにロジックを追加します。このロジックで、再開するインタビューの ID がページに渡されます。

1<apex:page
2   standardController="Contact" extensions="MyControllerExtension_SurveyCustomers">
3   <flow:interview name="Survey_Customers" pausedInterviewId="{!pausedId}"/>
4</apex:page>

この Apex コントローラ��張は、SOQL クエリを実行して一時停止中のインタビューのリストを取得します。クエリから何も返されない場合、getPausedId() は null 値を返し、Visualforce ページで新しいインタビューが開始されます。クエリから 1 つ以上のインタビューが返されると、Visualforce ページでそのリスト内の最初のインタビューが再開されます。

1public class MyControllerExtension_SurveyCustomers {
2    
3    // Empty constructor, to allow use as a controller extension
4    public MyControllerExtension_SurveyCustomers(
5        ApexPages.StandardController stdController) { }
6    
7    // Flow support methods
8    public String getInterviews() { return null; }
9    
10    public String showList { get; set; }
11    
12    public String getPausedId() {
13        String currentUser = UserInfo.getUserId();
14        List<FlowInterview> interviews = 
15            [SELECT Id FROM FlowInterview WHERE CreatedById = :currentUser AND InterviewLabel LIKE '%Survey Customers%'];
16
17        if (interviews == null || interviews.isEmpty()) {
18            return null; // early out
19        }
20        
21        // Return the ID for the first interview in the list
22        return interviews.get(0).Id;
23    }
24}

ページレイアウトからの Visualforce ページの参照

この Visualforce ページを実際にユーザに公開するには、取引先責任者ページレイアウトからページを使用できるようにします。

ページレイアウトに直接 Visualforce ページを埋め込むと、ユーザが取引先責任者にアクセスするたびに、意図しているかどうかに関わらず自動的に最初の一時停止中のインタビューが再開されます。ユーザが必要に応じてインタビューの開始または再開を選択できる方が望ましいため、カスタムボタンを使用しましょう。

ヒント

まず、Visualforce ページにリンクする取引先責任者オブジェクトのカスタムボタンを作成します。次の項目値を使用してボタンを作成します。
項目
ラベル 調査顧客
表示の種類 詳細ページボタン
内容のソース Visualforce ページ
内容 YourVisualforcePage

最後に、取引先責任者ページレイアウトにボタンを追加します。