Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-11-2022 04:59 AM
// As per your instruction I have used this syntax on my Onbefore transform map
var scriptInchw = new DataFilter().getDetails(user_sys_id); // Scroll down for the full script.
But it gives in all the records from the alm_hardware table, I just need records for the queried user, any light on this please ?
// This is my Script Include
var DataFilter = Class.create();
DataFilter.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getDetails: function(){
var obj = {};
obj.assettag = ''; // Asset Tag
obj.srlno = ''; // Serial Number
obj.modcat = ''; // Model Category
obj.dn = ''; // Display Name
obj.assgto = ''; // Assigned To
obj.inst = ''; // State
obj.subst = ''; // Substate
obj.cst = ''; // Cost
obj.loc = ''; // Location
obj.stroom = ''; // Stock Room
obj.config = ''; // Configuration Item
obj.mod = ''; // Model
obj.clas = ''; // Class
var sysId =this.getParameter('sysparm_sysId');
//var sysId = '00ad3d56db34bc40657ef92b5e9413c9'; // Pulls records for this user.
gs.log("sysId=" + sysId); // This print all the records from alm_hardware table.
var gr = new GlideRecord('alm_hardware');
gr.addQuery('assigned_to', sysId);
gr.query();
while(gr.next()){
if(obj.assettag == ''){
obj.assettag = gr.asset_tag.toString();
}
else{
obj.assettag = obj.assettag + ',' + gr.asset_tag.toString();
}
if(obj.srlno == ''){
obj.srlno = gr.serial_number.toString();
}
else{
obj.srlno = obj.srlno + ',' + gr.serial_number.toString();
}
if(obj.modcat == ''){
obj.modcat = gr.model_category.getDisplayValue();
}
else{
obj.modcat = obj.modcat + ',' + gr.model_category.getDisplayValue();
}
if(obj.dn == ''){
obj.dn = gr.display_name.toString();
}
else{
obj.dn = obj.dn + ',' + gr.display_name.toString();
}
if(obj.assgto == ''){
obj.assgto = gr.assigned_to.toString();
}
else{
obj.assgto = obj.assgto + ',' + gr.assigned_to.toString();
}
if(obj.inst == ''){
obj.inst = gr.install_status.getDisplayValue();
}
else{
obj.inst = obj.inst + ',' + gr.install_status.getDisplayValue();
}
if(obj.subst == ''){
obj.subst = gr.substatus.toString();
}
else{
obj.subst = obj.subst + ',' + gr.substatus.toString();
}
if(obj.cst == ''){
obj.cst = gr.cost.toString();
}
else{
obj.cst = obj.cst + ',' + gr.cost.toString();
}
if(obj.loc == ''){
obj.loc = gr.location.toString();
}
else{
obj.loc = obj.loc + ',' + gr.location.toString();
}
if(obj.stroom == ''){
obj.stroom = gr.stockroom.toString();
}
else{
obj.stroom = obj.stroom + ',' + gr.stockroom.toString();
}
if(obj.config == ''){
obj.config = gr.ci.getDisplayValue();
}
else{
obj.config = obj.config + ',' + gr.ci.getDisplayValue();
}
if(obj.mod == ''){
obj.mod = gr.model.getDisplayValue();
}
else{
obj.mod = obj.mod + ',' + gr.model.getDisplayValue();
}
if(obj.clas == ''){
obj.clas = gr.sys_class_name.toString();
}
else{
obj.clas = obj.clas + ',' + gr.sys_class_name.toString();
}
}
return JSON.stringify(obj);
},
type: 'DataFilter'
});
// This is my Onbefore Transform Map
(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {
// Check if this is an existing user, if userID was provided
var user_sys_id = '';
var user_login_id = '';
var user_location = source.u_location.toString();
if (source.u_emp_.toString() != ''){
var userGR = new GlideRecord('sys_user');
userGR.addQuery('employee_number', source.u_emp_.toString());
userGR.addQuery('active', true);
userGR.query();
if (userGR.next())
{
user_sys_id = userGR.sys_id;
user_login_id = userGR.user_name;
//user_location = userGR.location.name;
}
}
var cart = new sn_sc.CartJS();
var request =
{
'special_instructions' : '',
'requested_for' : 'xxxxxxxxxxxxxxx',
'delivery_address' : "",
};
var item =
{
'sysparm_id': 'yyyyyyyyyyyyyyyyyyyy',
'sysparm_quantity': '1',
'variables':{
'requested_for': 'xxxxxxxxxxxxxxxx',
'employee_name': user_sys_id.toString(),
'login': user_login_id.toString(),
'location': user_location.toString(),
'employee_name': source.u_name.toString(),
'company': source.u_company.toString(),
'title': source.u_title.toString(),
'employee_number': source.u_emp_.toString(),
'employee_manager': source.u_supv.toString(),
'last_working_day': source.u_last_day_worked.toString(),
}};
// Call Script Include
var scriptInchw = new DataFilter().getDetails(user_sys_id);
gs.log("scriptInchw-Test" + scriptInchw); // Print All records, I need to fetch records for the queried user.
var cartDetails = cart.addToCart(item);
var requestDetails = cart.submitOrder(request);
ignore = true;
})(source, map, log, target);