0

I am looking for a way to update a column of type "Person or Group" using HTTP Request of type REST.

Thank you.

1 Answer 1

1

Here is a Rest call sample to update person field in List named "MyList" and Person field named "Person1":

   $.ajax 
        ({
        // _spPageContextInfo.webAbsoluteUrl - will give absolute URL of the site where you are running the code.
        // You can replace this with other site URL where you want to apply the function
        url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('MyList')/items(10)",
        type: "POST",        
        headers: 
        { 
            // Accept header: Specifies the format for response data from the server.
            "Accept": "application/json;odata=verbose",
            //Content-Type header: Specifies the format of the data that the client is sending to the server
            "Content-Type": "application/json;odata=verbose",
            // IF-MATCH header: Provides a way to verify that the object being changed has not been changed since it was last retrieved.
            // "IF-MATCH":"*", will overwrite any modification in the object, since it was last retrieved.
             "IF-MATCH": "*",
            //X-HTTP-Method:  The MERGE method updates only the properties of the entity , while the PUT method replaces the existing entity with a new one that you supply in the body of the POST
            "X-HTTP-Method": "MERGE",
            // X-RequestDigest header: When you send a POST request, it must include the form digest value in X-RequestDigest header
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
         data: JSON.stringify({
         __metadata:
            {
              // Format of the "type" is: SP.Data.<<ListName>>ListItem. First character of the <<ListName>> should be in Capital
              type: "SP.Data.MyListListItem"
            },
            Title: "Updated Title",
            Person1Id: 9 
        }),
        success: function(data, status, xhr) 
        { 
            console.log("Success");     
        }, 
        error: function(xhr, status, error) 
        { 
            console.log("Failed");
        } 
    });

Person1Id:9 is used to specify the user id which need to be set, you could find all the site users and users id with this request:

/_api/web/siteusers
2
  • It is working, that's what i was missing, the use of UserId. I was trying to do it with the Claims or UPN, the flow works and successfully, but nothing updated in the list. but now with the userId everything is working. I appreciate it. Commented Dec 4, 2019 at 9:53
  • 1
    Glad to hear that, you are welcome. :)
    – Jerry
    Commented Dec 4, 2019 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.