Define Fast Formula

You need to define a fast formula to calculate the seniority based on absence.

  1. On the Home page, click My Client Groups > Show More > Fast Formulas.
  2. In the Search Results area, click the Create icon.
  3. In the Create Fast Formula dialog box, enter the following details.
    Field Value
    Formula name Service Date Deduction for Absence
    Type Employment Seniority Date Adjustment
    Description Reduce seniority based on leave of absence
    Legislative Data Group GBI United States LDG
    Effective start date 1/1/20
  4. Click Continue.
  5. Enter the following fast formula logic in the Formula Text box.
    default for SENIORITY_ADJUST_COMMENT is 'no adjustment'
    default for SENIORITY_ADJUST_IN_DAYS is 0
    default for SENIORITY_ADJUST_IN_HOURS is 0
    default for CUMULATIVE_FLAG is 'N'
    default for SENIORITY_BASIS is 'ORA_PER_SNDT_DAYS'
    default for PREVIOUS_SENIORITY_EXIT_DATE is '1900/01/01 00:00:00' (DATE)
    default for BASE_SENIORITY_DATE is '1900/01/01 00:00:00' (DATE)
      
    INPUTS ARE
        EFFECTIVE_START_DATE (DATE),
        EFFECTIVE_END_DATE (DATE),
        SENIORITY_DATE_CODE (TEXT),
        SENIORITY_BASIS (TEXT),
        CUMULATIVE_FLAG (TEXT),
        BASE_SENIORITY_DATE (DATE),
        PREVIOUS_SENIORITY_EXIT_DATE (DATE),
        SENIORITY_TRIGGERING_FIELD_CODE (TEXT),
        ACTION_CODE (TEXT),
        CHANGED_VALUE_NEW (TEXT),
        CHANGED_VALUE_OLD (TEXT),
        TOTAL_SENIORITY_HOURS (NUMBER),
        PREVIOUS_TOTAL_SENIORITY_HOURS (NUMBER),
        SENIORITY_DATE (DATE),
        LEGAL_EMPLOYER_ID (NUMBER),
        LEGAL_EMPLOYER_NAME (TEXT),
        ENTERPRISE_ID (NUMBER),
        ENTERPRISE_NAME (TEXT),
        BARGAINING_UNIT_CODE (TEXT),
        BARGAINING_UNIT_NAME (TEXT),
        GRADE_ID (NUMBER),
        GRADE_NAME (TEXT),
        GRADE_STEP_ID (NUMBER),
        GRADE_STEP_NAME (TEXT),
        JOB_ID (NUMBER),
        JOB_NAME (TEXT),
        POSITION_ID (NUMBER),
        POSITION_NAME (TEXT),
        UNION_ID (NUMBER),
        UNION_NAME (TEXT),
        LOCATION_ID (NUMBER),
        LOCATION_NAME (TEXT),
        DEPARTMENT_ID (NUMBER),
        DEPARTMENT_NAME (TEXT),
        COLLECTIVE_AGREEMENT_ID (NUMBER),
        COLLECTIVE_AGREEMENT_NAME (TEXT)
                 
    /*CALL_FORMULA
    ('SENIORITY_SUB_TEST',
    'Test by 1024' > 'COMMENT'
    ,SENIORITY_ADJUST_COMMENT < 'RETURN_COMMENT' DEFAULT 'Test by 1024 default'
    )*/
    SENIORITY_ADJUST_IN_HOURS = 0
    EFF_DATE = EFFECTIVE_START_DATE
     
    v_Total_Leaves= 0
    v_PersonId=GET_CONTEXT(PERSON_ID, 9999)
    v_Absence_Type_Name='<Name of the absence type you created>'
    v_start_date = to_date('1/1/2024','DD/MM/YYYY')
    v_end_date = to_date('31/12/2024','DD/MM/YYYY')
    v_Seniority_Reduction=0
    v_Comments='Nothing'
     
    v_Total_Leaves=GET_ABSENCE_DAYS_PER_TYPE(v_Absence_Type_Name,v_start_date,v_end_date)
     
    IF v_Total_Leaves >10 THEN
     (
        v_Seniority_Reduction = 10 - v_Total_Leaves
     )
    ELSE
     (
       v_Seniority_Reduction=0
     )  
     
    v_Comments= 'Reducing Seniority by '||to_char(v_Seniority_Reduction)||' Days as Total Leaves='||to_char(v_Total_Leaves)||' Days'
     
    SENIORITY_ADJUST_IN_DAYS = v_Seniority_Reduction
    SENIORITY_ADJUST_COMMENT =v_Comments
      
    return EFF_DATE, SENIORITY_ADJUST_COMMENT, SENIORITY_ADJUST_IN_DAYS, SENIORITY_ADJUST_IN_HOURS
    
  6. Click Submit, and then click Compile to check whether the fast formula is valid.
  7. Click Refresh at intervals until the Compile Status shows a tick mark