Newer Version Available
Interview クラス
名前空間
使用方法
フローの実行時に SOQL および DML 制限が適用されます。Salesforce ヘルプの「トランザクション単位のフロー制限」を参照してください。
- 次を使用してクラスで直接オブジェクトを作成する。
- 名前空間なし: Flow.Interview.flowName
- 名前空間: Flow.Interview.namespace.flowName
- createInterview() を使用して動的にオブジェクトを作成する。
例: フローインタビューの開始
- インタビューが Flow.Interview.myFlow で静的に作成されたか、createInterview() で動的に作成されたか。
- フローが管理またはローカルのどちらであるか。
- ローカルフロー用に静的に作成されたインタビュー
-
1{ 2 Map<String, Object> inputs = new Map<String, Object>(); 3 inputs.put('AccountID', myAccount); 4 inputs.put('OpportunityID', myOppty); 5 6 Flow.Interview.Calculate_discounts myFlow = 7 new Flow.Interview.Calculate_discounts(inputs); 8 myFlow.start(); 9} - ローカルフロー用に動的に作成されたインタビュー
-
1public void callFlow(String flowName, Map <String, Object> inputs) { 2 Flow.Interview myFlow = Flow.Interview.createInterview(flowName, inputs); 3 myFlow.start(); 4} - 管理フロー用に静的に作成されたインタビュー
-
1{ 2 Map<String, Object> inputs = new Map<String, Object>(); 3 inputs.put('AccountID', myAccount); 4 inputs.put('OpportunityID', myOppty); 5 6 Flow.Interview.myNamespace.Calculate_discounts myFlow = 7 new Flow.Interview.myNamespace.Calculate_discounts(inputs); 8 myFlow.start(); 9} - 管理フロー用に動的に作成されたインタビュー
-
1public void callFlow(String namespace, String flowName, Map <String, Object> inputs) { 2 Flow.Interview myFlow = Flow.Interview.createInterview(namespace, flowName, inputs); 3 myFlow.start(); 4}
例: 変数値の取得
1public class SampleController {
2
3 //Instance of the flow
4 public Flow.Interview.Flow_Template_Gallery myFlow {get; set;}
5
6 public String getBreadCrumb() {
7 String aBreadCrumb;
8 if (myFlow==null) { return 'Home';}
9 else aBreadCrumb = (String) myFlow.getVariableValue('vaBreadCrumb');
10
11 return(aBreadCrumb==null ? 'Home': aBreadCrumb);
12
13 }
14}Interview のメソッド
Interview のインスタンスメソッドを次に示します。
createInterview(namespace, flowName, inputVariables)
署名
public static Flow.Interview createInterview(String namespace, String flowName, Map<String,ANY> inputVariables)
パラメータ
戻り値
型: Flow.Interview
使用方法
このメソッドを使用して、start() メソッドの Flow.Interview オブジェクトを動的に作成します。
- 変数が特定のフローにキャストされる場合、myFlow.myVar を使用して変数にアクセスできます。ここで、myVar は変数の名前です。
1system.debug('My Output Variable: ' + myFlow.varName); - 変数が Flow.Interview 型で特定のフローにキャストされない場合、getVariableValue() を使用してフローの変数にアクセスする必要があります。
1system.debug('My Output Variable: ' + myFlow.getVariableValue('varName'));
現在の組織にフローが存在しない場合、TypeException が発生します。
createInterview(flowName, inputVariables)
署名
public static Flow.Interview createInterview(String flowName, Map<String,Object> inputVariables)
パラメータ
- flowName
- 型: String
- フローの API 参照名。
- inputVariables
- 型: Map<String,Object>
- フロー入力変数の初期値。
戻り値
型: Flow.Interview
使用方法
このメソッドを使用して、start() メソッドの Flow.Interview オブジェクトを動的に作成します。
- 変数が特定のフローにキャストされる場合、myFlow.myVar を使用して変数にアクセスできます。ここで、myVar は変数の名前です。
1system.debug('My Output Variable: ' + myFlow.varName); - 変数が Flow.Interview 型で特定のフローにキャストされない場合、getVariableValue() を使用してフローの変数にアクセスする必要があります。
1system.debug('My Output Variable: ' + myFlow.getVariableValue('varName'));
現在の組織にフローが存在しない場合、TypeException が発生します。
getVariableValue(variableName)
署名
public Object getVariableValue(String variableName)
パラメータ
- variableName
- 型: String
- フロー変数の一意の名前を指定します。
戻り値
型: Object
使用方法
変数値は、インタビューが実行されているいずれかのフローから返されます。指定された変数がフロー内に見つからない場合、メソッドは null を返します。
このメソッドは、コンパイル時ではなく実行時にのみ変数の存在を確認します。
start()
署名
public Void start()
戻り値
型: Void
使用方法
- 自動起動フロー
- ユーザプロビジョニングフロー
フローユーザが自動起動フローを呼び出すと、有効なフローバージョンが実行されます。有効なバージョンがない場合は、最新バージョンが実行されます。フロー管理者がフローを呼び出すと、常に最新のバージョンが実行されます。