SharePoint 2019 CSOM not saving FieldUserValue

249 Views Asked by At

I'm facing a strange Issue when I'm inserting or updating an item in SharePoint2019 list which contains a user column the save completes with no errors but the user column always have empty value,

below is my code

            context.Load(context.Web, web => web.Lists);
            await context.ExecuteQueryAsync();

            List RiskList = context.Web.Lists.GetByTitle("Risks");

            context.Load(RiskList);
            context.Load(RiskList, r => r.Fields);
            await context.ExecuteQueryAsync();

            ListItem listItem = RiskList.GetItemById(projectRisks.Id);
            List<ListItemFormUpdateValue> listItemFormUpdateValue = new List<ListItemFormUpdateValue>();
            if (projectRisks.AssignedTo.HasValue)
            {
                listItem["AssignedTo"] =  new FieldUserValue() { LookupId = projectRisks.AssignedTo.Value };
            }
            if (projectRisks.Owner.HasValue)
            {
                User OwnerUser = context.Web.SiteUsers.GetById(projectRisks.Owner.Value);
                context.Load(OwnerUser);
                await context.ExecuteQueryAsync();
                listItem["Owner"] = new FieldUserValue() { LookupId = OwnerUser.Id };
            }
            listItemFormUpdateValue.Add(new ListItemFormUpdateValue() { FieldName = "Category", FieldValue = GetSPSelectedChoiceValue(context, RiskList, "Category", projectRisks.CategoryName).Result });
            listItemFormUpdateValue.Add(new ListItemFormUpdateValue() { FieldName = "Status", FieldValue = GetSPSelectedChoiceValue(context, RiskList, "Status", projectRisks.StatusName).Result });
            listItem["Contingency_x0020_plan"] = projectRisks.ContingencyPlan;
            listItem["Cost"] = projectRisks.Cost;
            listItem["Cost_x0020_Exposure"] = string.Empty;
            listItem["Description"] = projectRisks.Description;
            listItem["DueDate"] = projectRisks.DueDate;
            listItem["Exposure"] = projectRisks.Exposure;
            listItem["Impact"] = projectRisks.Impact;
            listItem["Mitigation_x0020_plan"] = projectRisks.MitigationPlan;
            listItem["Probability"] = projectRisks.Probability;
            listItem["Title"] = projectRisks.Name;
            listItem.ValidateUpdateListItem(listItemFormUpdateValue, false, string.Empty);
            listItem.Update();
            await context.ExecuteQueryAsync();

as you can see in the AssignTo and in Owner Columns no mater how I try to save the users values the list will take the default value which is null.

I have made sure that there is values in the assigned to and Owner properties and I have tried using the ListItemFormUpdateValue but with no luck.

Thanks in advance

0

There are 0 best solutions below