January 19, 2020

How to calculate age from date of birth using calculated fields?

Hi Readers,

This is a new series, where I will show you how things are done in Siebel and how the same thing can be done in Salesforce. Will leave the decision upto you to tell me which one is easier and which one is better.

Step 1: Create first calculated field to output date in YYYYMMDD Field Type: DTYPE_NUMBER
    ToChar(Today(),’YYYY’) + ToChar(Today(),’MM’) + ToChar(Today(), ‘DD’)
Step 2: Create second calculated field to convert birth date field in YYYYMMDD  : Field Type: DTYPE_NUMBER
    ToChar([Date Of Birth], ‘YYYY’) + ToChar([Date Of Birth], ‘MM’) + ToChar([Date Of Birth], ‘DD’) 
Step 3 : Create another field to use the fields created above as : Field Type: DTYPE_TEXT
    The Under Age flag : IIf(([Step1] – [Step2]) < “180000”, “Y”, “N”)

We are doing these three steps mainly because :
  1. Siebel does not have good list of functions supported in calculated fields. 
  2. Siebel does not have data type conversion in calculated fields. 
Lets don't refer to invoke service method due to its own complication and performance issues it can cause.


In Salesforce if you have to do this activity, you just need one formula field with following calculation.

IF( NOT( ISBLANK( Birthdate ) ) ,
  IF( DATE( 2000 , MONTH( Birthdate ) , DAY( Birthdate ) ) <= DATE( 2000 , MONTH( TODAY() ) , DAY( TODAY() ) ),
     YEAR (Today()) - YEAR ( Birthdate ),
     YEAR (Today()) - YEAR ( Birthdate ) -1 ),
  null)


Learn more about list of functions available in Siebel here: https://docs.oracle.com/cd/B40099_02/books/ToolsDevRef/ToolsDevRef_Operators8.html

and Full list of salesforce functions are here: https://help.salesforce.com/articleView?id=customize_functions.htm&type=5


2 comments :

  1. But coming to think of it, shouldn't a modern CRM have a built in function which can take a DOB and return age ? Why should developers still right such functions ?

    It is 2020.

    ReplyDelete
  2. Alright, both CRM should have it out of the box age field. Siebel 0, salesforce 0.

    ReplyDelete