0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Salesforce】自分の承認が済んでいないレコードが存在する場合、その一覧を毎朝メールする

Last updated at Posted at 2024-11-27

こちらの記事でも話題に上げた件です。
【Salesforce】【サブフロー】フロー開発でDRY原則を適用する

要件

平日の朝に、自分の承認待ちで止まっているレコードがあれば、その一覧を
通知するメールを送る。1件もなければ何もしない。これを担当者ごとに実行する。

ここでいう承認待ちとは、承認プロセスではなく自前で用意したステータス項目です。


以下のように機能を分割して実装しました。
①スケジュールフロー:平日の朝に実行するようスケジュールを設定する
           処理の中で担当者の分だけ②を呼び出す
②サブフロー:①から渡された担当者に関して、承認待ちレコードが存在するか確認する
       1件以上存在した場合、③のURLを記載したメールを送信する
③レポート:自分(=ログインユーザー)の承認待ちレコードの一覧を表示する

①②は前述の記事で説明しているので、③のレポートと数式項目について説明します。

まず、レポートに表示させるためのフラグとなる項目を作成します。

未承認レポートへの表示フラグ
/* 「未承認者」項目に自分の名前が含まれているかを判定。(シス管は全件表示)*/
$User.LastName = 'システム管理者'
 || contains( unapprover__c, $User.LastName &        $User.FirstName)
 || contains( unapprover__c, $User.LastName & ' '  & $User.FirstName)
 || contains( unapprover__c, $User.LastName & ' ' & $User.FirstName)

次に、まだ承認が済んでいない担当者を取得する数式項目を作成します。

未承認者 unapprovers__c
/*承認が済んでいない担当者を改行区切りで表示*/
   if( !isBlank( eigyou_tantou__c )  && eigyou_tantou__c != '不要' && isBlank( eigyou_approve_date__c ) , eigyou_tantou__c & br(), '')
 & if( !isBlank( system_tantou__c )  && eigyou_tantou__c != '不要' && isBlank( system_approve_date__c ) , system_tantou__c & br(), '')
 & if( !isBlank( keiri_tantou__c  )  && keiri_tantou__c  != '不要' && isBlank( keiri_approve_date__c)   , keiri_tantou__c  & br(), '')

これを条件にレポートを作成します。
image.png

大した実装はしてませんが、機能要件は満たしているのでユーザー的には満足しているそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?