Help with UI Builder update record

robmstahl1
Tera Contributor

Hey there Community,

 

I am finishing up my NextGen cohort with a project where we are building an application. It may not be the most or right way to do it, but instead of using a typical form, I am trying to use a button to update a record with the current user's information. I have a table that has a field to assign a user. I currently have the button updating a client state with the record's Sys ID and also executing the data resource update record. In the picture, you'll see my table, the client state parameter and the field value, which I have set to the field I want to 'User Assigned is (dynamic) Me.' I have played around with the record field using different input methods and searched lots of forums for utilization of the update record, but I can't seem to figure it out. Any help would be awesome.

UpdateRecord.jpg

1 ACCEPTED SOLUTION

Kevin83
ServiceNow Employee
ServiceNow Employee

Update record doesn't seem to work well with dymanic values.

When you switch over to script more you'll see something like this:

Screenshot 2024-10-09 at 4.45.20 PM.png


The data broker doesn't know how to process assigned_toDYNAMIC...

Instead I think you need a script like this one:

/**
* @Param {params} params
* @Param {api} params.api
* @Param {any} params.event
*/
function evaluateEvent({api, event}) {
	return {
		table: "incident",
		recordId: api.state.currentRecord,
		templateFields: "assigned_to=" + api.context.session.user.sys_id,
		useSetDisplayValue: null
	};
}

View solution in original post

3 REPLIES 3

robmstahl1
Tera Contributor

Not sure how to edit my post, so I'll post a reply.

It took me a minute, but I figured out that 'is (dynamic)' is not suitable for the Update Record data resource. I was able to determine that I needed to use is '@context.session.user.sys_id'. However, the same trick doesn't work with the list format. I'd like users to add themselves to a user list by clicking a different button and using the Update Record resource, but none of the field values I'm trying are working.

Kevin83
ServiceNow Employee
ServiceNow Employee

Update record doesn't seem to work well with dymanic values.

When you switch over to script more you'll see something like this:

Screenshot 2024-10-09 at 4.45.20 PM.png


The data broker doesn't know how to process assigned_toDYNAMIC...

Instead I think you need a script like this one:

/**
* @Param {params} params
* @Param {api} params.api
* @Param {any} params.event
*/
function evaluateEvent({api, event}) {
	return {
		table: "incident",
		recordId: api.state.currentRecord,
		templateFields: "assigned_to=" + api.context.session.user.sys_id,
		useSetDisplayValue: null
	};
}

I didn't use script, but I did add in the context piece and it worked! However, now when I try to apply the same logic to add the user's name to a list field, it won't work. I tried using the script you posted, but it didn't work. Any more suggestions? If not, I'll have to go with something completely different.