登録機会
このFormulaタイプを使用して、福利厚生オブジェクトを個人の選択肢にするかどうかを決定できます。
コンテキスト
このタイプのFormulaでは、次のようなコンテキストを利用できます。
- BUSINESS_GROUP_ID ( ENTERPRISE_ID)
- EFFECTIVE_DATE
- HR_ASSIGNMENT_ID
- PERSON_ID
- LER_ID
- ORGANIZATION_ID
- JURISDICTION_CODE
- PGM_ID
- PL_ID
- PL_TYP_ID
- OPT_ID
- LER_ID
データベース・アイテム
このタイプのFormulaで使用可能な次のデータベース・アイテムのみを使用します。
- 表の属性列を除くすべての列: ben_ler_f、ben_pgm_f、ben_pl_f、ben_opt_f、ben_pl_typ_f
- 個人のアサイメントに基づくデータベース・アイテム- HR_ASSIGNMENT_IDおよびPERSON_ID
入力変数
このタイプのFormulaでは入力変数を使用できません。
戻り変数
戻り変数には事前定義の名前を使用します。このタイプのFormulaでは、次のような戻り変数を利用できます。
戻り値 | データ型 | 必須 | 摘要 |
---|---|---|---|
L_ENRT_OPP | 文字 | 必須 |
Y - はい A - 選択されたままにし、elctbl_flagを使用 L - 失注のみの条件(登録されている場合)は登録解除されます N - いいえ |
エラー
他の出力値が返された場合、加入プロセスはBEN_91329_FORMULA_RETURNでエラーになります。
サンプルFormula 1:
Formula名: BEN_ENRT_OPTY
Formulaタイプ: 登録機会
説明: 報酬オブジェクトを個人の選択肢にするかどうかを決定するFormula。
DEFAULT for BEN_LER_NAME is 'ABC'
DEFAULT for BEN_PLN_NAME is 'XYZ'
DEFAULT for BEN_OPT_NAME is 'XYZ'
l_enrt_opp = 'A'
l_ler_name = BEN_LER_NAME
l_pl_name = BEN_PLN_NAME
l_opt_name = BEN_OPT_NAME
If ( l_pl_name = 'Aetna Medical'
and ( l_opt_name = 'Domestic Partner' or l_opt_name = 'Domestic Partner + one')
and ( l_ler_name = 'Open' or l_ler_name = 'New Hire' ) ) then
( l_enrt_opp = 'N' )
If ( l_pl_name = 'Be Healthy HMO'
and ( l_opt_name = 'Employee + family' or l_opt_name = 'Employee + spouse')
and ( l_ler_name <> 'Open' ) ) then
(l_enrt_opp = 'A' )
Return l_enrt_opp
サンプルFormula 2:
Formula名: BEN_ENROLLMENT_OPPORTUNITY
Formulaタイプ: 登録機会
Default for BEN_PLN_NAME is 'Default'
Default for BEN_LER_NAME is 'Default'
l_return='N'
l_med_wv='N'
l_pt2_p1='N'
l_pt2_p1_opt1='N'
l_pt2_p1_opt2='N'
l_pt2_p1_opt3='N'
l_pt2_p2='N'
l_pt2_p2_opt1='N'
l_pt2_p2_opt2='N'
l_pt2_p2_opt3='N'
l_pt2_p2='N'
/* Below is a function which returns Y if there is an enrollment */
l_med_wv=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_3_WAIVE'
,'NA'
)
if (BEN_PLN_NAME='SO_CHANGE_PT2_PLAN_1') then (
l_pt2_p1_opt1=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_1'
,'SO_CHANGE_PT2_PLAN_1_OPT_1'
)
l_pt2_p1_opt2=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_1'
,'SO_CHANGE_PT2_PLAN_1_OPT_2'
)
l_pt2_p1_opt3=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_1'
,'SO_CHANGE_PT2_PLAN_1_OPT_3'
)
) /* end if for SO_CHANGE_PT2_PLAN_1 */
if (l_pt2_p1_opt1='Y' or l_pt2_p1_opt2='Y' or l_pt2_p1_opt3='Y') then (l_pt2_p1='Y')
58 Oracle Benefits Fast Formula Reference Guide / Version 1.6
Copyright © 2021, Oracle and/or its affiliates / Public
if (BEN_PLN_NAME='SO_CHANGE_PT2_PLAN_2') then (
l_pt2_p2_opt1=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_2'
,'SO_CHANGE_PT2_PLAN_2_OPT_1'
)
l_pt2_p2_opt2=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_2'
,'SO_CHANGE_PT2_PLAN_2_OPT_2'
)
l_pt2_p2_opt3=ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'SO_CHANGE_PT2_PLAN_2'
,'SO_CHANGE_PT2_PLAN_2_OPT_3'
)
) /*end if SO_CHANGE_PT2_PLAN_2 */
if (l_pt2_p2_opt1='Y' or l_pt2_p2_opt2='Y' or l_pt2_p2_opt3='Y') then (l_pt2_p2='Y')
if (l_med_wv='Y') then
(
l_return='Y'
)
else if ( (l_med_wv='N') and (BEN_LER_NAME='SO_MARRIAGE_1') ) then
(
if ( (BEN_PLN_NAME='SO_CHANGE_PT2_PLAN_1') and (l_pt2_p1='Y') ) then (l_return='Y')
if ( (BEN_PLN_NAME='SO_CHANGE_PT2_PLAN_2') and (l_pt2_p2='Y') ) then (l_return='Y')
) /*end else if */
return l_return
サンプルFormula 3:
Formulaタイプ: 登録機会
説明: 個人が退職から30日以内に再雇用された場合は、登録機会を提供します。
DEFAULT for PER_PER_LATEST_REHIRE_DATE is '1951/01/01 00:00:00' (date)
DEFAULT for PER_PER_LATEST_TERMINATION_DATE is '1951/01/01 00:00:00' (date)
DEFAULT_DATA_VALUE FOR PER_HIST_ASG_ASSIGNMENT_ID is 99
DEFAULT_DATA_VALUE FOR PER_HIST_ASG_EFFECTIVE_START_DATE is '1951/01/01 00:00:00' (date)
DEFAULT_DATA_VALUE FOR PER_HIST_ASG_EFFECTIVE_END_DATE is '1951/01/01 00:00:00' (date)
DEFAULT_DATA_VALUE FOR PER_HIST_ASG_ASSIGNMENT_TYPE is 'NA'
DEFAULT_DATA_VALUE FOR PER_HIST_ASG_STATUS_TYPE is 'NA'
DEFAULT_DATA_VALUE FOR PER_HIST_ASG_EFFECTIVE_LATEST_CHANGE is 'NA'
/* if the person is a first time hire, the PER_PER_LATEST_REHIRE_DATE will return the hire date */
l_hire_dt = PER_PER_LATEST_REHIRE_DATE
l_term_dt = PER_PER_LATEST_TERMINATION_DATE
l_prev_asg_id=9999
l_enrt_opportunity = 'N'
if PER_PER_LATEST_TERMINATION_DATE was not defaulted then
(
if l_hire_dt < add_days(l_term_dt,30)
then
(
/* person is rehired within 30 days */
/* get the assignment_id */
l_prev_asg_dt = add_days(l_term_dt,-1)
i=1
while ( PER_HIST_ASG_ASSIGNMENT_ID.exists(i) ) loop
(
if ( (PER_HIST_ASG_EFFECTIVE_START_DATE[i] < l_prev_asg_dt)
AND (PER_HIST_ASG_EFFECTIVE_END_DATE[i] >= l_prev_asg_dt)
AND (PER_HIST_ASG_ASSIGNMENT_TYPE[i] = 'ET')
AND (PER_HIST_ASG_STATUS_TYPE[i] = 'ACTIVE')
AND (PER_HIST_ASG_EFFECTIVE_LATEST_CHANGE[i] = 'Y' )
)
then
(
l_prev_asg_id = PER_HIST_ASG_ASSIGNMENT_ID[i]
) /* end if */
i=i+1
) /* end while */
/* check if the person is enrolled in any of the medical plan */
CHANGE_CONTEXTS(HR_ASSIGNMENT_ID=l_prev_asg_id, EFFECTIVE_DATE=l_prev_asg_dt)
(
l_med_enroll = ben_fn_get_char_value(
'BEN_PRTT_ENRT_RSLT'
,'ENROLLED'
,'Healthy HMO'
,'NA'
)
if (l_med_enroll = 'Y') then
(
l_enrt_opportunity = 'Y'
)
) /* end change contexts */
) /* < 30 days */
) /* end not defaulted */
return l_enrt_opportunity
サンプルFormula 4:
FORMULA_NAME: ADD_CHANGE_BENEFICIARY
説明: すでに登録されている場合にのみ商談を指定します。
DEFAULT for BEN_LER_NAME is 'NA'
DEFAULT for BEN_PLN_NAME is 'NA'
DEFAULT for BEN_OPT_NAME is 'NA'
l_opp = 'N'
l_flag = ben_fn_get_char_value('BEN_PRTT_ENRT_RSLT','ENROLLED',BEN_PLN_NAME,BEN_OPT_NAME)
IF ( l_flag = 'Y') then
(
l_opp = 'Y'
)
return l_opp