グローバル休暇欠勤タイプ期間

グローバル休暇欠勤タイプ期間のFastFormulaを使用して、休暇欠勤エントリ期間および有給休暇プラン使用を休暇欠勤エントリに対して決定するために使用するデフォルト計算ロジックを上書きできます。

就業者が「日数」で測定される休暇欠勤タイプの休暇欠勤エントリを作成した場合、その休暇欠勤日の就業者の予定勤務時間に基づいて合計期間を按分する必要がある場合があります。このような場合、アプリケーション内のデフォルトの期間計算ルールが置き換えられるように、期間タイプのFormulaを、按分された期間を計算するために必要なロジックで構成できます。

入力が1つのユニット(開始日と終了日の間)として処理されるとき、および開始日と終了日の間の各日について処理されるときに、同じFormulaで必要な期間を返す必要があります。

HCM Cloudの構成ポイント

このFormulaを作成した場合は、このFormulaを休暇欠勤タイプ定義に関連付けることができます。これは現在、UoMが時間または日数である休暇欠勤タイプでのみ使用できます。

ナビゲーション

  1. 「休暇欠勤管理」作業領域で、「休暇欠勤タイプ」をクリックして「休暇欠勤タイプ」ページを開きます。
  2. 「検索結果」セクションのツールバーで、「作成」をクリックして「休暇欠勤タイプの作成」ダイアログ・ボックスを開きます。
  3. 「続行」をクリックします。
  4. 「休暇欠勤タイプの作成」ページの「タイプ属性」タブの「一般属性」セクションで、「換算Formula」フィールドに定義済のFormulaを選択します。

コンテキスト

このFormulaタイプでは、次のコンテキストを使用できます。

コンテキスト名 データ型
ABSENCE_ENTRY_ID 数値
ABSENCE_TYPE_ID 数値
DATE_EARNED 日付
EFFECTIVE_DATE 日付
END_DATE 日付
ENTERPRISE_ID 数値
HR_ASSIGNMENT_ID 数値
HR_RELATIONSHIP_ID 数値
HR_TERM_ID 数値
JOB_ID 数値
LEGAL_EMPLOYER_ID 数値
LEGISLATIVE_DATA_GROUP_ID 数値
ORGANIZATION_ID 数値
PAYROLL_ASSIGNMENT_ID 数値
PAYROLL_ID 数値
PAYROLL_RELATIONSHIP_ID 数値
PAYROLL_TERM_ID 数値
PERSON_ID 数値
START_DATE 日付

入力値

変数名 データ型 摘要
IV_START_DATE 日付 休暇欠勤エントリの開始日
IV_END_DATE 日付 休暇欠勤エントリの終了日
IV_START_DURATION 数値 休暇欠勤エントリの開始日期間。休暇欠勤エントリが経過時間ベースの勤務スケジュールに対して記録されている場合に適用されます。
IV_END_DURATION 数値 休暇欠勤エントリの終了日期間。休暇欠勤エントリが経過時間ベースの勤務スケジュールに対して記録されている場合に適用されます。
IV_START_TIME テキスト 休暇欠勤エントリの開始日における開始時間。時間ベースの勤務スケジュールに休暇欠勤エントリが記録されている場合に適用されます。経過勤務スケジュールの場合は、00:00となります。
IV_END_TIME テキスト 入力中の休暇欠勤の終了日時。時間ベースの勤務スケジュールに休暇欠勤エントリが記録されている場合に適用されます。経過勤務スケジュールの場合は23:59となります。
IV_UOM テキスト 単位

戻り変数

変数名 データ型 摘要
DURATION 数値 休暇欠勤エントリの期間

サンプルFormula

要件: 組織では、部分日休暇欠勤記録が許可されておらず、期間が日数で測定される特定の休暇欠勤タイプについて、就業者の常勤換算値を乗算して合計期間を按分する必要があります。

解決策: 次のようなグローバル休暇欠勤タイプ期間Formulaを使用できます。

Formula名: ANC_DURCAL

Formulaタイプ: グローバル休暇欠勤タイプ期間Formula

説明: このFormulaは、FTEに基づいて休暇欠勤エントリの按分期間を返します

DEFAULT FOR IV_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR IV_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR IV_START_TIME IS '00:00'
DEFAULT FOR IV_END_TIME IS '23:59'
DEFAULT FOR PER_ASG_FTE_VALUE IS 1

INPUTS ARE IV_START_DATE (date), IV_END_DATE (date), IV_START_TIME(text),IV_END_TIME(text)

ln_entry_duration_d = 0
ln_unrounded_duration_d = 0

ld_period_start_date = to_date(to_char(IV_START_DATE,'DD/MM/RRRR')||' '||IV_START_TIME,'DD/MM/RRRR HH24:MI:SS')
ld_period_end_date = to_date(to_char(IV_END_DATE,'DD/MM/RRRR')||' '||IV_END_TIME,'DD/MM/RRRR HH24:MI:SS')

ln_entry_duration_d = GET_PAY_AVAILABILITY ('ASSIGN',
    ld_period_start_date,
    ld_period_end_date,
    'Y',
    'Y',
    'Y',
    'Y',
    'D')

ln_unrounded_duration_d = ln_entry_duration_d * PER_ASG_FTE_VALUE

DURATION = ROUND(ln_unrounded_duration_d,2)

RETURN DURATION