はじめに
こんにちは。
今回ご紹介するのは、Salesforceの承認プロセスについて、承認申請時に画面フローを使って必須としたい項目に入力をさせる方法です。
この方法を実践することで必要な情報が不足している承認申請を無くし、また申請者が抜け漏れなく承認申請を行うことが可能になります。
以降、前回作成した有給休暇取得申請についての承認プロセスを例として用いて説明していきます。
フローを触ったことがない方でも一連の設定が行える記事になっていますので、承認プロセスやフローの活用の第一歩として参考にしてみてはいかがでしょうか。
画面フローで承認申請を行う
1. 事前準備
以降、前回作成した有給休暇取得申請についての承認プロセスを例として用いて説明していきます。(承認プロセスの作成方法はこちらの記事でご紹介しています)
今回は、「有給休暇申請」オブジェクトにてレコードの承認申請時に以下の2項目がどちらかでも入力されていない場合にエラーとなり、ユーザーに未入力の項目を入力させるフローを作成していきます。そして、作成したフローからユーザーが承認申請を行えるように設定を行っていきます。
「有給休暇開始日」(API参照名:PaidHolidayStartDate__c)
「有給休暇終了日」(API参照名:PaidHolidayEndDate__c)
作成するフローの全体像は以下になります。では作成していきましょう。
2. 画面フローの作成
[設定] > [フロー] > [新規フロー] を選択し、画像①のように[画面フロー]を選択し[作成]をクリックします。
① 入力変数を設定する
まず「recordId」というAPI参照名のテキスト型の入力変数を作成します。左上の[ツールボックス] > [新規リソース]を選択し、[リソース種別]にて[変数]を選択します。選択すると、画像②の画面が表示されるので、以下のように入力を行います。
API参照名: recordId
データ型: テキスト
フロー外部での可用性: [入力で使用可能]をチェック]
そして、ここで右上の[保存]を押して、フローの保存・フローの表示ラベルとAPI参照名の設定をしておきます。
今回は画像③のように設定しました。今後の設定でも逐次表示ラベルとAPI参照名の設定は行いますので、日本語:英語訳など一貫性を持って命名しましょう。
② 承認申請レコードを取得する
①で作成した変数に承認申請を行ったレコードのレコードIDが保存されるので、この変数を用いて[レコードの取得]を行います。画像④・画像⑤のように[+]を押して、[要素を追加]から[レコードを取得]を選択します。
画像⑥の画面が表示されるので、変数の時と同じく[レコードを取得]の表示ラベルとAPI参照名を設定します。
そして、[このオブジェクトのレコードを取得]で取得するレコードのオブジェクト名を入力します。今回は「有給休暇申請」と入力します。
最後に取得を行うレコードの絞り込み条件を設定します。承認申請を行ったレコードだけを絞り込むには、以下の条件を設定画面で画像⑦のように設定します。
[項目]:[ Id(カスタムオブジェクトID) ]
[演算子]:[次の文字列と一致する]
[値]:[ {!recordId} ]
③ 承認申請画面を作成する
次はユーザーが承認申請情報の入力を行う画面を作成します。[+]を押して、[要素を追加]から[画面]を選択します。
画像中央に表示されているウインドウがユーザーに表示される画面となるので必要な要素を揃えていきます。
その前に可能な限りシンプルな画面としたいので、画像右側の[画面のプロパティ]で画面に不要なものを取り除きます。
画像⑧のように[> ヘッダーを設定]をクリックし、[ヘッダーを表示]のチェックを外します。これによって、画面上部に見えているフローの表示ラベルを取り除きます。
また、[> フッターを設定]をクリックし、[前へ] ボタンと[一時停止] ボタンについて、それぞれ[[前へ] を非表示]と[一時停止] を非表示とします。
これで、初期設定で表示されている不要なものを取り除くことができました。
ここから画面を作成していきます。まずは画面上部へ画像⑨の左側の[コンポーネント]タブから[表示テキスト]をドラッグ&ドロップします。そして、[表示テキスト]をクリックし、画面右部の[リソースピッカー]内で何を行う画面なのかを示す文字列を入力します。
今回は承認申請を行う画面なのでそのまま「承認申請画面」としました。
次に必ず入力してほしい項目を入力してもらうために、項目の入力欄を画面内に設置していきます。
画面左部の[項目]タブをクリックし、[レコード変数]の欄をクリックします。すると、画像⑩のように[レコード(単一)変数]セクションへ先ほど②で作成した[レコードを取得]のAPI参照名が表示されますのでそれをクリックすると、画像⑪のようにタブ内に項目が表示されるようになります。
項目が表示されたら、[表示テキスト]と同じように[有給休暇開始日]、[有給休暇終了日]を画面内にドラッグ&ドロップしていきます。画像⑫のようになれば画面の作成は完了です。ユーザーが画面で入力した項目の値がレコード変数に保存されます。また、フロー開始前に項目に値が入力されていれば欄にその値が表示されます。
④ 項目の未入力の有無で分岐を作成する
画面に配置した項目が入力されているかどうかで処理の分岐を行います。
1つは未入力項目がある場合の分岐、もう一方は未入力項目がない場合の分岐です。
[+]を押して、[要素を追加]から[決定]を選択します。
[新規決定]を開いたら、[結果] > [結果の順序]の[新しい結果]をクリックします。
ここで未入力項目がある場合の分岐を作成していきます。未入力の項目があるレコードを判定する条件は以下のようになり、画面での設定は画像⑬のようになります。
[結果を実行する条件の要件]:「いずれかの条件に一致」(①か②)
①
[リソース]:[{!GetRecord_ApplicationPaidHoliday.PaidHolidayStartDate__c} ]
[演算子]:[null]
[値]:[{!$GlobalConstant.True}]
②
[リソース]:[{!GetRecord_ApplicationPaidHoliday.PaidHolidayEndDate__c}]
[演算子]:[null]
[値]:[{!$GlobalConstant.True}]
未入力項目がない場合は画像⑭のように表示ラベルのみを設定します。
これで未入力の項目がある場合は「未入力項目あり」へ進み、上記の条件を満たしていない場合、つまりどちらの項目も入力されている場合は「未入力項目なし」に進むように分岐を作成することができました。現在までに作成したフローは画像⑮のようになっています。
⑤ エラー画面を作成する
次に「未入力項目あり」に進んだ場合のエラー画面を作成します。[+]を押して、[要素を追加]から[画面]を選択します。
③と同様にヘッダー・フッターの設定を行い、その後画面上部へ画像左側の[コンポーネント]タブから[表示テキスト]を2つドラッグ&ドロップします。
そして画像⑯[表示テキスト]をクリックし、何の画面かを示すために上の表示テキストに「エラー画面」と入力、何をしてほしいかを伝えるために下の表示テキストに「すべての項目を入力してください。」と入力します。文字を赤文字にするとより分かりやすい画面になるでしょう。
そして、エラー画面から③の承認申請画面に戻るように設定します。画像⑰のように「エラー画面」の下の[+]を押して、[要素を接続]をクリックし「承認申請画面」の下の[+]を押します。これで画像⑱のように「エラー画面」と「承認申請画面」が接続されました。
⑥ 入力された項目値でレコードを更新する
ここでは「未入力項目なし」に進んだ場合の処理を作成します。未入力項目がない場合に、③でユーザーに入力してもらった項目の値でレコードを更新します。
[+]を押して、[要素を追加]から[レコードを更新]を選択します。[有給休暇申請レコードを絞り込み]で、「承認申請レコードを取得」で取得したレコードを絞り込みます。条件は以下の通りです。
[項目]:[ Id(カスタムオブジェクトID) ]
[演算子]:[次の文字列と一致する]
[値]:[{!GetRecord_ApplicationPaidHoliday.Id}]
そして、[有給休暇申請の項目値をレコードに設定]で絞り込んだレコードの項目の値を③でユーザーに入力してもらった項目の値で更新します。
以下のように設定し、画面での設定は画像⑲のようになります。
[項目]:[PaidHolidayStartDate__c] ⇦ [値]:[{!GetRecord_ApplicationPaidHoliday.PaidHolidayStartDate__c}]
[項目]:[PaidHolidayEndDate__c] ⇦ [値]:[{!GetRecord_ApplicationPaidHoliday.PaidHolidayEndDate__c}]
⑦ 「承認申請」アクションを設定する
いよいよフロー作成の最後の手順です。ここまでで得た項目の値を使って、承認プロセスを起動する「承認申請」アクションを設定します。
画像⑳のように[+]を押して、[要素を追加]から[アクション]を選択します。選択後、[アクション]の下の空欄をクリックし、「承認申請」と入力すると画像㉑の画面が表示されます。
次に、[選択したアクションの入力値を設定]の[カスタムオブジェクトID]に[{!recordId}]を入力します。これでフローは完成です。最後に[保存]を押し、[有効化]を押してフローが利用可能となりました。
3. 作成したフローをレコードページに設置する
ここでは2.で作成した画面フローをユーザーが起動できるように、「有給休暇申請」オブジェクトのレコードページに起動ボタンを設置していきます。
まず、[設定] > [オブジェクトマネージャー]を開き、[有給休暇申請]オブジェクトを開きます。そして、[ボタン、リンク、およびアクション]より[新規アクション]を作成します。
[アクション情報の入力]では、画像①のように[アクション種別]でフローを選択し、[フロー]で「有給休暇取得申請(必須項目あり)」を選択します。最後に任意の[表示ラベル]と[名前]を入力し、[保存]を行います。
新規アクションを作成したら、次にそれをページレイアウトに配置していきます。画像②の[Salesforce モバイルおよび Lightning Experience のアクション]にある作成したアクションを画像③のページレイアウト上の[Salesforce モバイルおよび Lightning Experience のアクション]へドラッグ&ドロップします。
では、[有給休暇申請]オブジェクトのレコードページを見てみましょう。画像④のように「画面フロー起動」アクションをレコードページに配置することができました。クリックすると、画像⑤のように無事作成した画面フローが起動できていることがわかります。
4. 実際に運用する
2.と3.で画面フローから承認プロセスを起動することができるようになりました。
次は実際に承認申請を行い、申請者の申請までの流れを見ていきましょう。
なお、承認者側の挙動は画面フローからの申請であることによる変化はありませんので、前回記事の承認プロセスの承認者側の操作説明をご覧ください。
申請者:有給休暇を申請する
申請者となるユーザーで[有給休暇申請]オブジェクトの申請を行いたいレコード(画像①)に移動します。レコード画面から「画面フロー起動」をクリックし、承認申請を行います。
画像②のように承認申請画面が表示されますので、今回は画像③のように「有給休暇開始日」のみ入力して[次へ]を押してみます。
画像④のように作成したフローの通り、エラー画面へ遷移することができていますね。
もう一度[次へ]を押して「有給休暇終了日」も入力すると、フローは完了し画像⑤のように元のレコード画面に戻ります。
レコードの[関連]タブをクリックすると、承認申請が無事提出されていることも確認できます。
まとめ
とても長い記事となりましたが、本記事では承認申請を画面フローから行う方法、またその画面フローの作成・配置方法をご紹介しました。
Salesforceに関するお悩みはありませんか?
今回ご紹介した承認プロセス、フローをはじめとするSalesforceの機能活用について、
「調べるのに時間がかかる...」
「作ったはいいがバグが起こらないか心配...」
「Salesforceを活用したいけどそこまで手が回らない...」
などお悩み事はありませんか?
Air合同会社ではSalesforceエンジニアを一人雇うほどの業務は無いが、業務を任せたいというお客様へ月 数時間~40時間で柔軟にご利用頂けるSalesforce活用支援サービスを提供しています。
機能の実装や改善のご提案、社内での内製化支援まで、Salesforce認定資格保持者で構成される当社チームが貴社のSalesforceのお悩みを解決いたします。Salesforceをより活用し課題解決を行なっていくための手段としてぜひご検討ください。
Salesforce業務を他社に外注するイメージがわかない…という方に向け、外注する際のメリット・デメリットやSalesforce開発の流れを以下の記事で解説しています。ぜひご覧ください。
Salesforce運用保守を外注するメリット・デメリットとは?
Salesforceのノーコード・ローコード開発の流れを解説!
また、弊社では「サービスについて簡単に知りたい」「Salesforceの使い方について相談したい」などSalesforceに関する無料相談会も随時実施しています。
貴社の課題解決のお力になれるよう、Salesforce認定資格を持つ担当者が心を込めてサポートいたします。まずはお気軽に下記ボタンよりお問い合わせください。
Salesforceオンライン無料相談会
Air合同会社では
「サービスについて簡単に知りたい」
「Salesforceの使い方について相談したい」
など、Salesforceのお悩みに関する無料相談会を随時実施しております。
\Salesforce認定資格を持つ担当者が対応!/
無料相談のご予約はこちら