Not able to insert into Journal field through Glide Record in Service Catalog

vallamreddyvenu
Giga Contributor

Hi,

We are creating a service catalog in which we have a variable named comments that is mapped to "Journal Input" type. In the catalog client script we need to insert into the table using GlideRecord. But when i assign a value to the journal field, the script is not working. If i comment the line assigning value to Journal field, the script is working.

Below is the script.

var gr = new GlideRecord('u_requests');

  gr.initialize();

  gr.short_description = "Test Title";

  gr.description = "Test Description";

  gr.u_caller_id = "RequestedFor";

  gr.cmdb_ci = "Environment";

  gr.u_request_start_date = "05/16/2017";

  gr.comments= "Test Comments";

  //gr[comments].setJournalEntry(Comments);

  gr.u_product = "Product Name";

  gr.insert();

Can somebody please check my script above and correct the mistake that i am doing?

Thanks,

Venu

13 REPLIES 13

anurag92
Kilo Sage

Have you defined a Variable called Comments somewhere in code?



try this:


var Comments = "Test Comments";


gr[comments].setJournalEntry(Comments);


Chuck Tomasi
Tera Patron

GlideRecord on client scripts does not support all the methods available on the server. Are you able to refactor this to be part of a business rule or other server side code? If not, try using a GlideAjax call to pass the parameters to the server and create the record that way.



Docs: Client Scripts


Docs: GlideForm


Docs: GlideAjax


Client Script Best Practices - ServiceNow Wiki      


HI Chuck Tomasi,



Thanks for your reply.


I tried using the GlideAjax call inside the client script. Infact, the above script that i posted in my question, we are calling on OnSubmit of the catalog form. But, after refering to several post, i understood that we won't be able to use GlideAjax call on Onsubmit catalog client script. It seems like all the ways are closed for me to insert value to a Journal type field on Onsubmit client script.



Thanks,


Venu


What is the underlying requirement here? It feels like we are focused on a possible solution when we don't know what the problem actually is. If you're saving that information at submission type, why not use a before business rule and update the current record? One of the documented best practices is avoid using client scripts when a server script will work.



Reference:


ServiceNow Wiki: Technical Best Practices