新規タイム・バランス・データベース・アイテムを含むFastFormulaのサンプル
このサンプル式には、次のサンプル時間構成から作成された新しいデータベース・アイテムが含まれています。
バランス・ディメンション構成の例
サンプル算式で使用されるバランス・ディメンション構成を次に示します:
| フィールド | 構成値の例 |
|---|---|
| 名前 | Reg Hrs by Person
|
| ディメンション・レベル | 個人 |
| 期間タイプ | 繰返し期間 |
| 期間 | 隔週開始日曜日 |
データベース・アイテム名の一部を形成するアプリケーション生成のサフィクスは、_REG_HRS_BY_PERSON_PER_RPです。
バランス定義構成の例
サンプル算式で使用される残高定義構成を次に示します:
| フィールド | 構成値の例 |
|---|---|
| 名前 | Reg Hrs Time Bal Def
|
| 入力単位 | 時間 |
| バランス・ディメンション |
この選択により、ディメンションサフィクス(_REG_HRS_BY_PERSON_PER_RP)がタイム・バランス定義に関連付けられます。 |
| 有効開始日 | 2018年1月1日 |
| 時間カテゴリ名 | Reg Hrs
|
| 加算または減算 | 追加 |
アプリケーション生成のディメンション(データベース・アイテム)の名前はREG_HRS_TIME_BAL_DEF_REG_HRS_BY_PERSON_PER_RPです。
サンプルFormula
次に、残高定義の例を使用するサンプル式を示します:
DEFAULT FOR HWM_CTXARY_RECORD_POSITIONS is EMPTY_TEXT_NUMBER
DEFAULT FOR StartTime is EMPTY_DATE_NUMBER
DEFAULT FOR StopTime is EMPTY_DATE_NUMBER
default FOR REG_HRS_TIME_BAL_DEF_REG_HRS_BY_PERSON_PER_RP is 0
INPUTS ARE HWM_CTXARY_RECORD_POSITIONS, measure ,StartTime ,StopTime
ffs_id = GET_CONTEXT(HWM_FFS_ID, 0)
rule_id = GET_CONTEXT(HWM_RULE_ID, 0)
NullDate = '01-JAN-1900'(DATE)
NullText = '**FF_NULL**'
groupTypeID = 101
out_msg_ary = EMPTY_TEXT_NUMBER
ctxPersonId = GET_CONTEXT(HWM_RESOURCE_ID, 0)
ctxPeriodEndTime = GET_CONTEXT(HWM_CTX_PERIOD_END_DATE, NullDate)
pMaxHr = get_rvalue_number (rule_id ,'DEFINED_LIMIT', 0)
pMsgCd = ger_rvalue_text (rule_id ,'MESSAGE_CODE', 'HWM_FF_TER_PERIOD_GT_MAX_WRN')
tcRecCount = HWM_CTXARY_RECORD_POSITIONS.count
if (tcRecCount > 0 ) then
(
balValueCurCHANGE_CONTEXTS(EFFECTIVE_DATE = ctxPeriodEndTime, PERSON_ID = ctxPersonId, GRP_TYPE_ID = groupTypeId) = 0
(
IF (REG_HRS_TIME_BAL_DEF_REG_HRS_BY_PERSON_PER_RP WAS NOT DEFAULTED) THEN
(
balValueCur = REG_HRS_TIME_BAL_DEF_REG_HRS_BY_PERSON_PER_RP
rLog = add_rlog (ffs_id, rule_id, 'Balance Value: ' || TO_CHAR(balValueCur) ||
' = DBI_CONTEXTS: EFFECTIVE_DATE= '||
TO_CHAR( GET_CONTEXT(EFFECTIVE_DATE, nullDate) ) ||
', PERSON_ID=' || TO_CHAR( GET_CONTEXT(PERSON_ID, 0) ) ||
', GRP_TYPE_ID=' || TO_CHAR( GET_CONTEXT(GRP_TYPE_ID,0) ) )
)
) /* Change Context */
if (balValueCur > pMaxHr ) then (
out_msg_ary[tcRecCount] = get_output_msg1 ( 'FND ,pMsgCd ,'DEF_LIMIT' , TO_CHAR( pMaxHr ) )
)
)
RETURN out_msg_ary