ErrorServer JavaScript error Method "toString" called on incompatible object.

raja_5
Tera Expert

Hi Experts,

 

I have cloned OOTB widget : Knowledge Bases Browse

im getting error :  ErrorServer JavaScript error Method "toString" called on incompatible object.

in line number 2 of below script, Please suggest,

 

var kbService = new global.CopyKBPortalService();
        options.knowledge_bases = options.knowledge_bases || String(kbService.getServicePortalKnowledgeBases($sp.getPortalRecord().url_suffix)) || "";
        data.isMobile = kbService.isMobile();
        data.result = kbService.getMyKnowledgeBases(options.order_by,options.knowledge_bases);
        var kbCount = data.result.length;
        var articleCount = 0;
        var socailqaCount = 0;

 

1 ACCEPTED SOLUTION

raja_5
Tera Expert
calling KBPortalServiceImpl script include in CopyKBPortalService instead of CopyKBPortalServiceImpl resolved the issue

View solution in original post

9 REPLIES 9

Community Alums
Not applicable

Hi @raja_5 ,

The incompatible object error happens when you try to work with Java objects that do not have toString functions.

 

Hi @Community Alums ,

 

Could you please suggest what changes needs to be done in the above ?

Ankur Bawiskar
Tera Patron
Tera Patron

@raja_5 

the function getServicePortalKnowledgeBases returns an array

 

AnkurBawiskar_0-1681731089243.png

 

so you can check if array is empty or has zero length

var kbService = new global.CopyKBPortalService();
options.knowledge_bases = options.knowledge_bases || kbService.getServicePortalKnowledgeBases($sp.getPortalRecord().url_suffix).length == 0 || "";
data.isMobile = kbService.isMobile();
data.result = kbService.getMyKnowledgeBases(options.order_by,options.knowledge_bases);
var kbCount = data.result.length;
var articleCount = 0;
var socailqaCount = 0;

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

Hi @Ankur Bawiskar ,

 

Getting the same error