Script Include

Update list of records from multi-row update set(Vendor Engagement Details)


getEngagementDetailsUsingPAN: function() { var dataArray = []; var Engagement_Data = {}; var VendorPAN = this.getParameter('sysparam_vndr_PAN'); var Eng_Details = new GlideRecord("sn_vdr_risk_asmt_vendor_engagement"); Eng_Details.addQuery('notes', VendorPAN.toString()); Eng_Details.query(); while (Eng_Details.next()) { Engagement_Data = {}; Engagement_Data.engagement_name_pan = Eng_Details.sys_id.toString(); Engagement_Data.engagement_status_pan = Eng_Details.getDisplayValue("status"); Engagement_Data.engagement_type_pan = Eng_Details.getDisplayValue("type"); Engagement_Data.risk_rating_pan = Eng_Details.getDisplayValue("risk_rating"); dataArray.push(Engagement_Data); } return JSON.stringify(dataArray); },


var ga = new GlideAjax('sn_vdr_risk_asmt.vendor_serach_client'); //calling script include ga.addParam('sysparm_name', 'getEngagementDetails'); //Script include function ga.addParam('sysparam_vndr_id', newValue); //On change Value ga.getXML(setUserDet); function setUserDet(response) { var answer = response.responseXML.documentElement.getAttribute("answer"); //alert("Final Answer"+answer); g_form.setValue('engagement_details', answer); // Add your Variable set Name }



---------------------------------------------------------------------------------

Set TimeZone for Service Offerings to create the SLA based on Service Offerings


Decode SLA timezone choice values (set via com.snc.sla.timezone.source property) into actual timezone values.

Called by TaskSLA()


var SLATimezone = Class.create();


// decode com.snc.sla.timezone.source into real field values

// (saves an eval(), and allows more flexible choices based upon task record type)

SLATimezone.source = function(source, /* task_sla */ gr, taskGr) {

if (!taskGr || taskGr.sys_id.nil())

taskGr = gr.task.getRefRecord();


switch(source) {

// The caller's time zone

case 'task.caller_id.time_zone':

return (SLATimezone._getCaller(taskGr)).time_zone;

// The SLA definition's time zone

case 'sla.timezone':

return gr.sla.timezone;

// The CI's location's time zone

case 'task.cmdb_ci.location.time_zone':

return taskGr.cmdb_ci.location.time_zone;

// The task's location's time zone

case 'task.location.time_zone':

return taskGr.location.time_zone;

// The caller's location's time zone (old and new property values)

case 'task.caller_id.location.u_time_zone':

case 'task.caller_id.location.time_zone':

return (SLATimezone._getCaller(taskGr)).location.time_zone;

           // The tasks service offerings location timezone 

case 'task.service_offering.location.time_zone':

            return taskGr.service_offering.location.time_zone;

default:

return null;

}

};


SLATimezone._getCaller = function(task) {

var task_type = task.getRecordClassName();


switch(task_type) {

case 'incident':

return task.caller_id;

case 'sc_request':

return task.requested_for;

case 'sc_req_item':

return task.requested_for ? task.requested_for : task.request.requested_for;

case 'sc_task':

return task.request_item.requested_for ? task.request_item.requested_for : task.request_item.request.requested_for;

case 'change_request':

return task.requested_by;

case 'change_task':

return task.change_request.requested_by;

case 'kb_submission':

return task.submitted_by;

case 'grc_activity':

return task.requested_by;

case 'wm_order':

return task.caller;

case 'hr_case':

return task.opened_for;

case 'hr_case_operations':

return task.opened_for;

case 'hr_case_payroll':

return task.opened_for;

case 'hr_case_performance':

return task.opened_for;

case 'hr_case_talent_management':

return task.opened_for;

case 'hr_case_total_rewards':

return task.opened_for;

case 'hr_case_workforce_admin':

return task.opened_for;

case 'sn_customerservice_case' :

return task.contact;

default:

if (new GlidePluginManager().isActive('com.sn_hr_core')){

if(sn_hr_core.hr.TABLE_CASE_EXTENSIONS.indexOf(task_type)>-1)

return task.opened_for;

return task.opened_by;

}

};


SLATimezone.prototype = {

initialize : function() {

},

type:'SLATimezone'

};



Set Responsibility Category


var IncResponsibilityCategory = Class.create();

IncResponsibilityCategory.prototype = {

    initialize: function() {

    },

ResFilter: function(){

var subcat = current.subcategory; 

var inc = new GlideRecord('u_dazn_data_lookup');

inc.addQuery('u_dependancy', subcat);

inc.addEncodedQuery('u_active=true^u_field=8a69386d87fb30106be8a9383cbb35dd^u_table=a22e6bdb87243010a52786670cbb35cf');

inc.query();

var finalList = [];

while(inc.next()){

finalList.push(inc.getValue('sys_id'));

}

return 'sys_idIN' + finalList.join(',');

},

    type: 'IncResponsibilityCategory'

};







GetServiceOffering


function GetServiceOffering(service) {

gs.info('SI getting called' + service);

    var arr = [];

    

    var gr = new GlideRecord('service_offering');

    gr.addQuery('parent', service);

    gr.query();

    while (gr.next()) {

        arr.push(gr.sys_id.toString());

    }

gs.info('Value returned is ' + arr);

    return 'sys_idIN' + arr.toString();

}



When we want to have additional recipient from Email Client:

Ex: DAZN USA service offerings have the multiple email address from β€œstakeholders” fields and I want to include these email address from Email Client template.


var IncImpactedServices = Class.create();

IncImpactedServices.prototype = {

initialize: function() {

},

getUsers:function(incidentSysId){

var arr = [];

var jr = new GlideRecord("task_service_offering");

jr.addQuery("task", incidentSysId);

jr.query();

while(jr.next()) {

arr.push(jr.service_offering.stakeholders.toString());

}

return arr.toString();

},

type: 'IncImpactedServices'

};





Get Group Members

var groupMember = Class.create();

groupMember.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getMember: function(grmember) {

        var mbrs = "";

        var gr = new GlideRecord("sys_user_group");

        gr.get("name", grmember);


        var grmember = new GlideRecord('sys_user_grmember');

        grmember.addQuery('group', gr.sys_id);

        grmember.query();

        while (grmember.next()) {

            mbrs += grmember.user.user_name.toString();

            if (grmember.hasNext())

                mbrs += ",";

        }


        return mbrs;


    },


    type: 'groupMember'

});


















































































































































































IncImpactedServices


var IncImpactedServices = Class.create();

IncImpactedServices.prototype = {

initialize: function() {

},

getUsers:function(incidentSysId){

var arr = [];

var gr = new GlideRecord("incident");

gr.addQuery("sys_id", incidentSysId);

gr.query();

if(gr.next()) {

var rec = new GlideRecord('cmdb_ci_service'); 

rec.addQuery('sys_id', 'IN', gr.u_impacted_services);

rec.query();

while(rec.next()){

// arr.push(rec.managed_by.email.toString());

arr.push(rec.u_stakeholder_dl.toString());

// arr.push(rec.u_stakeholder_dl.toString());

}

}

return arr.toString();

// return arr.getDisplayValue();

},

type: 'IncImpactedServices'

};




ContractTermValue


var ContractTermValue = Class.create();

ContractTermValue.prototype = Object.extendsObject(AbstractAjaxProcessor, {


    getMonths: function(){

var start = new GlideDateTime();

        var stop = new GlideDateTime();

start.setDisplayValue(this.getParameter('sysparm_start'), "dd/MM/yyyy");     

        stop.setDisplayValue(this.getParameter('sysparm_end'), "dd/MM/yyyy");

var duration = GlideDateTime.subtract(start, stop);

var months = duration.getNumericValue()/2592000000;

var totalMonths = Math.ceil(months) + 'Months';

return totalMonths;

},

        // type: 'ContractTermValue'

});



IncRefQualsCI


var IncRefQualsCI = Class.create();

IncRefQualsCI.prototype = {

    initialize: function() {

    },

compFilter: function(chg){

var svc = chg.business_service; //IT Service

var ci = chg.cmdb_ci; //Technical CI

var compArr = [];

if(svc != ''){

var rel = new GlideRecord('cmdb_rel_ci');

rel.addQuery('parent', svc);

rel.addQuery('child.sys_class_name', 'u_cmdb_ci_service_component');

rel.query();

while(rel.next()){

compArr.push(rel.child.sys_id.toString());

}

} else if (ci != '') {

var rel2 = new GlideRecord('cmdb_rel_ci');

rel2.addQuery('parent.sys_class_name', 'u_cmdb_ci_service_component');

rel2.addQuery('child', ci);

rel2.query();

while (rel2.next())

{

compArr.push(rel2.parent.sys_id.toString());

}

}

if(compArr.length > 0){

return 'sys_idIN' + compArr.toString();

} else {

// return 'u_applicable_forLIKEincident';

return ;

}

},

techCIFilter: function(chg){

var svc = chg.business_service;

var comp = chg.u_service_component;

var ciArr = [];

//If a Service is present, find any CIs relating to the Service

if(svc != ''){

var rel7 = new GlideRecord('cmdb_rel_ci');

rel7.addQuery('parent', svc);

rel7.addQuery('child.u_service_hierarchy', 'false');

rel7.addEncodedQuery('install_status!=7');

rel7.query();

while (rel7.next()) {

ciArr.push(rel7.child.sys_id.toString());

}

}

//If a Service is present, find any CIs relating to the Service

if (comp != '') {

var rel6 = new GlideRecord('cmdb_rel_ci');

rel6.addQuery('parent', comp);

rel6.addQuery('child.u_service_hierarchy', 'false');

rel6.addEncodedQuery('install_status!=7');

rel6.query();

while (rel6.next()) {

ciArr.push(rel6.child.sys_id.toString());

}

//Else, find CIs relating to any Service Components that relate to the selected Service (if one has been selected)

} else if(svc != ''){

//Array of components related to selected Service

var compArr = [];

var rel3 = new GlideRecord('cmdb_rel_ci');

rel3.addQuery('parent', svc);

rel3.addQuery('child.sys_class_name', 'u_cmdb_ci_service_component');

rel3.addEncodedQuery('install_status!=7');

rel3.query();

while (rel3.next()) {

compArr.push(rel3.child.sys_id.toString());

}

//For each component related to the selected service, find the related CIs and push to ciArr

for(var i = 0; i < compArr.length; i++){

var rel4 = new GlideRecord('cmdb_rel_ci');

rel4.addQuery('parent', compArr[i]);

rel4.addQuery('child.u_service_hierarchy', 'false');

rel4.addEncodedQuery('install_status!=7');

rel4.query();

while (rel4.next()) {

ciArr.push(rel4.child.sys_id.toString());

}

}

}

if(ciArr.length > 0){

return 'sys_idIN' + ciArr.toString();

} else {

// return 'sys_idANYTHING';

return'install_status!=7';

}

},

    type: 'IncRefQualsCI'

};







UserValidation


var UserValidation = Class.create();

UserValidation.prototype = Object.extendsObject(AbstractAjaxProcessor, {


    checkGroupMembership: function() {

    var userID = this.getParameter('sysparm_userID');

    var groupName = this.getParameter('sysparm_groupName');

    var thisUser = gs.getUser().getUserByID(userID);

 //   gs.log("TM ===> " + thisUser + " | " + groupName, "Q: isGrpMember Ajax"); 

    if (thisUser.isMemberOf(groupName)) {

    return true; 

    } else {

    return false;

    }

    },

});


Catelog Client script: function onLoad() {

    var ga = new GlideAjax('UserValidation');

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

ga.addParam('sysparm_userID', g_user.userID);

   ga.addParam('sysparm_groupName', 'app_SN_Fulfiller-FibaMedia');

  //  ga.addParam('sysparm_group_name', 'requested_for');

    ga.getXML(getResponse);


    function getResponse(response) 

{

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

        if(answer == 'true'){

//Set the Language variable here

//Make sure the Variable name (i.e., Language) and the Choice value (i.e., English) is correct

g_form.setValue('currency', 'EUR');

g_form.setValue('language', 'English');

g_form.setValue('per', 'Day');

g_form.setValue('various_countries', "true");

g_form.setValue('business_unit', 'Perform Media Services Ltd');

// g_form.setValue('start_date', nowDateTime());

// var t = new Date();

// g_form.setValue('start_date', getDate());

}

    }

   

}



BoxingVariableref


var BoxingVariableref = Class.create();

BoxingVariableref.prototype = Object.extendsObject(AbstractAjaxProcessor, {


countryFilter: function(sport, date) {

var countryArr = [];

//create GlideDateTimes for the start / end (easier than the dategenerate) 

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);

//add by mike todd on 09-04-19 to deal with differences in timezones that fixtures are loaded in

//show fixtures a day either side of the user selected date

sDT.addDaysUTC(-1);

eDT.addDaysUTC(1);


//get unique countries

if (date != "") {

var fix = new GlideAggregate('u_sporting_events');

fix.addQuery('u_sport', sport);

// fix.addQuery('u_ruleset', ruleset);

fix.addQuery('u_date', '>=', sDT);

fix.addQuery('u_date', '<', eDT);

fix.groupBy('u_country');

fix.query();

//gs.log("RC=" + fix.getRowCount(), "MG");


while (fix.next()) {

//gs.log("in while=" + fix.u_country.sys_id.toString(), "MG");

countryArr.push(fix.u_country.sys_id.toString());

}

return 'sys_idIN' + countryArr.toString();

}

},

fixtureFilter: function(sport, date, country) {

var fixtureArr = [];

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);

//add by mike todd on 09-04-19 to deal with differences in timezones that fixtures are loaded in

//show fixtures a day either side of the user selected date

sDT.addDaysUTC(-1);

eDT.addDaysUTC(1);


if (date != "") {

var fix = new GlideRecord('u_sporting_events');

fix.addQuery('u_sport', sport);

// fix.addQuery('u_ruleset', ruleset);

fix.addQuery('u_country', country);

fix.addQuery('u_date', '>=', sDT.getValue());

fix.addQuery('u_date', '<', eDT.getValue());

fix.query();


while (fix.next()) {

fixtureArr.push(fix.sys_id.toString());

}

return 'sys_idIN' + fixtureArr.toString();

}

},

    type: 'BoxingVariableref'

});



CurrentDateTime


var CurrentDateTime = Class.create();

CurrentDateTime.prototype = Object.extendsObject(AbstractAjaxProcessor, {

nowDateTime: function () 

return gs.nowDateTime(); 

});



FixtureRefQual


var FixtureRefQual = Class.create();

FixtureRefQual.prototype = Object.extendsObject(AbstractAjaxProcessor, {


countryFilter: function(sport, ruleset, date) {

var countryArr = [];

//create GlideDateTimes for the start / end (easier than the dategenerate) 

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);


//get unique countries

if (date != "") {

var fix = new GlideAggregate('u_cmdb_ci_fixture');

fix.addQuery('u_sport', sport);

fix.addQuery('u_ruleset', ruleset);

fix.addQuery('start_date', '>=', sDT);

fix.addQuery('start_date', '<', eDT);

fix.groupBy('u_country');

fix.query();

//gs.log("RC=" + fix.getRowCount(), "MG");


while (fix.next()) {

//gs.log("in while=" + fix.u_country.sys_id.toString(), "MG");

countryArr.push(fix.u_country.sys_id.toString());

}

return 'sys_idIN' + countryArr.toString();

}

},

fixtureFilter: function(sport, ruleset, date, country) {

var fixtureArr = [];

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);


if (date != "") {

var fix = new GlideRecord('u_cmdb_ci_fixture');

fix.addQuery('u_sport', sport);

fix.addQuery('u_ruleset', ruleset);

fix.addQuery('u_country', country);

fix.addQuery('start_date', '>=', sDT.getValue());

fix.addQuery('start_date', '<', eDT.getValue());

fix.query();


while (fix.next()) {

fixtureArr.push(fix.sys_id.toString());

}

return 'sys_idIN' + fixtureArr.toString();

}

},

fixtureTour: function(sport, ruleset, date, country) {

var tourArr = [];

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);


if (date != "") {

var fix = new GlideRecord('u_cmdb_ci_fixture');

fix.addQuery('u_sport', sport);

fix.addQuery('u_ruleset', ruleset);

fix.addQuery('u_country', country);

fix.addQuery('start_date', '>=', sDT.getValue());

fix.addQuery('start_date', '<', eDT.getValue());

fix.query();


while (fix.next()) {

tourArr.push(fix.u_tournament);

}

return 'sys_idIN' + tourArr;

}

},

    type: 'FixtureRefQual'

});





FixtureRefQuals


var FixtureRefQuals = Class.create();

FixtureRefQuals.prototype = Object.extendsObject(AbstractAjaxProcessor, {


countryFilter: function(sport, ruleset, date) {

var countryArr = [];

//create GlideDateTimes for the start / end (easier than the dategenerate) 

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);


//get unique countries

if (date != "") {

var fix = new GlideAggregate('u_cmdb_ci_fixture');

fix.addQuery('u_sport', sport);

fix.addQuery('u_ruleset', ruleset);

fix.addQuery('start_date', '>=', sDT);

fix.addQuery('start_date', '<', eDT);

fix.groupBy('u_country');

fix.query();

//gs.log("RC=" + fix.getRowCount(), "MG");


while (fix.next()) {

//gs.log("in while=" + fix.u_country.sys_id.toString(), "MG");

countryArr.push(fix.u_country.sys_id.toString());

}

return 'sys_idIN' + countryArr.toString();

}

},

fixtureFilter: function(sport, ruleset, date, country) {

var fixtureArr = [];

var sDT = new GlideDateTime(date);

var eDT = new GlideDateTime(sDT);

eDT.addDaysUTC(1);


if (date != "") {

var fix = new GlideRecord('u_cmdb_ci_fixture');

fix.addQuery('u_sport', sport);

fix.addQuery('u_ruleset', ruleset);

fix.addQuery('u_country', country);

fix.addQuery('start_date', '>=', sDT.getValue());

fix.addQuery('start_date', '<', eDT.getValue());

fix.query();


while (fix.next()) {

fixtureArr.push(fix.sys_id.toString());

}

return 'sys_idIN' + fixtureArr.toString();

}

},

    type: 'FixtureRefQuals'

});


Technicalciajax


var Technicalciajax = Class.create();

Technicalciajax.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getSvcComps: function() {

var itSvc = this.getParameter('sysparm_it_svc');

var rel = new GlideRecord('cmdb_rel_ci');

rel.addQuery('parent', itSvc);

rel.addQuery('child.sys_class_name', 'u_cmdb_ci_technical_ci');

rel.query();

if(rel.next()){

if(!rel.hasNext()){

return rel.child.sys_id.toString();

} else {

return;

}

}

},

getSvcsUp: function() {

var svcComp = this.getParameter('sysparm_svc_comp');

var rel = new GlideRecord('cmdb_rel_ci');

rel.addQuery('parent.sys_class_name', 'u_cmdb_ci_service_component');

rel.addQuery('child', svcComp);

rel.query();

if(rel.next()){

if(!rel.hasNext()){

return rel.parent.sys_id.toString();

} else {

return;

}

}

},

type: 'Technicalciajax'

});



To auto populate the service component and service based on technical CI



UFIDateTimeAJAX: Set UTC date and time


This script include is used for AJAX calls to manipulate GlideDateTime objects. Current primary use is to calculate and reformat the UTC values to be put in the UTC string fields on Incident.


var UFIDateTimeAJAX = Class.create();

UFIDateTimeAJAX.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getGMT: function(){

var dt = this.getParameter('sysparm_date_time');

var reformat = gs.getProperty('ufi.utc_date.reformat'); //Check if the date requires reformatting

var utc = new GlideDateTime(); //Initialize a new GlideDateTime object

utc.setDisplayValue(dt); //Set the GDT object to the date passed into the function. Done via setDisplayValue as being sent to the client

if(reformat == 'true'){ //If the date requires reformatting

utc = this.reformatDateTime(utc); //Call the reformatting function

}

return utc;

},

//This function is called by getGMT above and by the default value of the 'Incident start date' field on the Incident table

reformatDateTime: function(dt){

var dateFormat = gs.getProperty('ufi.utc_date.string_format'); //Get the defined format from sys prop

var newFormat = dt;

var utcDate = dt.getDate().getByFormat(dateFormat); //Get the date part of the GlideDateTime and set format according to sys prop

var utcTimeArr = dt.getTime().getValue().toString().split(' '); //This value will be displayed as 1970-01-01 with the time

newFormat = utcDate + ' ' + utcTimeArr[1]; //Put the date and time back together as a string and return

return newFormat;

},

type: 'UFIDateTimeAJAX'

});




Client Script: UFI - Set UTC Start

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

if (isLoading) {

return;

}

var ga = new GlideAjax('UFIDateTimeAJAX');

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

ga.addParam('sysparm_date_time', newValue);

ga.getXML(processResponse);

function processResponse(response) {

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

g_form.setValue('u_utc_start', answer);

}

}




Comments

Popular posts from this blog

Interview Questions

Exam Dumps