【Salesforce】簡易版勤怠管理システムを作ってみる③

勤怠管理システム作成の続きです。
[簡易版勤怠管理システムを作ってみる①](https://qiita.com/yickey/items/336340bcaa060c6a2913)
[簡易版勤怠管理システムを作ってみる②](https://qiita.com/yickey/items/22b1e4ce5a0719c68aba)

リストビューに"有給申請"ボタンを追加します。
有給取得希望日を選択すると、ステータスが有給(承認前)となったレコードが作成されます。
マネージャーが承認すると、レコードが更新されてステータスが有給休暇となります。

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/90241f81-7a88-9b1e-44e9-16bd34653200.gif)

## 1.承認プロセスの作成
ユーザがマネージャーに有給休暇を申請する承認プロセスを作成します。
![113.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/d8b7e8e1-01e5-3ec8-dfd6-cf3040289aa6.png)

承認プロセスを管理するオブジェクト : 勤怠管理
◯承認プロセスの新規作成 : 標準ウィザードを使用
ステップ 1. 名前と説明の入力
　プロセス名 : 有給休暇の承認申請
　一意の名前 : request_paid_vacation
ステップ 2. 入力条件の指定
　無し
ステップ 3. 承認者項目と編集権限のプロパティの指定
　割り当て先として使用するユーザー項目 : マネージャー
ステップ 4. 通知テンプレートの選択
　無し
ステップ 5. 承認ページレイアウトに表示する項目の選択
　選択済みの項目 : 勤怠管理名、所有者、出勤時間、コメント
ステップ 6. 申請者の指定
　デフォルト

◯最終承認時のアクション
アクション : 項目自動更新
　名前 : 有給承認
　一意の名前 : approve_paid_vacation
　更新する項目 : 勤怠管理: ステータス
　新規項目値の指定 : 特定値: 有給休暇
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/5df976c8-c233-851b-7c27-ad1b27c79808.png)

設定→ユーザで"承認者の設定"セクションから"マネージャー"の指定を行ってください。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/a6684b84-0d32-7256-fda9-cbc795d46296.png)


## 2.有給休暇フローの作成
有給休暇の処理を行う画面フローを作成します。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/2951e44e-a3ce-05e2-ca13-07a19d55e750.png)

◯リソース
レコードを作成するための変数を用意します。
1.リソース種別 : 変数
　API 参照名 : new_attendance
　データ型 : レコード
　オブジェクト : 勤怠管理

出勤時間を格納するための変数を用意します。
2.リソース種別 : 数式
　API 参照名 : paid_vacation_start_datetime
　データ型 : 日付/時間
　数式 : DATETIMEVALUE({!paid_vacation_date})
※paid_vacation_dateは、入力画面で使用している日付項目

退勤時間を格納するための変数を用意します。
3.リソース種別 : 数式
　API 参照名 : paid_vacation_end_datetime
　データ型 : 日付/時間
　数式 : DATETIMEVALUE({!paid_vacation_date}) + 9/24

◯画面 (有給日の取得)
ユーザが有給希望日を入力します。
･コンポーネント
入力 : 日付
　表示ラベル : 有給休暇希望日
　API参照名 : paid_vacation_date
　必須 : チェック
出力 : 表示テキスト
　表示ラベル : コメント
　API参照名 : comment
 ![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/73bccef0-c1a1-5815-951f-e4940554fa50.png)

◯割り当て
"出勤"ボタンを押下した時刻を出勤時刻に格納します。
･{!new_attendance.StartTime__c}
　次の文字列と一致する
　{!paid_vacation_start_datetime}
･{!new_attendance.EndTime__c}
　次の文字列と一致する
　{!paid_vacation_end_datetime}
･{!new_attendance.Status__c}
　次の文字列と一致する
　有給(承認前)
･{!new_attendance.Employee__c}
　次の文字列と一致する
　{!$User.Id}
･{!new_attendance.Comment__c}
　次の文字列と一致する
　{!comment}

◯レコードを作成
"勤怠管理"オブジェクトのレコードを作成します。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/243dfc9a-efbc-13a6-8a81-b863462b5177.png)

◯画面 (挨拶)
表示テキストを配置して有給申請が完了したことをユーザに伝えます。
"有給休暇の申請を受け付けました。"
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/d8bcbe74-c63e-5652-b44f-41c68072b332.png)

◯アクション (承認申請)
"有給休暇の承認申請"承認プロセスを呼び出します。
表示ラベル : 有給休暇の承認申請
API参照名 : request_paid_vacation
カスタムオブジェクトID : {!new_attendance.Id}
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3255462/6ccc899c-46eb-23a0-e60d-814b55ba9436.png)



 ## 完成
フローと承認プロセスを組み合わせて、勤怠管理システムの利便性が向上しました。
次回は、ダッシュボードを活用して管理画面を実装します。
[簡易版勤怠管理システムを作ってみる④](https://qiita.com/yickey/items/b940089220fd001ca31d)