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()