Introduction
One of the most common requests I have received from consultants and implementers is that there aren’t many ways available via which one could verify the Fast Formula used in their project.
There are some options of logging messages using ESS_LOG_WRITE but what becomes a challenge is that there is not enough calrity about:
-
Which ESS job should be run to get details for which Fast Formula
-
Identifying where did the Fast Formula failed
-
Values fetched by certain DBI Items used in Fast Formula
While each one of us may have a different way of troubleshooting , I personally prefer to create a custom Fast Formula (Global Absence Entry Validation Type) , attach the same to an absence type and when one tries to apply leave using Absence Recording UI a message is displayed (depending on the specific logic in the Fast Formula)
So without further ado we will get started.
Pre-requisite
We would have to have some basic setups done before we demonstrate how we fetch specific DBI values.They are:
-
Create a Custom Fast Formula of Global Absence Entry Validation Fast Formula
-
Create a Custom Absence Type
-
Attach the Fast Formula with the Absence Type
-
Choose a specific employee record and try to record a absence record
-
Depending on the logic in the Fast Formula a message would be displayed with the relevant details (DBI values)
Custom Fast Formula (Global Absence Entry Validation)
For this example we will create a Custom fast formula (TEST_DBI_VALUE) using which we will try to find a meaningful message on Absence Recording Page. We will try to find out an individual’s Person Number, Display Name, Business Unit Name, Employee and Employment Category.
Fast Formula Text |
/****************************************************************************** FORMULA NAME: GET_DBI_VALUE FORMULA TYPE: Global Absence Entry Validation DESCRIPTION: This formula is attached to an Absence Type and is used to retrieve the value of DBI Items specific to a person. Primarily used for debugging a Fast Formula Change History: Name Date Comments ----------------------------------------------- Ashish Harbhajanka 13-Jul-2018 Initial Version *******************************************************************************/ /*Assign Default Values to Database Items (DBIs)*/ DEFAULT FOR PER_ASG_PERSON_NUMBER is ' ' DEFAULT FOR PER_ASG_DISPLAY_NAME is ' ' DEFAULT FOR PER_ASG_BUSINESS_UNIT_NAME is ' ' DEFAULT FOR PER_ASG_EMPLOYEE_CATEGORY_MEANING is ' ' DEFAULT FOR PER_ASG_EMPLOYMENT_CATEGORY_MEANING is ' ' /*initialize local variables*/ lc_person_number = PER_ASG_PERSON_NUMBER lc_person_display_name = PER_ASG_DISPLAY_NAME lc_person_business_unit_name = PER_ASG_BUSINESS_UNIT_NAME lc_person_employee_catg_meaning = PER_ASG_EMPLOYEE_CATEGORY_MEANING lc_person_emplmnt_catg_meaning = PER_ASG_EMPLOYMENT_CATEGORY_MEANING lc_error_message = 'Person Number -' || lc_person_number || ' having Full Name - ' || lc_person_display_name || ' belongs to Business Unit - ' || lc_person_business_unit_name || '.Employee Category for this person is - ' || lc_person_employee_catg_meaning || ' and Employment Category is - ' || lc_person_emplmnt_catg_meaning || ' .' /*Assign Values to return variables*/ IF (1=1) THEN ( VALID = 'N' ERROR_MESSAGE = lc_error_message ) RETURN VALID, ERROR_MESSAGE |
Application Screenshot
Create Absence Type and Associate the Fast Formula with this Absence Type
We would need to create a absence type and ensure that the Fast Formula is associated with it
Absence Recording
Next we will pick any employee (some one who belongs to US legislation as the Absence Type has been set-up to be used for only US Legislative Data Group)
We will use “Robert Jackman” (Person# 541) and see how does an absence recording event happens
We could notice that we are getting the error messages which contains details of the various DBI Items (the values of which we are interested to fetch). As we have not defined the message in “Manage Messages” set-up we are getting the infor which says the message cannot be accesses, but anyhow our intent is to find out the value of the various fields like person number, display name, business unit, employee and e,ployment category an dthe displayed message
“Person Number -541 having Full Name – Robert Jackman belongs to Business Unit – US1 Business Unit.Employee category for this person is – White collar and Employment Category is – Full-time regular.”
So this is how one can make use of this custom fast formula and retrive value of any DBI Item
That’s all for now and I hope this technique will help you in debugging fast formulas and also to fetch the values of DBI Items
Thanks for your time , have a nice day ahead!