1

I'm currently working on a Windows application to be used to migrate data from a legacy system into a SharePoint list.

To do this I am accessing the Client Object Model and using it to create new list items and update the relevant field values.

The issue I am having is that some of the field values update and some do not. It appears as though some of the Choice fields are not retaining the passed values...even the Title field is not retaining the value. Investigation has revealed that the Choice fields with issues are a combination of radio buttons and multiple value choices.

The code I am using is below. Can anyone shed some light on why these issues are occurring?

Thanks.

CODE:

 strDtls = Split(strData, "~^") Dim inf As New ListItemCreationInformation() Dim itmProfile As ListItem = lstProfile.AddItem(inf) itmProfile.Update() ctx.ExecuteQuery() strID = itmProfile.ID.ToString itmProfile.Item("Title") = strDtls(0) itmProfile.Item("Category") = strDtls(1) itmProfile.Item("Jurisdiction") = "Federal" itmProfile.Item("Other_x0020_Jurisdiction") = strDtls(3) itmProfile.Item("Practice_x0020_Group") = "Banking & Finance" dteTmp = Date.ParseExact(strDtls(5),"dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture) itmProfile.Item("Last_x0020_Reviewed_x0020_Date") = dteTmp itmProfile.Item("Format") = "Tab through" itmProfile.Item("Format_x0020_specification") = strDtls(7) If strDtls(8) = "" then usrTmp = oWeb.EnsureUser("ORG\55276") else usrTmp = oWeb.EnsureUser("ORG\44778") End If ctx.Load(usrTmp) ctx.ExecuteQuery() usrVal1 = New FieldUserValue() usrVal1.LookupId = usrTmp.Id itmProfile.Item("Author0") = usrVal1 If strDtls(9) = "" then usrTmp2 = oWeb.EnsureUser("ORG\55276") else usrTmp2 = oWeb.EnsureUser("ORG\" + strDtls(9)) End If ctx.Load(usrTmp2) ctx.ExecuteQuery() usrVal2 = New FieldUserValue() usrVal2.LookupId = usrTmp2.Id itmProfile.Item("Partner_x0020_Responsible") = usrVal2 itmProfile.Item("NewColumn1") = strDtls(10) itmProfile.Item("Engagement_x0020_type") = strDtls(11) itmProfile.Item("NewColumn10") = strDtls(12) itmProfile.Item("Audit_x0020_frequency") = strDtls(13) itmProfile.Item("Royalty") = strDtls(14) itmProfile.Item("Audit_x0020_frequency_x0020_appr") = strDtls(15) dteTmp = Date.ParseExact(strDtls(16),"dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture) itmProfile.Item("Next_x0020_review_x0020_due") = dteTmp itmProfile.Item("Archive") = strDtls(17) itmProfile.Item("Drafted_x0020_by") = strDtls(18) itmProfile.Item("Partner_x0020_signoff") = strDtls(19) itmProfile.Item("Style_x0020_guide_x0020_complian") = strDtls(20) itmProfile.Item("Client") = strDtls(21) itmProfile.Item("Form_x0020_Details") = strDtls(22) itmProfile.Item("Description") = strDtls(24) itmProfile.Item("Reference") = strDtls(25) itmProfile.Update() ctx.Load(itmProfile) ctx.ExecuteQuery() 

1 Answer 1

1

I ended up getting around this by working out how to use the server object model when running the application on the SP server itself.

It involved accessing the server using SPFarm.Local, SPFarm.Services, SPWebApplication and then accessing the site.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.