About the Workforce Bypass Fast Formula

Headcount and FTE can be derived in a number of different ways depending on the OLTP setup. If they are not stored in the table PER_ASSIGNMENT_BUDGET_VALUES_F then a fast formula is executed to calculate the value for each assignment record.

Typically fast formula execution is slow, and to avoid any performance issues for larger systems there is a new Workforce Bypass Fast Formula feature which retains the flexibility of the fast formulas without the cost.

Optional or Mandatory

This task is optional, however the default option of running the fast formulas will not be as fast.

Applies to

All versions of E-Business Suite.

Task description in detail

To bypass the fast formula execution configure the parameter HR_WRKFC_BYPASS_FF. Once that is done, the ETL will calculate the Headcount and FTE values using the same logic as in the default fast formulas TEMPLATE_HEAD and TEMPLATE_FTE (although values entered directly in the ABV table will still take precedence).

If the template formula logic is not adequate then it is possible to configure that in the ETL, although this is quite a complex task as it involves modifying the SQL expressions that implement the formula logic. The template formula SQL expressions for Headcount and FTE are stored in ODI variables HR_WRKFC_BYPASS_HDC_CALC and HR_WRKFC_BYPASS_FTE_CALC. The variable values can be overridden with the required logic in the generated load plan.

HR_WRKFC_BYPASS_HDC_CALC

Implements the logic from the fast formula TEMPLATE_HEAD but calculated directly from the base tables. The logic implemented is:

  • If the assignment is primary then the headcount is 1.

  • Otherwise headcount is 0.

The variable expression is:

(case when asg.primary_flag = 'Y' then 1 else 0 end)

If overriding this expression care must be taken to ensure that all references match up in every data set of the interface. Joins can be added if they do not change the number of rows being processed.

HR_WRKFC_BYPASS_FTE_CALC

Implements the logic from the fast formula TEMPLATE_FTE but calculated directly from the base tables. The logic implemented is:

  • If the assignment has full time employment category then the FTE is 1.

  • If the assignment has part time employment category then calculate the FTE based on working hours of assignment / expected working hours of assignment.

  • Otherwise FTE is 0.

The expected working hours of the assignment come from the position, organization, business group (in that order of precedence). If the assignment hours are given in a different frequency to the expected working hours then some conversion is necessary.

The variable expression is:

(case when asg.employment_category in ('FT','FR') then 1
      when asg.employment_category in ('PT','PR') then
       round((case when NVL(pos.working_hours,
                     NVL(org.org_information3, bus.org_information3)) = 0
              then 0
              else (decode(NVL(pos.frequency,
                               NVL(org.org_information4, bus.org_information4)),
                    'H', 1, 'D', 8, 'W', 40, 'M', 169) *
                    asg.normal_hours)
              / (decode(asg.frequency,
                 'HO', 1, 'D', 8, 'W', 40, 'M', 169) *
                 NVL(pos.working_hours,
                     NVL(org.org_information3, bus.org_information3)))
        end), 2)
   else 0
  end)

If overriding this expression care must be taken to ensure that all references match up in every data set of the interface. Joins can be added if they do not change the number of rows being processed.

Dependency

No dependencies.