@arobertson , that form loaded on the right side looks like an embedded widget. Try to identify that widget and check the input parameters(most likely sys_id) used to render the form. 

 

Then you can assign the value of that parameter to 

$scope.page.g_scratchpad.<name you desire> in the client controller. You can then try to access this scratchpad variable in your catalog client script.
 
Not sure if this will work but you can try.

GeraldKirby
Kilo Sage

@arobertson ,

 

Im not sure if i understand correctly, but your requirement is that when you clicked any item from that list it should open the catalog item for that record?

Please see above post where I have explained it a bit more.

arobertson
Tera Guru

Just an update as ServiceNow provided a few recommendations:

 

Here are some recommendations that we can suggest:

Recommendation 1. Retrieving the UNT number from the DOM, since the widget does not change, you can use the widget's sys_id as class name by prefixing v and get the innerText of the DOM element, and parse the text to get the UNT number

Recommendation 2. You can also customize the widget to get the data object from the parent widget and fill the form

Recommendation 3. In this, you can submit the catalog item beforehand when the UNT gets created, and assign a task to the requested user to accept the assets. In this, a task is assigned to the user, and you can create custom actions like "I accept assets" with all variables shown, which can be shown on the task from the RITM for the Todo page.

Docs:

https://www.servicenow.com/docs/bundle/yokohama-employee-service-management/page/product/employee-ce...

 

 

View solution in original post

We have gone for option 1 at the moment using this code to get all the text.

 

// Get all text from widget "To-dos task Line Item".
    var text = top.document.getElementsByClassName('va4716c8f53d3130030f3ddeeff7b1288')[0].innerText;
 
We then parse that text to get the UNT number.