Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Duration Type field auto conversion

Anubhav24
Mega Sage

Hi All,

 

We have duration type field on the form , and if the user enters more than 24 hours in the hours field it automatically converts to 1 day , for example : "Days 00 Hours 25 Minutes 00 Seconds 00" now if I save the record it would automatically convert to "Days 01 Hours 01 Minutes 00 Seconds 00".

My requirement is that if user enters more than 8 hours under hours field it should throw an error saying please enter hours less than or equal to 8.

But whenever I tried to obtain the value of the field it always converts the hours to equivalent number of days if hours are entered greater than 24. I tried in both from front end in Client Script and backend in Business Rule as well.

 

Any ideas on how to get around this.

7 REPLIES 7

Martin Friedel
Mega Sage

 

Hello,

 

try this onChange Client Script code, replace <duratiion field> with your field name:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '')
      return;
   
   var duration = g_form.getIntValue('<duration field>');
   
   if (duration > 8 * 60 * 60 ) {
      g_form.showFieldMsg('<duration field>', getMessage('Maximum allowed duration is 8 hours'), 'error');
   }
}

Also you can reuse the code logic in your onSubmit Client Script.

 

If my answer helped you, please mark it as correct and helpful, thank you 👍
Martin

@Martin Friedel ,

This will not help as I will be getting value in seconds and I will never know how many days user entered along With hours.

Now I understand. Unmark my answer as correct as it doesn't meet your requirement.
I don't know how to achieve it.