実績日または参照日を使用するカスタムしきい値Formula
個人の勤務日定義から対象日(ActualDate)または超過勤務日(RefDate)を使用して日次合計を計算するには、カスタムしきい値Formulaを作成します。
ここでは、2019年11月11日から17日のタイム・カードのサンプルについて詳細な結果を示します。個人は、11月11日から13日までの月曜日から水曜日の勤務時間をレポートしました。
曜日 | 給与時間タイプ | 開始時間 | 停止時間 |
---|---|---|---|
月曜日から火曜日 11月11日から12日 |
通常勤務 |
5:00a 1:00p 6:00p |
7:00a 5:00p 3:00a |
11月13日(水) | 通常勤務 | 5:00a | 7:00a |
日次合計は、開始時間ではなくActualDateまたはRefDateを使用して計算されます。どちらの日付でも、超過勤務日が使用されます。1日の8時間ActualDateまたはRefDateしきい値を超えた勤務時間は超過時間です。ActualDateとRefDateの説明では、両方とも11月11日を使用しています。11月11日の日次合計にはActualDatesとRefDatesの両方があるためです。11月10日の入力は、RefDateのみです。
- ActualDateによる日次合計: 最初の3つの入力のすべてがその日に開始するため、カスタムしきい値Formulaによって、個人は11月11日に17時間勤務したことが決定されます。2019-Nov-12の初回入力のActualDateは2019-Nov-11です。開始から2019-Nov-12 03:00の入力停止まで180分未満であるためです。
開始時間 停止時間 メジャー 給与時間タイプ ActualDate RefDate 2019-Nov-11 05:00 2019-Nov-11 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 13:00 2019-Nov-11 17:00 4h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 18:00 2019-Nov-12 03:00 9h 通常勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 05:00 2019-Nov-12 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-11 日次合計: 17h 2019-Nov-12 13:00 2019-Nov-12 17:00 4h 通常勤務 2019-Nov-12 2019-Nov-11 2019-Nov-12 18:00 2019-Nov-13 03:00 9h 通常勤務 2019-Nov-12 2019-Nov-12 2019-Nov-13 05:00 2019-Nov-13 07:00 2h 通常勤務 2019-Nov-12 2019-Nov-12 日次合計: 15h - RefDateによる日次合計。3つの入力すべてが5:00pから5:00pと定義された稼働日内にあるため、カスタムしきい値Formulaによって、個人は11月11日に15時間勤務したことが決定されます。
開始時間 停止時間 メジャー 給与時間タイプ ActualDate RefDate 2019-Nov-11 05:00 2019-Nov-11 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 13:00 2019-Nov-11 17:00 4h 通常勤務 2019-Nov-11 2019-Nov-10 日次合計: 6h 2019-Nov-11 18:00 2019-Nov-12 03:00 9h 通常勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 05:00 2019-Nov-12 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 13:00 2019-Nov-12 17:00 4h 通常勤務 2019-Nov-12 2019-Nov-11 日次合計: 15h 2019-Nov-12 18:00 2019-Nov-13 03:00 9h 通常勤務 2019-Nov-12 2019-Nov-12 2019-Nov-13 05:00 2019-Nov-13 07:00 2h 通常勤務 2019-Nov-12 2019-Nov-12 日次合計: 11h - ActualDateで計算された超過勤務: しきい値は8時間であるため、Formulaによって2019-Nov-11 18:00から2019-Nov-12 03:00の入力が次の2つの入力に分割されます。
- 通常勤務2019-Nov-11 18:00から2019-Nov-11 20:00の入力
- 超過勤務2019-Nov-11 20:00 -- 2019-Nov-12 03:00の入力
ただし、超過勤務入力は勤務日数に及びます。したがって、Formulaは2つの超過勤務入力(2019-Nov-11 20:00から2019-Nov-12 00:00、2019-Nov-12 00:00から2019-Nov-12 03:00)に分割されます。2019-Nov-12 05:00の入力は前の入力の終了から180分以内に開始されるため、11月11日の超過勤務計算にも含まれます。
開始時間 停止時間 メジャー 給与時間タイプ ActualDate RefDate 2019-Nov-11 05:00 2019-Nov-11 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 13:00 2019-Nov-11 17:00 4h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 18:00 2019-Nov-11 20:00 2h 通常勤務 2019-Nov-11 2019-Nov-11 2019-Nov-11 20:00 2019-Nov-12 03:00 7h 超過勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 05:00 2019-Nov-12 07:00 2h 超過勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 13:00 2019-Nov-12 17:00 4h 通常勤務 2019-Nov-12 2019-Nov-11 2019-Nov-11 18:00 2019-Nov-11 20:00 2h 通常勤務 2019-Nov-12 2019-Nov-12 2019-Nov-11 20:00 2019-Nov-11 22 00 2h 通常勤務 2019-Nov-12 2019-Nov-12 2019-Nov-11 22:00 2019-Nov-12 03:00 5h 超過勤務 2019-Nov-12 2019-Nov-12 2019-Nov-13 05:00 2019-Nov-13 07:00 2h 超過勤務 2019-Nov-12 2019-Nov-12 - RefDateで計算された超過勤務: しきい値は8時間であるため、Formulaによって2019-Nov-11 18:00から2019-Nov-12 03:00の入力が次の2つの入力に分割されます。
- 通常勤務2019-Nov-11 18:00から2019-Nov-12 02:00の入力
- 超過勤務2019-Nov-12 02:00から2019-Nov-12 03:00の入力
11月12日から始まる残りの入力はすべて、前日の終了日の5:00pに停止するため、超過勤務として計算されます。
開始時間 停止時間 メジャー 給与時間タイプ ActualDate RefDate 2019-Nov-11 05:00 2019-Nov-11 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 13:00 2019-Nov-11 17:00 4h 通常勤務 2019-Nov-11 2019-Nov-10 2019-Nov-11 18:00 2019-Nov-12 02:00 8h 通常勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 02:00 2019-Nov-12 03:00 1h 超過勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 05:00 2019-Nov-12 07:00 2h 超過勤務 2019-Nov-11 2019-Nov-11 2019-Nov-12 13:00 2019-Nov-12 17:00 4h 超過勤務 2019-Nov-12 2019-Nov-11 2019-Nov-11 18:00 2019-Nov-11 02:00 8h 通常勤務 2019-Nov-12 2019-Nov-12 2019-Nov-12 02:00 2019-Nov-12 03:00 1h 超過勤務 2019-Nov-12 2019-Nov-12 2019-Nov-13 05:00 2019-Nov-13 07:00 2h 超過勤務 2019-Nov-12 2019-Nov-12
ここでは、対象日をActualDateとして使用して超過勤務を計算するしきい値Formulaの作成に使用できる疑似コードを示します。
….. .
INPUTS ARE
HWM_CTXARY_RECORD_POSITIONS,
HWM_CTXARY_HWM_MEASURE_DAY,
Measure,
StartTime,
StopTime,
ActualDate
….
wkTotalHrsDay = 0
lastActualDate= nulldate
nidx = 0
WHILE (nidx < wMaAry ) LOOP (
nidx = nidx + 1
tcMeasure = 0
tcMeasureDay = 0
tcActualDate = nullDate
aiRecPosition = HWM_CTXARY_RECORD_POSITIONS[nidx]
if (MEASURE.exists(nidx) ) then ( tcMeasure = MEASURE[nidx] )
if (ActualDate.exists(nidx) ) then (tcActualDate = StartTime [nidx] )
if (lastActualDate <> tcActualDate) then (
/ lastActualDate = tcActualDate
wkTotalHrsDay = tcMeasure
) else (
wkTotalHrsDay = wkTotalHrsDay + tcMeasure
)
If (wkTotalHrsDay > p threshold (
/* create overtime … */
)
…
超過勤務日をRefDateとして使用するロジックは同じです。前の擬似コードのすべてのActualDateインスタンスをRefDateに置き換えるだけです。