カスタム Lightning Web コンポーネントの作成と起動

画面フローを作成して、任意の Lightning Web コンポーネントから起動します。

lightning-flow は Lightning ランタイムでのフローインタビューを表します。コンポーネントでフローを作成するには、lightning-flow コンポーネントの flow-api-name 属性に、使用するフローの API 名を設定します。このコンポーネントを使用するには、その前に、Salesforce Flow Builder でフローを作成します。このコンポーネントには、戻る、次へ、一時停止、完了のナビゲーションボタンが含まれています。

フローに、カスタムの Lightning Web コンポーネントまたは Aura コンポーネントがある場合、Lightning Web Runtime を使用する Experience Cloud サイトで lightning-flow を使用することができません。

Note

例 

この例では、Survey Customers フローを作成して開始します。

1<!-- myComponent.html -->
2<template>
3  <lightning-flow flow-api-name="Survey_customers"> </lightning-flow>
4</template>

flow-input-variables 属性に配列の入力値を設定することで、インタビューのための初期入力を指定できます。

この例では、フローの初期値を渡すことで、インタビューを作成し、開始します。onstatuschange イベントハンドラを使用して、インタビューの変更を処理します。

1<!-- myComponent.html -->
2<template>
3  <lightning-flow
4    flow-api-name={flowName}
5    flow-input-variables={inputVariables}
6    onstatuschange={handleStatusChange}>
7  </lightning-flow>
8</template>
1// myComponent.js
2import { LightningElement } from "lwc";
3
4export default class MyComponent extends LightningElement {
5  opportunityId;
6  accountId;
7  customerLocation;
8
9  get flowName() {
10    if (this.customerLocation === "USA") {
11      flowname = "Survey_USA";
12    } else {
13      flowname = "Survey_General";
14    }
15  }
16
17  get inputVariables() {
18    return [
19      {
20        // Match with the input variable name declared in the flow.
21        name: "OpportunityID",
22        type: "String",
23        // Initial value to send to the flow input.
24        value: this.opportunityId,
25      },
26      {
27        // Match with the input variable name declared in the flow.
28        name: "AccountID",
29        type: "String",
30        // Initial value to send to the flow input.
31        value: this.accountId,
32      },
33    ];
34  }
35
36  handleStatusChange(event) {
37    if (event.detail.status === "FINISHED") {
38      // set behavior after a finished flow interview.
39    }
40  }
41}

使用上の考慮事項 

lightning-flow コンポーネントは、flow-api-name 属性の有効なフローのみをサポートします。

onstatuschange イベントは次のパラメータを返します。

フローに、カスタムの Lightning Web コンポーネントまたは Aura コンポーネントがある場合、Lightning Web Runtime を使用する Experience Cloud サイトで lightning-flow を使用することができません。

パラメータ説明
activeStagesObject[]フローの $Flow.ActiveStages 変数の現在の値。API バージョン 42.0 以降で利用できます。
currentStageObjectフローの $Flow.CurrentStage 変数の現在の値。API バージョン 42.0 以降で利用できます。
flowTitleStringフローの表示ラベル。
helpTextString現在の画面のヘルプテキスト。API バージョン 42.0 以降で利用できます。
guidStringインタビューの GUID。API バージョン 42.0 以降で利用できます。
outputVariablesObject[]フローの出力変数の現在の値。
statusStringインタビューの状況。フローインタビューの有効な状況は、次のとおりです。
  • STARTED: インタビューは正常に開始しました。
  • PAUSED: インタビューは正常に一時停止しました。
  • FINISHED: 画面を伴うフローのインタビューが完了しました。
  • FINISHED_SCREEN: 画面を伴わないフローのインタビューが完了し、コンポーネントは「フローが終了しました」というメッセージのデフォルト画面を表示しています。
  • ERROR: 問題が発生して、インタビューに失敗しました。

フローの完了動作のカスタマイズ 

各フローコンポーネントには、戻る、次へ、一時停止、完了のナビゲーションボタンが含まれており、フロー内を移動できます。デフォルトでは、フローが完了すると、コンポーネントは新しいインタビューの最初の画面を再読み込みします。フローが完了したときの動作をカスタマイズするには、状況が FINISHED の場合の onstatuschange アクションのイベントハンドラを追加します。

The Japanese Summer '24 guide is now live

日本語の Summer '24 ガイドが公開されました! 「Component Reference (コンポーネントリファレンス)」は、以前と同様にコンポーネントライブラリにあります。