実績日または参照日を使用するカスタムしきい値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に置き換えるだけです。