How to return the value in script include and add that in the reference qualifier in the table

Samiksha2
Mega Sage

Hi All,

I have written the below code. Output is coming correctly. How should I return the sys_id so that it should visible in the reference qualifier field.

getProduct: function() {

        var accounts = current.account;
        var platform = current.u_platform;
        var subProd = current.getDisplayValue("u_sub_products");
 
        var ur = new GlideRecord("u_sub_product");
        ur .addEncodedQuery('u_sub_product=' + subProd + '^u_platform=' + platform);
        ur .query();
        while (ur .next()) {
            var user_array = [];
            var product_array = user_array.push(ur.u_product);
		}
            var dee = new GlideRecord("sn_install_base_sold_product");
            dee.addEncodedQuery("u_platform=" + platform + "^account=" + accounts);
            dee.query();
            while (dee.next()) {
                var prod_array = [];
                var arr = prod_array.push(dee.name);

                if (JSON.stringify(product_array) == JSON.stringify(arr)) {
                    gs.log("OUTPUT RESULTS" + dee.sys_id);
					

                } else {
                    gs.log("FALSE RESULT");
                }
            }
        return dee.sys_id;
       
    },

The return value should populate in the Product field(reference to Sold Product table (sn_install_base_sold_product).

 

Please help me.


Thanks,
Sam

1 ACCEPTED SOLUTION

Hi @Samiksha2 ,

 

In the above you are comparing the jason,  try comparing the arrays and also print the product array and the arr and attach the screen shot of the result,

 

 

 

getProduct: function() {

    var accounts = current.account;
    var platform = current.u_platform;
    var subProd = current.getDisplayValue("u_sub_products");

    var ur = new GlideRecord("u_sub_product");
    var user_array = [];

    ur.addEncodedQuery('u_sub_product=' + subProd + '^u_platform=' + platform);
    ur.query();
    while (ur.next()) {
        user_array.push(ur.u_product.toString());
    }
    var dee = new GlideRecord("sn_install_base_sold_product");
    dee.addEncodedQuery("u_platform=" + platform + "^account=" + accounts);
    dee.query();
    var arrForSysID = [];
    var prod_array = [];
    while (dee.next()) {

        prod_array.push(dee.name.toString());

        function areArraysEqual(array1, array2) {
            for (var i = 0; i < array2.length; i++) {
                if (array1.indexOf(array2[i]) === -1) {
                    return false;
                }
            }
            return true;
        }

        var result = areArraysEqual(user_array, prod_array);
        if (result == true || result == 'true') {
            gs.log("OUTPUT RESULTS" + dee.sys_id);
            arrForSysID.push(dee.getValue('sys_id'));

        } else {
            gs.log("FALSE RESULT");
        }
    }
    gs.info('Product array ' + user_array);
    gs.info('arr ' + prod_array);
    gs.info('Final sysId ' + arrForSysID);
    return 'sys_idIN' + arrForSysID;

},

 

 

 

please share the logs,

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Regards,

Swathi Sarang

View solution in original post

23 REPLIES 23

@Samiksha2 and i just observed you are using current in the

script include, so are you passing current object in the reference qualifier ?

 

var accounts = current.account;
    var platform = current.u_platform;
    var subProd = current.getDisplayValue("u_sub_products");

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Regards,

Swathi Sarang

Thank you so much  @swathisarang98  ðŸ˜Š
It is working as expected.

Thanks,
Sam

Sandeep Rajput
Tera Patron
Tera Patron

@Samiksha2 Try the following and see if it works.

 

getProduct: function() {

    var accounts = current.account;
    var platform = current.u_platform;
    var subProd = current.getDisplayValue("u_sub_products");

    var ur = new GlideRecord("u_sub_product");
    ur.addEncodedQuery('u_sub_product=' + subProd + '^u_platform=' + platform);
    ur.query();
    var product_array = [];
    while (ur.next()) {
        product_array.push(ur.getValue('u_product'));
    }
    var dee = new GlideRecord("sn_install_base_sold_product");
    dee.addEncodedQuery("u_platform=" + platform + "^account=" + accounts);
    dee.query();
    var prod_array = [];
    var sysIDArray = [];
    while (dee.next()) {
        prod_array.push(dee.getValue('name'));
        sysIDArray.push(dee.getValue('sys_id'));
    }
    if (JSON.stringify(product_array) == JSON.stringify(prod_array)) {
        return 'sys_idIN' + sysIDArray.toString();
    } else {
        return '';
    }
},

Hi @Sandeep Rajput ,

It is returning all product values. I add the logs to check the sysid.  two values are giving in the logs.

Samiksha2_0-1724913077480.png

 

Thanks.
Sam