Sample Cost-Distribution Formula
You can use a fast formula to distribute costs under different assignments. The costing distribution will be done based on the formula return values.
Here’s a sample fast formula for your reference.
Formula Type | Formula Contexts |
Return Variables |
---|---|---|
Benefits Rate Distribution |
|
Here are some points to consider:
|
Here’s a sample distribution formula to store percentage values for each person
assignment in a user-defined table, and to use it for costing distribution.
Assignment | PERSON_ID | VALUE(Percentage) |
---|---|---|
Assignment_1 | Person_id_1 | 50 |
Assignment_2 | Person_id_1 | 30 |
Assignment_3 | Person_id_1 | 20 |
Assignment_4 | Person_id_2 | 50 |
Assignment_5 | Person_id_2 | 50 |
Sample
Formula:
DEFAULT_DATA_VALUE for PER_HIST_ASG_ASSIGNMENT_ID is 0
l_asg1=0
l_val1=0
l_asg2=0
l_val2=0
l_asg3=0
l_val3=0
i=1
j=1
l_effective_date = GET_CONTEXT(EFFECTIVE_DATE,to_date('1951/01/01 00:00:00'))
CHANGE_CONTEXTS(LEGISLATIVE_DATA_GROUP_ID = 202)
WHILE(PER_HIST_ASG_ASSIGNMENT_ID.EXISTS(i)) LOOP(
if ((PER_HIST_ASG_ASSIGNMENT_TYPE[i]='E' or PER_HIST_ASG_ASSIGNMENT_TYPE[i]='N') and ((l_effective_date > PER_HIST_ASG_EFFECTIVE_START_DATE[i]) and (l_effective_date <PER_HIST_ASG_EFFECTIVE_END_DATE[i]))) then (
l_person_id = to_number(GET_TABLE_VALUE ('DHQA_ASG_COSTING_DISTRIBUTION','PERSON_ID',to_char(PER_HIST_ASG_ASSIGNMENT_ID[i]),'-999'))
if (l_person_id = GET_CONTEXT(PERSON_ID,-9999)) then (
if(j=1) then(
l_asg1= PER_HIST_ASG_ASSIGNMENT_ID[i]
l_val1 = to_number(GET_TABLE_VALUE ('DHQA_ASG_COSTING_DISTRIBUTION','VALUE',to_char(PER_HIST_ASG_ASSIGNMENT_ID[i]))))
if (j=2) then (
l_asg2 = PER_HIST_ASG_ASSIGNMENT_ID[i]l_val2 = to_number(GET_TABLE_VALUE ('DHQA_ASG_COSTING_DISTRIBUTION','VALUE',to_char(PER_HIST_ASG_ASSIGNMENT_ID[i]))))
if (j=3) then (
l_asg3 =PER_HIST_ASG_ASSIGNMENT_ID[i]l_val3 = to_number(GET_TABLE_VALUE ('DHQA_ASG_COSTING_DISTRIBUTION','VALUE',to_char(PER_HIST_ASG_ASSIGNMENT_ID[i]))))
j=j+1
)
)
i=i+1
)
return l_asg1,l_val1,l_asg2,l_val2,l_asg3,l_val3