今回、リストビューから選択したレコードの帳票作成+商談更新をフローで一括実行する手順をご紹介します。Office File Creatorは、画面フローに組み込むことが可能です。
※本手順はOffice File Creator Ver.2用です。Ver.1をご利用の場合は、Salesforceのリストビューからフローで帳票作成+商談更新を一括実行する(OFC Ver.1用) – Office File Creator応用編 –を参照してください。
完成イメージ
リストビューよりレコードを選択後、「帳票一括作成」ボタンをクリックでフロー実行画面が表示され、フローを実行すると帳票作成と商談更新が一括で実行されます。
デモ
フロー作成のポイント
- リストビューから選択したレコードIdをフローで受け取るパラメータは、「ids」です。フローでテキスト型の変数「ids」、コレクション変数をチェックオンで作成します。他の変数名はリストビューからレコードIdを受け取ることができません。
- Office File Creatorでの帳票出力は、ofcForFlowScreenコンポーネントを画面フローに配置します。ofcFowFlowScreenコンポーネントの処理終了後、成功Idリスト、エラーIdリスト、エラーメッセージなどの結果を返します。
- ofcForFlowScreenコンポーネントのパラメータ、戻り値の詳細は、設定マニュアルを参照してください。
フロー処理概要
作成するフローの全体像です。
1. レコード選択有無判定
リストビューから選択されたレコードの有無を判定します。レコード有りの場合、2の処理へ進みます。無しの場合、1eの処理へ進みます。
1e. エラー画面(レコード選択無し)
レコードが選択されていないメッセージを表示する終了画面を表示し、フローを終了します。
2. 合計件数セット
リストビューから選択されたレコード数の合計件数を変数にセットします。
3. トップ画面
実行確認メッセージを表示し、「次へ」ボタンをクリックでOfcForFlowScreenコンポーネントより帳票を出力します。
4. 請求書出力日更新
OFCの結果が成功のレコードに対して、商談の請求書出力日に今日の日付で更新します。
5. 完了画面
完了メッセージを表示します。帳票出力でエラーがあった場合、エラーメッセージも表示します。
フロー作成
それでは、フローを作成していきましょう。設定よりフローを開き、「新規フロー」ボタンをクリックします。
「画面フロー」を選択し、「作成」ボタンをクリックします。
変数作成
まず、フローで使用する変数を作ります。作成する変数の一覧です。
変数名 | 説明 |
ids | リストビューで選択されたレコードIdリスト |
varTotalIdsCount | 合計レコード件数 |
画面左上の「ツールボックスを切替」ボタンをクリックし、「新規リソース」ボタンをクリックします。
idsコレクション変数
レコードIdの変数を作成します。設定後、「完了」ボタンをクリックします。
リソース種別: 変数
API参照名: ids
説明: リストビューで選択されたレコードIdリスト
データ型: テキスト
複数の値を許可 (コレクション): チェックオン
入力で使用可能: チェックオン
※idsはリストビューからのレコードIdを受け取る変数です。"ids"(すべて小文字)で設定してください。他の変数名はリストビューからのレコードIdを受け取ることができません。
varTotalIdsCount変数
合計レコード件数の変数を作成します。設定後、「完了」ボタンをクリックします。
リソース種別: 変数
API参照名: varTotalIdsCount
説明: 合計レコード件数
データ型: 数値
小数点の位置: 0
最初にフローを一度保存しておきます。「保存」ボタンをクリックします。
任意の名前で保存します。ここでは以下で保存しています。
フローの表示ラベル: 帳票一括出力画面フロー
フローのAPI参照名: OFC_MassOutputInvoiceScreenFlow
説明: 商談のリストビューから帳票出力
1. レコード選択有無判定
「画面フロー」の下の「+」マークをクリックします。
「決定」を選択します。
プロパティを設定します。
表示ラベル: レコード選択有無判定
API参照名: DecSelectedRecordExists
[結果の詳細] セクション
表示ラベル: 無し
結果のAPI参照名: decSelectedRecordExists_No
結果を実行する条件の要件: すべての条件に一致 (AND)
リソース: {!ids}
演算子: null
値: {!$GlobalConstant.True}
※変数{!ids}をリソースより選択します。以降も同様に、{!XXX}の形式の設定は、リソースから選択します。
左サイドバーの「デフォルトの結果」をクリックします。
プロパティを設定後、「完了」ボタンをクリックします。
[結果の詳細] セクション
表示ラベル: 有り
1e. エラー画面(レコード選択無し)
「無し」の下の「+」マークをクリックし、「画面」を選択します。
プロパティを設定します。
表示ラベル: エラー画面(レコード選択無し)
API参照名: ErrorScreen_NoRecord
左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: dispNoRecordMsg
テキスト:
レコードが選択されていません。
1件以上のレコードを選択後、実行してください。
エラー画面(レコード選択無し)の下の「+」マークをクリックし、「終了」を選択します。
フローが2つに分岐されます。
2. 合計件数セット
「有り」の下の「+」マークをクリックし、「割り当て」を選択します。
プロパティを設定します。
表示ラベル: 合計件数セット
API参照名: SetTotalIdsCount
変数: {!varTotalIdsCount}
演算子: 次の数と一致する
値: {!ids}
3. トップ画面
「合計件数セット」の下の「+」マークをクリックし、「画面」を選択します。
画面のプロパティを設定します。
表示ラベル: トップ画面
API参照名: TopScreen
フッターを表示: チェックオフ
左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: dispConfirmMsg
テキスト:
{!varTotalIdsCount} 件の帳票を作成します。
よろしいですか?
左のコンポーネントより、「ofcForFlowScreen」をクリックし、プロパティを設定します。設定後、「完了」ボタンをクリックします。
API参照名: OFC
recordId List: {!ids}
save: 空欄 ※ファイルに保存する場合は、fileまたはattを入力します。
template: OpportunityInvoice ※OFC_TemplateレコードのテンプレートApi名を入力します。
4. 請求書出力日更新
トップ画面の下の「+」マークをクリックし、「レコードを更新」を選択します。
各種プロパティを設定します。
表示ラベル: 請求書出力日更新
API参照名: UpdateBillOutputDate
更新するレコードを検索してその値を設定する方法: 「レコードを識別する条件を指定し、項目を個別に設定」にチェックオン
[このオブジェクト種別のレコードを更新] セクション
オブジェクト: 商談
[商談レコードを絞り込み] セクション
レコードを更新する条件の要件: すべての条件に一致 (AND)
項目: Id
演算子: 次に含まれる
値: {!OFC.successIdList}
[商談の項目値をレコードに設定] セクション
項目: BillOutputDate__c
値: {!$Flow.CurrentDate}
※商談に請求書出力日(API名:BillOutputDate__c)のカスタム項目(日付型)を作成しています。
5. 完了画面
「請求書出力日更新」の下の「+」マークをクリックし、「画面」を選択します。
プロパティを設定します。
表示ラベル: 完了画面
API参照名: CompletedScreen
左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: dispCompletedMsg
テキスト:
完了しました。
実行件数: {!OFC.totalCount}
成功件数: {!OFC.successCount}
エラー件数: {!OFC.errorCount}
左のコンポーネント内の「表示テキスト」をクリックし、プロパティを設定します。
API参照名: dispErrorMsg
テキスト:
エラーが発生しました。
{!OFC.errorMessages}
※文字色は、カラーパレットより赤に設定します。
※OFC.errorMessageではなくOFC.errorMessagesを選択してください。
「コンポーネントの表示を設定」をクリックし、条件を設定します。
コンポーネントを表示するタイミング: すべての条件に一致 (AND)
リソース: {!OFC.errorMessages}
演算子: 次の文字列と一致しない
値: {!$GlobalConstant.EmptyString}
これでフローは完成です。
「保存」ボタンをクリックします。
フローをデバッグ
「デバッグ」ボタンをクリックします。
以下のように表示され、デバッグ時にレコードIdの入力欄がありません。レコードが選択されていない状態でのテストとのみとなります。
まずは、レコードが選択されていない状態をテストします。実行ボタンをクリックします。
「レコードが選択されていません。」のエラーメッセージが表示されます。
次に、デバッグ時のみ、デバッグ用のレコードIdをids変数に割り当てます。「開始フロー」の下の「+」マークをクリックし、「割り当て」を選択します。
※この割り当ては、デバッグ完了後に削除します。
プロパティを設定します。
表示ラベル: デバッグ用Idセット
API参照名: SetIdsForDebug
変数: {!ids}
演算子: 追加
値: ※テスト用の商談レコードIdをセットします。
例では、商談レコードIdを2件追加します。
「開始フロー」の下に「デバッグ用Idセット」が追加されていることを確認します。
「保存」ボタンをクリック後、「デバッグ」ボタンをクリックします。
「実行」ボタンをクリックします。
「次へ」ボタンをクリックします。
ファイルが出力されることを確認します。また、レコード詳細画面より、請求書出力日が更新されていることを確認します。
次に、エラー有りの場合をテストします。フロー編集画面に戻り、「デバッグ用Idセット」をクリックし、存在しないレコードIdを追加します。
演算子: 追加
値: ※存在しない商談IdのレコードIdをセットします。
例では、存在しない商談レコードIdを3件追加します。
「保存」ボタンをクリック後、「デバッグ」ボタンをクリックします。
「実行」ボタンをクリックします。
「次へ」ボタンをクリックします。
エラーメッセージが3件表示されることを確認します。
デバッグ完了後、「デバッグ用Idセット」をクリックします。
「要素を削除」をクリックします。
削除されたことを確認します。
「保存」ボタンをクリック後、「有効化」ボタンをクリックします。フロー画面を閉じます。
カスタムボタン作成
リストビューに配置する帳票出力用のカスタムボタンを作成します。
設定のオブジェクトマネージャより、対象のオブジェクトを開きます。左サイドバーの「ボタン、リンク、およびアクション」をクリックし、「新規ボタンまたはリンク」ボタンをクリックします。
各種設定を入力します。
表示ラベル: 帳票一括出力
名前: MassOutputInvoiceFlow
表示の種類: リストボタン
チェックボックスの表示(複数レコード選択用): チェックオン
動作: 現在のウィンドウにサイドバー付きで表示
コンテンツソース: URL
URL: /flow/フローAPI名?retURL=/Object Prefix?fcf=filterId
*retURLは、フロー完了後、リストビュー画面へ遷移するURLです。
*Object Prefixは、対象オブジェクトのレコードIDの先頭3桁です。
*filterIdは、リストビュー画面のURLの「filterName=」の後ろのIdです。
例では、以下をセットしています。
/flow/OFC_MassOutputInvoiceScreenFlow?retURL=/006?fcf=00B5g00000nJvrCEAS
左サイドバーの「リストビューボタンレイアウト」をクリックし、「▼」より「編集」をクリックします。
作成したボタンを「選択したボタン」へ移動し、「保存」ボタンをクリックします。
フローを実行
リストビューよりレコードを選択し、「帳票一括出力」ボタンをクリックします。
「次へ」ボタンをクリックします。
順次ファイルが出力されます。
「完了」ボタンをクリックで、リストビュー画面へ遷移します。
請求書出力日が更新されています。
参考