Adding two duration fields

uma17
Tera Guru

Hi,

Can anyone let me know how to add two or more duration fields.

Thanks

Uma

1 ACCEPTED SOLUTION

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi Uma,



After spending some good amount of time on your req, Here is the working solution.


Create a client script :


var dur1 = g_form.getValue('u_dur1');


var dur2 = g_form.getValue('u_dur2');


var ga = new GlideAjax('HelloWorld');


ga.addParam('sysparm_name','helloWorld');


ga.addParam('sysparm_user_dur1', dur1);


ga.addParam('sysparm_user_dur2', dur2);


ga.getXML(HelloWorldParse);



function HelloWorldParse(response) {


    var answer = response.responseXML.documentElement.getAttribute("answer");


    alert(answer);


g_form.setValue('u_dur3',answer);


}


Script Include :


Name : HelloWorld


Client Callable : True


var HelloWorld = Class.create();


HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {


  helloWorld: function() {


  var result = 'true';


  var dur1 = this.getParameter('sysparm_user_dur1');


  var dur2 = this.getParameter('sysparm_user_dur2');


  var x = new GlideDuration(dur1).getNumericValue();


  var y = new GlideDuration(dur2).getNumericValue();


  var total = x + y;


  var tota11 = new GlideDuration();


  tota11.setNumericValue(total);




  return tota11.getDurationValue();



  },



  _privateFunction: function() { // this function is not client callable



}




});



Please change the column name and naming conventions after round of testing.


I have tested it and it is working fine at my end. Please let me know the outcome.


View solution in original post

14 REPLIES 14

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Can you please paste the complete script here.


getTotalRestoretime: function() {


     


  var interParam1 = this.getParameter('sysparm_dt1');


  var interParam2 = this.getParameter('sysparm_dt2');


  var interParam3 = this.getParameter('sysparm_dt3');


  var dur = new DurationCalculator();


  gs.log("First Parameter " + gs.interParam1.dateNumericValue());


  gs.log("First Parameter " + interParam1.dateNumericValue());


      dur = gs.interParam1.dateNumericValue() + gs.interParam2.dateNumericValue() + gs.interParam3.dateNumericValue();


  gs.log("Restore calculation " + dur);


      return dur;



      },


I tried the options



dur = interParam1.dateNumericValue() + interParam2.dateNumericValue() + interParam3.dateNumericValue();


dur =   interParam1 + interParam2 + interParam3;


Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi Uma,



After spending some good amount of time on your req, Here is the working solution.


Create a client script :


var dur1 = g_form.getValue('u_dur1');


var dur2 = g_form.getValue('u_dur2');


var ga = new GlideAjax('HelloWorld');


ga.addParam('sysparm_name','helloWorld');


ga.addParam('sysparm_user_dur1', dur1);


ga.addParam('sysparm_user_dur2', dur2);


ga.getXML(HelloWorldParse);



function HelloWorldParse(response) {


    var answer = response.responseXML.documentElement.getAttribute("answer");


    alert(answer);


g_form.setValue('u_dur3',answer);


}


Script Include :


Name : HelloWorld


Client Callable : True


var HelloWorld = Class.create();


HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {


  helloWorld: function() {


  var result = 'true';


  var dur1 = this.getParameter('sysparm_user_dur1');


  var dur2 = this.getParameter('sysparm_user_dur2');


  var x = new GlideDuration(dur1).getNumericValue();


  var y = new GlideDuration(dur2).getNumericValue();


  var total = x + y;


  var tota11 = new GlideDuration();


  tota11.setNumericValue(total);




  return tota11.getDurationValue();



  },



  _privateFunction: function() { // this function is not client callable



}




});



Please change the column name and naming conventions after round of testing.


I have tested it and it is working fine at my end. Please let me know the outcome.


Thank you Pradeep...Perfect answer.


Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Thanks Uma for the confirmation.


I am glad I can be helpful to you.