今回、フローのデータテーブルで選択したレコードの請求書を出力するフローの作成手順をご紹介します。帳票の出力は、Office File Creatorの「OfcForFlowScreen」コンポーネントをフローで使用します。
完成フロー
フロー処理概要
作成するフローの全体像です。
1. 商談取得
商談レコードを取得します。
2. 商談一覧画面
データテーブルで商談レコードの一覧画面を表示します。
3. 選択行有無判定
レコードの選択有無を判定します。
3e. エラー画面(レコード選択無し)
レコードが選択されていないメッセージを表示する終了画面を表示し、フローを終了します。
4. 選択行ループ
選択行のループを開始します。
5. Ids割り当て
idsコレクション変数に選択された行のIdを追加します。
6. OFC実行画面
OfcForFlowScreenコンポーネントより帳票を出力します。
7. 完了画面
完了メッセージを表示します。
フロー作成
設定>フローより、「新規フロー」ボタンをクリックします。
「最初から開始」を選択し、「次へ」ボタンをクリックします。
「画面フロー」を選択し、「作成」ボタンをクリックします。
変数作成
画面左上の「ツールボックスを切替」ボタンをクリックし、「新規リソース」ボタンをクリックします。
idsコレクション変数を作成します。設定後、「完了」ボタンをクリックします。
リソース種別: 変数
API参照名: ids
データ型: テキスト
複数の値を許可 (コレクション): チェックオン
最初にフローを一度保存しておきます。「保存」ボタンをクリックします。
任意の名前で保存します。ここでは以下で保存しています。
フローの表示ラベル: 商談請求書一括出力画面フロー
フローのAPI参照名: OpportunityInvoiceBulkOutputScreenFlow
1. 商談取得
画面フローの下の「+」マークをクリックします。
「レコードを取得」を選択します。
プロパティを設定します。
表示ラベル: 商談取得
API参照名: GetOpportunity
オブジェクト: 商談
条件の要件: すべての条件に一致 (AND)
項目: IsThisMonthBill__c 演算子: 次の文字列と一致する 値: {!$GlobalConstant.True}
並び替え順: 並び替えなし
保存するレコード数: すべてのレコード
レコードデータの保存方法: すべての項目を自動的に保存
2. 商談一覧画面
「商談取得」の下の「+」マークをクリックし、「画面」を選択します。
プロパティを設定します。
表示ラベル: 商談一覧画面
API参照名: RecordListScreen
ヘッダーを表示: チェックオフ
左のコンポーネント内の「データテーブル」をクリックし、プロパティを設定します。
API参照名: DtOpportunity
表示ラベル: 商談データテーブル
ソースコレクション: {!GetOpportunity}
行選択モード: 複数
列オプションより、ソース項目に表示する項目を選択し、「完了」ボタンをクリックします。
「列を追加」ボタンをクリックし、表示する項目を追加します。列の追加が完了後、画面の「完了」ボタンをクリックします。
3. 選択行有無判定
商談一覧画面の下の「+」マークをクリックし、「決定」を選択します。
プロパティを設定します。
表示ラベル: 選択行有無判定
API参照名: IsRowSelected
-----------------------------------------------------
表示ラベル: 無し
結果のAPI参照名: IsRowSelected_No
結果を実行する条件の要件: すべての条件に一致 (AND)
リソース: {!DtOpportunity.selectedRows} 演算子: 空 値: {!$GlobalConstant.True}
左サイドバーの「デフォルトの結果」をクリックします。
プロパティを設定します。
表示ラベル: 有り
3e. エラー画面(レコード選択無し)
「無し」の下の「+」マークをクリックし、「画面」を選択します。
プロパティを設定します。
表示ラベル: エラー画面(レコード選択無し)
API参照名: ErrorScreen_NoRecord
左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: DispNoRecordMsg
テキスト:
レコードが選択されていません。
1件以上のレコードを選択後、実行してください。
エラー画面(レコード選択無し)の下の「+」マークをクリックし、「終了」を選択します。
フローが2つに分岐されます。
4. 選択行ループ
「有り」の下の「+」マークをクリックし、「ループ」を選択します。
プロパティを設定します。
表示ラベル: 選択行ループ
API参照名: LoopSelectedRow
コレクション変数: {!DtOpportunity.selectedRows}
5. Ids割り当て
項目ごとの下の「+」マークをクリックし、「割り当て」を選択します。
割り当てのプロパティを設定します。
表示ラベル: Ids割り当て
API参照名: AsgIds
変数: {!ids} 演算子: 追加 値: {!LoopSelectedRow.Id}
6. OFC実行
「最後の項目の後」の下の「+」マークをクリックし、「画面」を選択します。
プロパティを設定します。
表示ラベル: OFC実行画面
API参照名: OFCScreen
左のコンポーネントより、「ofcForFlowScreen」をクリックし、プロパティを設定します。設定後、「完了」ボタンをクリックします。
API参照名: OFC
auto execute (option for Standard/Pro): {!$GlobalConstant.True}
recordId List: {!ids}
save: 空欄 ※ファイルに保存する場合は、fileまたはattを入力します。
template: OpportunityInvoice ※OFC_TemplateレコードのテンプレートAPI名を入力します。
※OFC Freeの場合、「auto execute (option for Standard/Pro)」オプションは使用できません。実行時に「次へ」ボタンをクリックする必要があります。
7. 完了画面
OFC実行画面の下の「+」マークをクリックし、「画面」を選択します。
プロパティを設定します。
表示ラベル: 完了画面
API参照名: EndScreen
左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: DispCompletionMsg
テキスト: 完了しました。
再度、左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: DispErrorMsg
テキスト:
エラーが発生しました。
{!OFC.errorMessages}
※文字色は、カラーパレットより赤に設定します。
※OFC.errorMessageではなくOFC.errorMessagesを選択してください。
「コンポーネントの表示を設定」をクリックし、条件を設定します。
コンポーネントを表示するタイミング: すべての条件に一致
リソース: {!OFC.errorMessages} 演算子: null 値: {!$GlobalConstant.False}
これでフローは完成です。
「保存」ボタンをクリックします。
フローをデバッグ
「デバッグ」ボタンをクリックします。
「実行」ボタンをクリックします。
何も選択せず、「次へ」ボタンをクリックします。
エラーメッセージが表示されます。
「もう一度実行」ボタンをクリックします。
レコードを選択し、「次へ」ボタンをクリックします。
順次、ファイルが出力されます。
完了メッセージが表示されます。デバッグ画面を閉じ、フロー編集画面へ戻ります。
「有効化」ボタンをクリックします。
フローが有効化されます。
タブ作成
設定>Lightning アプリケーションビルダーを選択し、「新規」ボタンをクリックします。
「アプリケーションページ」を選択し、「次へ」ボタンをクリックします。
表示ラベルを入力し、「次へ」ボタンをクリックします。
表示ラベル: 商談請求書出力
「1つの範囲」を選択し、「完了」ボタンをクリックします。
プロパティを設定します。
表示ラベル: 商談請求書出力
API参照名: OpportunityOutputInvoice
コンポーネントより、「フロー」をドラッグ&ドロップします。
プロパティを設定し、「保存」ボタンをクリックします。
フロー: 商談請求書一括出力画面フロー ※作成したフローを選択します。
「有効化」ボタンをクリックします。
「ページの設定」タブ内を各種設定します。
名前: 商談請求書出力 ※タブ名として表示されます。
ページの有効化: すべてのユーザーを対象に有効化
アイコン: 稲妻
「LIGHTNING EXPERIENCE」タブより、タブを追加したいアプリケーションを選択し、「アプリケーションにページを追加」ボタンをクリックします。
タブが追加されるので、任意の位置にドラッグ&ドロップで移動します。「保存」ボタンをクリックします。
作成したタブを選択します。レコード一覧が表示されるので、レコードを選択し、「次へ」ボタンをクリックします。
順次、ファイルが出力されます。
完了画面が表示されます。「完了」ボタンをクリックします。
レコード一覧に戻ります。