2013-10-01 72 views
0

我目前正在使用Windows应用程序来将数据从旧系统迁移到SharePoint列表中。使用客户端对象模型添加列表项

为此,我访问客户端对象模型并使用它创建新的列表项并更新相关字段值。

我遇到的问题是一些字段值更新,有些则不更新。它看起来好像某些选择字段不保留传递的值...即使标题字段不保留该值。调查显示,有问题的选择字段是单选按钮和多个值选项的组合。

我使用的代码如下。任何人都可以阐明为什么会发生这些问题?

谢谢。

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

回答

0

我结束了由工作如何运行SP服务器本身上的应用程序时,使用服务器对象模型得到解决这个问题。

它涉及使用SPFarm.Local,SPFarm.Services,SPWebApplication访问服务器,然后访问该站点。

相关问题