User login

Predefined Business Rules in WFP

Planners use predefined business rules to calculate employee data.
Add TBH Hourly
Description
Adds hourly-paid employees to the selected department.
Formula
SET CREATENONMISSINGBLK ON;
VAR numTBH = [NumTBH];
VAR validTBH = 0;
FIX(@CHILDREN("New Employees"), [Scenario], [Version], [Department], [Year], "Local",
"HSP_InputValue")
FIX(@LEVMBRS("Period", 0))
"Start Month"
(
IF (@ISMBR("BegBalance"))
validTBH = 0;
IF (numTBH > 0 AND @MAXS(SKIPMISSING, @CHILDREN("Employee Properties")) ==
#MISSING )
"Start Month" = [StartMonth]->"Cal TP-Index";
"Health Plan" = [HealthPlan];
numTBH = numTBH - 1;
validTBH = 1;
ENDIF
ENDIF
IF (validTBH == 1)
"Grade" = [Grade];
IF ([MarketAdjustment] != 0)
"Market Adjustment"= [MarketAdjustment];
ENDIF
"FTE" = [FTE];
"Position" = [Position];
"Tax Region" = [TaxRegion];
"Employee Type" = [EmployeeType];
"Pay Type" = [PayTypeNonExempt];
"Salary Basis" = 2;
"Hours per week" = [HoursPerWeek];
"Target Rate" = [SalaryRate];
"Salary Rate" = [SalaryRate] + [MarketAdjustment];
ENDIF
)
ENDFIX
CALC DIM ("Account");
ENDFIX
Add TBH Salary
Description
Adds salaried employees to the selected department.
Formula
SET CREATENONMISSINGBLK ON;
VAR numTBH = [NumTBH];
VAR validTBH = 0;
FIX(@CHILDREN("New Employees"), [Scenario], [Version], [Department], [Year], "Local",
"HSP_InputValue")
FIX(@LEVMBRS("Period", 0))
"Start Month"
(
IF (@ISMBR("BegBalance"))
validTBH = 0;
IF (numTBH > 0 AND @MAXS(SKIPMISSING, @CHILDREN("Employee Properties")) ==
#MISSING )
"Start Month" = [StartMonth]->"Cal TP-Index";
"Health Plan" = [HealthPlan];
numTBH = numTBH - 1;
validTBH = 1;
ENDIF
ENDIF
IF (validTBH == 1)
"Grade" = [Grade];
IF ([MarketAdjustment] != 0)
"Market Adjustment"= [MarketAdjustment];
ENDIF
"FTE" = [FTE];
"Position" = [Position];
"Tax Region" = [TaxRegion];
"Employee Type" = [EmployeeType];
"Salary Basis" = 1;
"Pay Type" = [PayTypeExempt];
ENDIF
)
ENDFIX
CALC DIM ("Account");
FIX(@LEVMBRS("Period", 0))
"Salary Rate" = "Target Rate" + "Market Adjustment";
ENDFIX
CALC DIM ("Account");
ENDFIX
Change Employee Status
Description
Changes employee status.
Formula
SET CREATENONMISSINGBLK ON;
VAR startIndex;
VAR endIndex;
VAR existingAction = #MISSING;
FIX ([Scenario], [Version], [Employees], [Department], [Month], [Year], "Local",
"HSP_InputValue")
"Action"
(
startIndex = [Month]->"Fiscal TP-Index";
endIndex = startIndex + [Duration];
IF (endIndex < startIndex)
endIndex = startIndex;
ENDIF
);
ENDFIX
FIX ([Scenario], [Version], [Employees], [Department], [Year], "Local",
"HSP_InputValue")
"Action"
(
IF ("Fiscal TP-Index" == startIndex)
"Action" = [Action];
ELSEIF ("Fiscal TP-Index" > startIndex AND "Fiscal TP-Index" < endIndex)
existingAction = "Action";
"Action" = #MISSING;
ELSEIF ("Fiscal TP-Index" == endIndex AND "Action" == #MISSING)
IF (existingAction == #MISSING)
"Action" = 1;
ELSE
"Action" = existingAction;
ENDIF
ENDIF
);
CALC DIM ("Account");
ENDFIX
CopyProps
Description
Copies employee properties from BegBalance into all time periods.
Formula
FIX ([Scenario], [Version], [Department], [Year], @CHILDREN("New Employees"), @LEVMBRS
("Period", 0), "Local", "HSP_InputValue")
"Start Month" (
"Grade" = "BegBalance"->"Grade";
"FTE" = "BegBalance"->"FTE";
"Position" = "BegBalance"->"Position";
"Tax Region" = "BegBalance"->"Tax Region";
"Employee Type" = "BegBalance"->"Employee Type";
"Pay Type" = "BegBalance"->"Pay Type";
"Salary Basis" = "BegBalance"->"Salary Basis";
92 Workforce Planning Structure
"Salary Rate" = "BegBalance"->"Target Rate" + "BegBalance"->"Market Adjustment";
"Target Rate" = "BegBalance"->"Target Rate";
"Market Adjustment" = "BegBalance"->"Market Adjustment";
IF ("Salary Basis" == 2)
"Hours per week" = "BegBalance"->"Hours per week";
ENDIF
);
CALC DIM ("Account");
ENDFIX
Plan Departure
Description
Lets users plan for an employee’s departure.
Formula
SET AGGMISSG ON;
FIX ([Scenario], [Version], [Employees], [Department], [Year], @LEVMBRS("Period", 0),
"Local", "HSP_InputValue")
"Action"
(
IF ("Fiscal TP-Index" > [Month]->"Fiscal TP-Index")
"Action" = #MISSING;
ELSEIF ("Fiscal TP-Index" == [Month]->"Fiscal TP-Index")
"Action" = [Action];
ENDIF
);
CALC DIM ("Account");
ENDFIX
Reconcile TBH
Description
Reconciles TBHs with actual new hires.
Formula
FIX ([Scenario], [Version], [Department])
DATACOPY [SrcEmployee] TO [DestEmployee];
ENDFIX
FIX ([Scenario], [Version], [Department], [DestEmployee], [Year], @LEVMBRS("Period", 0),
"Local", "HSP_InputValue")
"Start Month" (
IF ("Cal TP-Index" == "BegBalance"->"Start Month")
"Action" = 1;
"BegBalance"->"Start Month" = #MISSING;
ENDIF
"Grade" = "BegBalance"->"Grade";
"FTE" = "BegBalance"->"FTE";
"Position" = "BegBalance"->"Position";
"Tax Region" = "BegBalance"->"Tax Region";
"Employee Type" = "BegBalance"->"Employee Type";
"Pay Type" = "BegBalance"->"Pay Type";
Predefined Business Rules 93
"Salary Basis" = "BegBalance"->"Salary Basis";
"Salary Rate" = "BegBalance"->"Target Rate" + "BegBalance"->"Market
Adjustment";
IF ("Salary Basis" == 2)
"Hours per week" = "BegBalance"->"Hours per week";
ENDIF
);
CALC DIM ("Account");
ENDFIX
FIX ([Scenario], [Version], [Department])
CLEARDATA [SrcEmployee];
CALC DIM ("Account");
ENDFIX
Remove TBH
Description
Removes a TBH.
Formula
FIX ([Scenario], [Version], [Department])
CLEARDATA [LocalEmployee];
CALC DIM("Account");
ENDFIX
Rollup
Description
Rolls up certain dimensions.
Formula
SET AGGMISSG ON;
FIX ([Scenario], [Version], [Department], [Year], "Local", "HSP_InputValue")
CALC DIM ("Account", "Period", "Employee");
ENDFIX
Transfer
Description
Performs a one-step employee transfer.
Formula
SET CREATENONMISSINGBLK ON;
VAR savedAction = 0;
FIX ([Scenario], [Version], [Employees], [Year])
DATACOPY [FromDepartment] TO [ToDepartment];
ENDFIX
FIX ([Scenario], [Version], [Employees], [FromDepartment], [Year], @LEVMBRS("Period",
0), "Local", "HSP_InputValue")
94 Workforce Planning Structure
"Action"
(
IF ("Fiscal TP-Index" == [Month]->"Fiscal TP-Index")
"Action" = 7;
ELSEIF ("Fiscal TP-Index" > [Month]->"Fiscal TP-Index")
"Action" = #MISSING;
ENDIF
);
CALC DIM ("Account");
ENDFIX
FIX ([Scenario], [Version], [Employees], [ToDepartment], [Year], [Month], @LEVMBRS
("Period", 0), "Local", "HSP_InputValue")
"Action"(
IF ("Fiscal TP-Index" == [Month]->"Fiscal TP-Index")
"Action" = 8;
ELSEIF ("Fiscal TP-Index" < [Month]->"Fiscal TP-Index")
"Action" = #MISSING;
ELSE
IF (savedAction <> 7 AND "Action" == 8)
"Action" = #MISSING;
ELSEIF ("Action" == 7)
savedAction = 7;
ENDIF
ENDIF
);
CALC DIM ("Account");
ENDFIX
Transfer In
Description
Transfers an employee into a department.
Formula
SET CREATENONMISSINGBLK ON;
VAR savedAction = 0;
FIX ([Scenario], [Version], [Employees], [Department], [Year], @LEVMBRS("Period", 0),
"Local", "HSP_InputValue")
"Action"(
IF ("Fiscal TP-Index" == [Month]->"Fiscal TP-Index")
"Action" = 8;
ELSEIF ("Fiscal TP-Index" < [Month]->"Fiscal TP-Index")
"Action" = #MISSING;
ELSE
IF (savedAction <> 7 AND "Action" == 8)
"Action" = #MISSING;
ELSEIF ("Action" == 7)
savedAction = 7;
ENDIF
ENDIF
);
ENDFIX
FIX ([Scenario], [Version], [Employees], [Department], [Year], @LEVMBRS("Period", 0),
"Local", "HSP_InputValue")
"Action"
(
IF ([FTE] != #MISSING)
"FTE" = [FTE];
ENDIF;
IF ([Position] != #MISSING)
"Position" = [Position];
ENDIF;
IF ([Grade] != #MISSING)
"Grade" = [Grade];
ENDIF;
IF ([TaxRegion] != #MISSING)
"Tax Region" = [TaxRegion];
ENDIF;
IF ([EmployeeType] != #MISSING)
"Employee Type" = [EmployeeType];
ENDIF;
IF ([HealthPlan] != #MISSING)
"Health Plan" = [HealthPlan];
ENDIF;
IF ([MeritMonth] != #MISSING)
"Merit Month" = [MeritMonth];
ENDIF;
IF ([SalaryBasis] != #MISSING)
"Salary Basis" = [SalaryBasis];
IF ("Salary Basis" == 2)
"Hours per week" = [HoursPerWeek];
ENDIF
ENDIF;
IF ([SalaryRate] != #MISSING)
"Salary Rate" = [SalaryRate];
ENDIF;
IF ([PayType] != #MISSING)
"Pay Type" = [PayType];
ENDIF;
);
CALC DIM ("Account");
ENDFIX
Transfer Out
Description
Transfers an employee out of a department.
Formula
FIX ([Scenario], [Version], [Employees], [Department], [Year], @LEVMBRS("Period", 0),
"Local", "HSP_InputValue")
"Action"
(
IF ("Fiscal TP-Index" == [Month]->"Fiscal TP-Index")
"Action" = 7;
ELSEIF ("Fiscal TP-Index" > [Month]->"Fiscal TP-Index")
"Action" = #MISSING;
ENDIF
);
CALC DIM ("Account");
ENDFIX
Unreconciled Transfers
Description
Compares transfers out against transfers in to produce a reconciliation report.
Formula
SET CREATENONMISSINGBLK ON;
FIX ([Scenario], [Version], [Year], @REMOVE(@LEVMBRS("Employee",0), @LIST(@CHILDREN("New
Employees"), "Department General", "No Employee")), @LEVMBRS("Period", 0), "No Entity",
"Local", "HSP_InputValue")
"TransferOutCount" = #MISSING;
"TransferInCount" = #MISSING;
ENDFIX
FIX ([Scenario], [Version], [Year], @REMOVE(@LEVMBRS("Employee",0), @LIST(@CHILDREN("New
Employees"), "Department General", "No Employee")), @LEVMBRS("Period", 0), "Local",
"HSP_InputValue")
FIX(@REMOVE(@LEVMBRS("Entity",0), @LIST("No Entity")))
"Action" (
IF ("Action" == 7)
"No Entity"->"TransferOutCount" = "No Entity"->"TransferOutCount" + 1;
ELSEIF ("Action" == 8)
"No Entity"->"TransferInCount" = "No Entity"->"TransferInCount" + 1;
ENDIF
);
ENDFIX
ENDFIX
FIX ([Scenario], [Version], [Year], @REMOVE(@LEVMBRS("Employee",0), @LIST(@CHILDREN("New
Employees"), "Department General", "No Employee")), @LEVMBRS("Period", 0), "No Entity",
"Local", "HSP_InputValue")
"Unreconciled Transfers"(
IF ("TransferInCount" == "TransferOutCount")
IF ("TransferInCount" == 1 OR "TransferInCount" == #MISSING)
#MISSING;
ELSE
0;
ENDIF
ELSEIF ("TransferInCount" > "TransferOutCount")
1;
ELSE
-1;
ENDIF
);
ENDFIX

0
Your rating: None

Syndicate

Syndicate content