Error - There is a javascript error in your browser console - Service portal

Jyothi76
Tera Contributor

Hi @Team,

We are migrating FSM to WSD[Workplace Case Management] and FSM is in "Global scope" and WSD is in "workplace case" scope. Currently I am getting the error in the service portal, when I select the "Location" field in the portal form,

Script Include: FSM - Global
----------------------------------

var CSAssetInformation = Class.create();
CSAssetInformation.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    CSAssetDetails: function() {

        var csfacility = new GlideRecord("alm_facility");
        csfacility.addQuery("sys_id", this.getParameter('sysparm_id'));
        csfacility.query();
        if (csfacility.next()) {
            var results = {};

            results.category = csfacility.model_category.toString();
            results.subcategory = csfacility.model.toString();
            results.campus = csfacility.u_campus.toString();
            //gs.log("Campus:"+results.campus);
            results.building = csfacility.u_building.toString();
            results.level = csfacility.u_level.toString();
            results.location = csfacility.location.toString();
            //gs.log("Location Edited:"+results.location);
            results.assettype = csfacility.u_cost_centre.toString();
            results.usagefor = csfacility.u_usage_for.toString();

            results.description = csfacility.u_asset_description.toString();
            results.assetis = csfacility.u_this_asset_is.toString();

            results.group = csfacility.u_assignment_group.toString();
            results.supplier = csfacility.u_supplier_name.toString();
            results.brand = csfacility.u_brand.toString();
            results.type = csfacility.u_type_model.toString();
            results.colour = csfacility.u_colour.toString();
            results.warranty = csfacility.u_warranty_expiry_date.toString();
            results.status = csfacility.u_status_id.toString();
            results.quantity = csfacility.quantity.toString();
            results.company = csfacility.company.toString();
            results.installation = csfacility.u_installation_date.toString();

            results.account = csfacility.u_account_code.toString();
            results.po = csfacility.u_po_no.toString();
            results.invoice = csfacility.invoice_number.toString();
            results.purchase = csfacility.purchase_date.toString();
            results.price = csfacility.cost.toString();

            return JSON.stringify(results);
        }

    },
    CSAssetLocationDetails: function() {

        var loc = new GlideRecord("cmn_location");
        loc.addQuery("u_rst_name", this.getParameter('sysparm_id'));
        loc.query();
        if (loc.next()) {
            var results1 = {};

            results1.building = loc.u_building_wing.toString();
            results1.level = loc.u_floor.toString();

            return JSON.stringify(results1);

        }

    },

    type: 'CSAssetInformation'
});

1. Catalog Client Scripts: In FSM
-------------------------
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var assetSearch = g_form.getValue("v_campus_asset_search");

    var assetInformation = new GlideAjax("CSAssetInformation");
    assetInformation.addParam("sysparm_name", 'CSAssetDetails');
    assetInformation.addParam("sysparm_id", assetSearch);
    assetInformation.getXML(csasset);

}

function csasset(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
   
    var returnedData = JSON.parse(answer);
    //g_form.addInfoMessage("Searched the Assets");
    g_form.setValue("v_campus_asset_category", returnedData.category);
    g_form.setValue("v_campus_asset_sub_category", returnedData.subcategory);

    g_form.setValue("v_campus_asset_campus", returnedData.campus);
    //g_form.setValue("v_campus_asset_location", returnedData.location);
    g_form.setValue("v_campus_asset_building", returnedData.building.toLowerCase());
    g_form.setValue("v_campus_asset_level", returnedData.level.toLowerCase());
    g_form.setValue("v_campus_asset_asset_type", returnedData.assettype.toLowerCase());
    g_form.setValue("v_campus_asset_usage_for",returnedData.usagefor.toLowerCase());

    g_form.setValue("v_campus_asset_asset_description", returnedData.description);
    g_form.setValue("v_campus_asset_this_asset_is", returnedData.assetis.toLowerCase());

    g_form.setValue("v_campus_asset_assignment_group", returnedData.group);
    g_form.setValue("v_campus_asset_supplier_name", returnedData.supplier);
    g_form.setValue("v_campus_asset_brand", returnedData.brand);
    g_form.setValue("v_campus_asset_type_model", returnedData.type);
    g_form.setValue("v_campus_asset_colour", returnedData.colour);
    g_form.setValue("v_campus_asset_warranty_expiry_date", returnedData.warranty);
    g_form.setValue("v_campus_asset_status_id", returnedData.status.toLowerCase());
    g_form.setValue("v_campus_asset_quantity", returnedData.quantity);
    g_form.setValue("v_campus_asset_company", returnedData.company);
    g_form.setValue("v_campus_asset_installation_date", returnedData.installation);
    g_form.setValue("v_campus_asset_account_code", returnedData.account);
    g_form.setValue("v_campus_asset_po_no", returnedData.po);
    g_form.setValue("v_campus_asset_invoice_number", returnedData.invoice);
    g_form.setValue("v_campus_asset_purchase_date", returnedData.purchase);
    g_form.setValue("v_campus_asset_purchase_price", returnedData.price);

    g_form.setReadOnly("v_campus_asset_category", true);
    g_form.setReadOnly("v_campus_asset_sub_category", true);
    g_form.setReadOnly("v_campus_asset_campus", true);
    g_form.setReadOnly("v_campus_asset_asset_type", true);
    g_form.setReadOnly("v_campus_asset_assignment_group", true);
    g_form.setReadOnly("v_campus_asset_this_asset_is", true);
    g_form.setReadOnly("v_campus_asset_asset_description", true);
    g_form.setReadOnly("v_campus_asset_supplier_name", true);
    g_form.setReadOnly("v_campus_asset_brand", true);
    g_form.setReadOnly("v_campus_asset_type_model", true);
    g_form.setReadOnly("v_campus_asset_colour", true);
    g_form.setReadOnly("v_campus_asset_warranty_expiry_date", true);
    g_form.setReadOnly("v_campus_asset_quantity", true);
    g_form.setReadOnly("v_campus_asset_company", true);
    g_form.setReadOnly("v_campus_asset_installation_date", true);
    g_form.setReadOnly("v_campus_asset_account_code", true);
    g_form.setReadOnly("v_campus_asset_po_no", true);
    g_form.setReadOnly("v_campus_asset_invoice_number", true);
    g_form.setReadOnly("v_campus_asset_purchase_date", true);
    g_form.setReadOnly("v_campus_asset_purchase_price", true);

    var selection = g_form.getValue("v_campus_asset_i_would_like_to");
    if (selection == "loan") {
        g_form.setReadOnly("v_campus_asset_building", true);
        g_form.setReadOnly("v_campus_asset_level", true);
        g_form.setReadOnly("v_campus_asset_location", true);
        g_form.setReadOnly("v_campus_asset_usage_for", true);
        g_form.setReadOnly("v_campus_asset_status_id", true);
        g_form.setReadOnly("v_campus_asset_usage_for",true);
    } else if (selection == "edit") {
        g_form.setReadOnly("v_campus_asset_building", false);
        g_form.setReadOnly("v_campus_asset_level", false);
        g_form.setReadOnly("v_campus_asset_location", false);
        g_form.setReadOnly("v_campus_asset_usage_for", false);
        g_form.setReadOnly("v_campus_asset_status_id", false);
    }




}
2. 
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    //Type appropriate comment here, and begin script below
    if (!isLoading && newValue != '') {
       
        var locationSelected = g_form.getValue('v_campus_asset_location');
       
        var assetLocation = new GlideAjax("CSAssetInformation");
        assetLocation.addParam("sysparm_name", 'CSAssetLocationDetails');
        assetLocation.addParam("sysparm_id", locationSelected);
        assetLocation.getXML(assetDetails);
    }

}

function assetDetails(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
   
    var returnedData = JSON.parse(answer);
   
    g_form.setValue('v_campus_asset_building',returnedData.building);
    g_form.setValue('v_campus_asset_level',returnedData.level);
}
=======================================================
Script Include - WSD
---------------------------
var CSAssetInformationWSD = Class.create();
CSAssetInformationWSD.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    CSAssetDetails: function() {

        var csfacility = new GlideRecord("alm_facility");
        csfacility.addQuery("sys_id", this.getParameter('sysparm_id'));
        csfacility.query();
        if (csfacility.next()) {
            var results = {};

            results.category = csfacility.model_category.toString();
            results.subcategory = csfacility.model.toString();
            results.campus = csfacility.u_campus.toString();
            //gs.log("Campus:"+results.campus);
            results.building = csfacility.u_building.toString();
            results.level = csfacility.u_level.toString();
            results.location = csfacility.location.toString();
            //gs.log("Location Edited:"+results.location);
            results.assettype = csfacility.u_cost_centre.toString();
            results.usagefor = csfacility.u_usage_for.toString();

            results.description = csfacility.u_asset_description.toString();
            results.assetis = csfacility.u_this_asset_is.toString();

            results.group = csfacility.u_assignment_group.toString();
            results.supplier = csfacility.u_supplier_name.toString();
            results.brand = csfacility.u_brand.toString();
            results.type = csfacility.u_type_model.toString();
            results.colour = csfacility.u_colour.toString();
            results.warranty = csfacility.u_warranty_expiry_date.toString();
            results.status = csfacility.u_status_id.toString();
            results.quantity = csfacility.quantity.toString();
            results.company = csfacility.company.toString();
            results.installation = csfacility.u_installation_date.toString();

            results.account = csfacility.u_account_code.toString();
            results.po = csfacility.u_po_no.toString();
            results.invoice = csfacility.invoice_number.toString();
            results.purchase = csfacility.purchase_date.toString();
            results.price = csfacility.cost.toString();

            var jsonResult = JSON.stringify(results);
            return jsonResult;
        }

    },
    CSAssetLocationDetails: function() {
       

        var loc = new GlideRecord("cmn_location");
        loc.addQuery("u_rst_name", this.getParameter('sysparm_id'));
        loc.query();
        if (loc.next()) {
            var results1 = {};

            results1.building = loc.u_building_wing.toString();
            results1.level = loc.u_floor.toString();

            return JSON.stringify(results1);

        }

    },

    type: 'CSAssetInformationWSD'
});

Client Scripts: In WSD
-------------------------
1. 
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var assetSearch = g_form.getValue("v_campus_asset_search");

    var assetInformation = new GlideAjax("CSAssetInformationWSD");
    assetInformation.addParam("sysparm_name", 'CSAssetDetails');
    assetInformation.addParam("sysparm_id", assetSearch);
    assetInformation.getXMLAnswer(csasset);

}

function csasset(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
   
    var returnedData = JSON.parse(answer);
    //g_form.addInfoMessage("Searched the Assets");
    g_form.setValue("v_campus_asset_category", returnedData.category);
    g_form.setValue("v_campus_asset_sub_category", returnedData.subcategory);

    g_form.setValue("v_campus_asset_campus", returnedData.campus);
    //g_form.setValue("v_campus_asset_location", returnedData.location);
    g_form.setValue("v_campus_asset_building", returnedData.building.toLowerCase());
    g_form.setValue("v_campus_asset_level", returnedData.level.toLowerCase());
    g_form.setValue("v_campus_asset_asset_type", returnedData.assettype.toLowerCase());
    g_form.setValue("v_campus_asset_usage_for",returnedData.usagefor.toLowerCase());

    g_form.setValue("v_campus_asset_asset_description", returnedData.description);
    g_form.setValue("v_campus_asset_this_asset_is", returnedData.assetis.toLowerCase());

    g_form.setValue("v_campus_asset_assignment_group", returnedData.group);
    g_form.setValue("v_campus_asset_supplier_name", returnedData.supplier);
    g_form.setValue("v_campus_asset_brand", returnedData.brand);
    g_form.setValue("v_campus_asset_type_model", returnedData.type);
    g_form.setValue("v_campus_asset_colour", returnedData.colour);
    g_form.setValue("v_campus_asset_warranty_expiry_date", returnedData.warranty);
    g_form.setValue("v_campus_asset_status_id", returnedData.status.toLowerCase());
    g_form.setValue("v_campus_asset_quantity", returnedData.quantity);
    g_form.setValue("v_campus_asset_company", returnedData.company);
    g_form.setValue("v_campus_asset_installation_date", returnedData.installation);
    g_form.setValue("v_campus_asset_account_code", returnedData.account);
    g_form.setValue("v_campus_asset_po_no", returnedData.po);
    g_form.setValue("v_campus_asset_invoice_number", returnedData.invoice);
    g_form.setValue("v_campus_asset_purchase_date", returnedData.purchase);
    g_form.setValue("v_campus_asset_purchase_price", returnedData.price);

    g_form.setReadOnly("v_campus_asset_category", true);
    g_form.setReadOnly("v_campus_asset_sub_category", true);
    g_form.setReadOnly("v_campus_asset_campus", true);
    g_form.setReadOnly("v_campus_asset_asset_type", true);
    g_form.setReadOnly("v_campus_asset_assignment_group", true);
    g_form.setReadOnly("v_campus_asset_this_asset_is", true);
    g_form.setReadOnly("v_campus_asset_asset_description", true);
    g_form.setReadOnly("v_campus_asset_supplier_name", true);
    g_form.setReadOnly("v_campus_asset_brand", true);
    g_form.setReadOnly("v_campus_asset_type_model", true);
    g_form.setReadOnly("v_campus_asset_colour", true);
    g_form.setReadOnly("v_campus_asset_warranty_expiry_date", true);
    g_form.setReadOnly("v_campus_asset_quantity", true);
    g_form.setReadOnly("v_campus_asset_company", true);
    g_form.setReadOnly("v_campus_asset_installation_date", true);
    g_form.setReadOnly("v_campus_asset_account_code", true);
    g_form.setReadOnly("v_campus_asset_po_no", true);
    g_form.setReadOnly("v_campus_asset_invoice_number", true);
    g_form.setReadOnly("v_campus_asset_purchase_date", true);
    g_form.setReadOnly("v_campus_asset_purchase_price", true);

    var selection = g_form.getValue("v_campus_asset_i_would_like_to");
    if (selection == "loan") {
        g_form.setReadOnly("v_campus_asset_building", true);
        g_form.setReadOnly("v_campus_asset_level", true);
        g_form.setReadOnly("v_campus_asset_location", true);
        g_form.setReadOnly("v_campus_asset_usage_for", true);
        g_form.setReadOnly("v_campus_asset_status_id", true);
        g_form.setReadOnly("v_campus_asset_usage_for",true);
    } else if (selection == "edit") {
        g_form.setReadOnly("v_campus_asset_building", false);
        g_form.setReadOnly("v_campus_asset_level", false);
        g_form.setReadOnly("v_campus_asset_location", false);
        g_form.setReadOnly("v_campus_asset_usage_for", false);
        g_form.setReadOnly("v_campus_asset_status_id", false);
    }




}

2. 
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    //Type appropriate comment here, and begin script below
    if (!isLoading && newValue != '') {
       
        var locationSelected = g_form.getValue('v_campus_asset_location');
       
        var assetLocation = new GlideAjax("CSAssetInformationWSD");
        assetLocation.addParam("sysparm_name", 'CSAssetLocationDetails');
        assetLocation.addParam("sysparm_id", locationSelected);
        assetLocation.getXMLAnswer(assetDetails);
    }

}

function assetDetails(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
   
    var returnedData = JSON.parse(answer);
   
    g_form.setValue('v_campus_asset_building',returnedData.building);
    g_form.setValue('v_campus_asset_level',returnedData.level);
}

Could you please help me on this?
This is urgent and I need to complete it by today EOD.


Thanks,
Jyothi






2 REPLIES 2

Ankur Bawiskar
Tera Patron
Tera Patron

@Jyothi76 

what debugging have you done from your side and what's the analysis?

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

-O-
Kilo Patron
Kilo Patron

That is some m. f. ugly script you have there; how can you sleep at night knowing that that exists?

 

But back to the original problem, maybe you have cross scope access problems?
E.g. you write:

> Script Include - WSD
> ---------------------------
var CSAssetInformationWSD = Class.create();
CSAssetInformationWSD.prototype = Object.extendsObject(AbstractAjaxProcessor, {

where if "Script Include - WSD" means that this is in a scope called WSD, then the declaration of the property is wrong; it should be:

 

CSAssetInformationWSD.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

 

notice the global scope identifier before AbstractAjaxProcessor.