機械翻訳について

レート期間区分

このFormulaにより、ユーザーはレート値を期間に分割できます。 ユーザーは、定義済金額、年間金額および連絡済金額間でレートを配分するために使用できるコンテキストと入力値を使用して、1つのルールを定義できます。

コンテキスト

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

  • BUSINESS_GROUP_ID (ENTERPRISE_ID)
  • EFFECTIVE_DATE
  • HR_ASSIGNMENT_ID
  • PERSON_ID
  • LER_ID
  • PGM_ID
  • PL_ID
  • PL_TYP_ID

データベース・アイテム

このタイプのFormulaで使用可能な次のデータベース・アイテムのみを使用します。

  • 個人のアサイメントに基づくデータベース・アイテム: HR_ASSIGNMENT_IDおよびPERSON_ID

入力変数

このFormulaタイプでは入力変数を使用できます。

入力変数表

名前 データ型 備考
BEN_IV_CONVERT_FROM 文字

指定可能な値は、DEFINED、CMCDおよびANNUALです。

BEN_IV_CONVERT_FROMがDEFINEDの場合、ルールでは、入力値BEN_IV_CONVERT_FROM_VALを使用して年間および連絡された値を計算する必要があります。

BEN_IV_CONVERT_FROMがANNUALの場合、ルールは入力値BEN_IV_CONVERT_FROM_VALを使用して、定義済および通信済の値を計算する必要があります。

BEN_IV_CONVERT_FROM_VAL 数値 Formulaに渡される値

戻り変数

戻り変数には事前定義の名前を使用します。 このタイプのFormulaでは、次のような戻り変数を利用できます。

戻り変数表

出力変数名 データ型 備考
DFND_VAL 数値 必須出力変数
ANN_VAL 数値 必須出力変数
CMCD_VAL 数値 必須出力変数

エラー

他の出力値が返された場合、加入プロセスはBEN_91329_FORMULA_RETURNでエラーになります。

サンプルFormula 1:

Formula名: RATE_PERIODIZATION_1

Formulaタイプ: レート期間区分

Inputs are BEN_IV_CONVERT_FROM (text), BEN_IV_CONVERT_FROM_VAL (text)
DEFAULT_DATA_VALUE FOR BEN_PEN_PL_NAME_TN is 'My-Default'
DEFAULT_DATA_VALUE FOR BEN_PEN_ENRT_CVG_STRT_DT_DN is '1951/01/01 0:00:00'(date)
DEFAULT_DATA_VALUE FOR BEN_PEN_ORGNL_ENRT_DT_DN is '1951/01/01 0:00:00'(date)
DEFAULT FOR BEN_YRP_START_DATE is '1951/01/01 0:00:00'(date) DEFAULT_DATA_VALUE FOR BEN_PEN_OPT_NAME_TN is 'My-Default' DEFAULT_DATA_VALUE FOR BEN_PEN_BNFT_AMT_NN is 0
l_eff_date='1951/01/01 0:00:00' (date)
l_new_eff_date='1951/01/01 0:00:00' (date) l_enrt_cvg_strt_char='NA'
l_enrt_cvg_strt_dt='1951/01/01 0:00:00' (date)
l_ori_enrt_cvg_strt_dt='1951/01/01 0:00:00' (date)
l_chk_date='1951/01/01 0:00:00' (date)
l_yr_perd_st_date='1951/01/01 0:00:00' (date)
l_prev_bnft_amt_chr='N'
l_bnft_amt=0
l_prev_bnft_amt=0
l_prev_cntbn=0
DFND_VAL=0
ANN_VAL=0
CMCD_VAL=0
i=1
j=1
l_total_tp_in_cal_year=1
l_pay_perd_totper_rem=99
l_pay_perd=1
l_pay_cur_perd=1
/* input values */
l_iv_period=BEN_IV_CONVERT_FROM
l_iv_val=to_number(BEN_IV_CONVERT_FROM_VAL)
/* Main () */
j=1
/* change contexts for accommodating waiting periods or future rate, coverage start dates */ l_eff_date=GET_CONTEXT(EFFECTIVE_DATE, to_date('1951/01/01 0:00:00'))
l_new_eff_date=add_days(l_eff_date,15)
CHANGE_CONTEXTS(EFFECTIVE_DATE=l_new_eff_date)
(/* get the benefit amount and the enrollment coverage start date within this block. Replace plan and option names below */
while (BEN_PEN_PL_NAME_TN.exists(j)) loop (
if ((BEN_PEN_PL_NAME_TN[j]='ABC_PT1_PLAN1') and
(BEN_PEN_OPT_NAME_TN[j]='ABC_PT1_PLAN1_OPT1')) then
(
l_bnft_amt=BEN_PEN_BNFT_AMT_NN[j]
l_enrt_cvg_strt_dt=BEN_PEN_ENRT_CVG_STRT_DT_DN[j] l_ori_enrt_cvg_strt_dt=BEN_PEN_ORGNL_ENRT_DT_DN[j] )
j=j+1
) /*end loop plan option */
) /*end change contexts */
j=1
l_new_eff_date=add_days(l_eff_date,-1)
CHANGE_CONTEXTS(EFFECTIVE_DATE=l_new_eff_date)
(/* get the previous benefit amount within this block. Replace plan and option names below. */ l_prev_bnft_amt_chr=BEN_FN_GET_CHAR_VALUE( 'BEN_PRTT_ENRT_RSLT'
,'BNFT_AMT'
,'ABC_PT1_PLAN1'
,'ABC_PT1_PLAN1_OPT1'
)
if ( l_prev_bnft_amt_chr <> ' ' and l_prev_bnft_amt_chr <> 'NO_DATA_FOUND' and
l_prev_bnft_amt_chr <> 'N' ) then
(l_prev_bnft_amt=to_number(l_prev_bnft_amt_chr))
) /*end change contexts */
IF (l_bnft_amt = 0 and l_iv_period = 'ANNUAL' ) THEN
(
l_bnft_amt = l_iv_val
)
/* check if enrolled earlier in same year */
IF (l_ori_enrt_cvg_strt_dt <= l_enrt_cvg_strt_dt) THEN
(
l_chk_date = l_ori_enrt_cvg_strt_dt
)
ELSE
(
l_chk_date = l_enrt_cvg_strt_dt
)
/* substitute the program id in below clause to pick year period start date */
CHANGE_CONTEXTS(PGM_ID = 300100083634356,EFFECTIVE_DATE=l_new_eff_date)
(
l_yr_perd_st_date = BEN_YRP_START_DATE
)
/* If enrolled in prior year, use this year period start date */ IF ( l_chk_date < l_yr_perd_st_date ) THEN (
l_chk_date = l_yr_perd_st_date
)
l_pay_perd= to_number(BEN_FN_GET_CHAR_VALUE( 'PAY_TIME_PERIODS'
,'PERIOD_NUM'
,' '
,' '
,'START_DATE'
,to_char(l_chk_date)
))
/* Get the current running pay periods by passing the effective date */
l_pay_cur_perd= to_number(BEN_FN_GET_CHAR_VALUE( 'PAY_TIME_PERIODS'
,'PERIOD_NUM'
,' '
,' '
,'START_DATE'
,to_char(l_new_eff_date)
))
l_total_tp_in_cal_year = to_number(BEN_FN_GET_CHAR_VALUE( 'PAY_TIME_PERIODS'
,'TOTAL_TP_IN_CALENDAR_YEAR'
,' '
,' '
,'START_DATE'
,to_char(l_chk_date)
))
l_pay_perd_totper_rem =l_total_tp_in_cal_year - l_pay_cur_perd +1
IF (l_prev_bnft_amt <> 0 ) THEN
(
l_prev_cntbn = (l_prev_bnft_amt/(l_total_tp_in_cal_year-l_pay_perd+1))*(l_pay_cur_perd - l_pay_perd )
)
ELSE
(
l_prev_cntbn = 0
)
CMCD_VAL = (l_bnft_amt - l_prev_cntbn )/l_pay_perd_totper_rem DFND_VAL = (CMCD_VAL * l_pay_perd_totper_rem)/12 ANN_VAL = l_bnft_amt
RETURN DFND_VAL,ANN_VAL,CMCD_VAL