- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2018 01:15 AM
Hi Experts,
I would to have your support for my issue. I'm creating a business rule to get data into another table for reports purpose. I want to calculate the duration between two dates that I have in my table. I'm currently using gs.dateDiff(); but seems the output isn't correct. Can any one please help me on this?
eg: opendate is "28-Aug-2018" // get from creation date
supdate is "30-Aug-2018" // I get from supply team approval date
Result = 14 // which is the number of days but in fact it doesn't correct. It's only 2 days, so the result I need to get 2.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
if(current.u_vendor_aging_r_s =='Supply Completed'){
// Query from sysapproval and insert to the table
var recSysapproval = new GlideRecord('sysapproval_approver');
recSysapproval.addQuery('sysapproval', current.sys_id);
recSysapproval.addQuery('state', "Approved");
recSysapproval.orderByDesc('sys_created_on');
recSysapproval.setLimit(1);
recSysapproval.query();
while (recSysapproval.next()){
var grvendor = new GlideRecord('u_vendor_master_data_aging_report');
grvendor.initialize();
grvendor.u_tsc_number = current.sys_id;
grvendor.u_supply_appr_date = recSysapproval.sys_updated_on;
grvendor.u_supply_approver = recSysapproval.approver.getDisplayValue();
grvendor.u_company_code = current.variables.Company.getDisplayValue();
grvendor.u_vendor_name = current.variables.vendor_name.getDisplayValue();
grvendor.u_vendor_code = current.variables.vendor_code_by_TSC.getDisplayValue();
grvendor.u_currency = current.variables.Currency.getDisplayValue();
grvendor.u_type = current.variables.re_type.getDisplayValue();
grvendor.u_request_date = current.variables.re_date.getDisplayValue();
grvendor.insert();
gs.addInfoMessage('The record has been inserted to Table');
var opendate = current.u_request_date.getDisplayValue();
var supdate = grvendor.u_supply_appr_date.getGlideObject();
grvendor.u_aging_sup = gs.dateDiff(supdate.getDisplayValue(),opendate.getDisplayValue(),false);
grvendor.update();
gs.addInfoMessage('Effected the Aging');
}
})(current, previous);
Thanks for your support,
Cheng
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2018 02:10 AM
HI,
I am confused here with this var opendate = current.u_request_date.getDisplayValue();
from where u_request comes from.
Thanks,
Ashutosh

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2018 01:18 AM
May I know what are the values that you are getting in var opendate and var supdate ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2018 01:47 AM
Hi Ravi,
- opendate: I get from catalog variable which is request date "28-Aug-2018"
- supdate: I get from table sysapproval_approver which is an approval date of supply team which is "30-Aug-2018".
and I need to get a duration between these two dates, and store in u_aging_sup field which datatype is integer
Regards,
Cheng

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2018 02:01 AM
Try replacing grvendor.u_aging_sup = gs.dateDiff(supdate.getDisplayValue(),opendate.getDisplayValue(),false);
with
grvendor.u_aging_sup = gs.dateDiff(supdate,opendate,false);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2018 01:39 AM
Hi,
Are this variables Date type or dateTime type.
Thanks,
Ashutosh