2013-10-01 68 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訪問服務器,然後訪問該站點。

相關問題