由於偏執Sharepoint管理員,我們有需要克隆SOAP API自己的現有列表。是否有一種(簡單)的方法來實現這一點?我們已經有了一個基於Python的API來訪問SOAP上的列表項和字段描述 - 我不確定這是否足以創建一個1:1的副本...有更好的更直接的方法嗎?通過SOAP克隆列表(定義和項目)?
回答
有沒有一種「簡單」的方法來做到這一點。您必須從Web服務中檢索架構,並在將其實例化之前對其進行修改。它取決於克隆操作的目標位置,但是不管目的地如何,您都必須以某種程度更改架構。
除此之外,它取決於如何定製列表。如果您使用的是自定義內容類型,那麼您也必須克隆它們,同樣也會遇到同樣的困難。如果它具有自定義視圖,則必須對它們執行相同的技巧。如果你有自己的觀點的自定義表單,我認爲你會受到影響。我不知道有什麼方法從Web服務界面獲取這些表單。
我不同意,有相當稱職的集成組件將什麼將這個任務轉換成一個簡單的sql到sql同步工作。 – 2011-04-06 20:30:11
@Trikks:我很肯定本說的是克隆整個列表......不只是複製數據。目前尚不清楚OP在談論什麼。 – 2011-04-06 21:16:38
@Trikks:是的 - 那裏有備份和遷移工具,但是基於問題的上下文(他提到Python和Web服務),我認爲他想要編寫自定義代碼來傳輸(通過複製)列表(模式+視圖+數據)到任意位置。這不是微不足道的。 – 2011-04-07 17:35:55
克隆列表最簡單的方法是將列表保存爲模板(在sharepoint的列表設置中)幷包含它的內容。這樣你就可以得到一個「列表模板」,你可以下載並安裝你想要的任何地方。
通過另一個系統克隆列表數據是一項完全的其他任務,但並非不可能。我使用Camelot .NET Connector for SharePoint(http://www.bendsoft.com/net-sharepoint-connector/)在幾個SharePoint安裝之間使用PHP複製數據。
SharePoint安裝的向外界面是一個非常簡單的WCF服務。在示例
public string ExecuteScalar(string sql)
{
try
{
using (SharePointConnection connection = new SharePointConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sharepoint_sales"].ConnectionString))
{
connection.Open();
using (SharePointCommand command = new SharePointCommand(sql, connection))
{
var returnValue = command.ExecuteScalar();
if (returnValue != null)
{
return returnValue.ToString();
} else {
return null;
}
}
}
}
catch (Exception e)
{
//add your own exception handling
return null;
};
}
public bool ExecuteNonQuery(string sql)
{
try
{
using (SharePointConnection connection = new SharePointConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sharepoint_sales"].ConnectionString))
{
connection.Open();
using (SharePointCommand command = new SharePointCommand(sql, connection))
{
command.ExecuteNonQuery();
return true;
}
}
}
catch (Exception e)
{
//add your own exception handling
return false;
};
}
要從PHP世界到SharePoint的代碼中插入東西可以是這個樣子
$client = new SoapClient("http://wcf.labs.trikks.com/Camelot.svc?wsdl");
$sql = array('sql' => "INSERT INTO contactform (title,email,company,message)
VALUES ('Name','[email protected]','Company','A test message!')");
$post = $client->ExecuteNonQuery($sql);
echo($post->ExecuteNonQueryResult); // true (1) on success
所以,檢索和插入數據變得相當,好,簡單。
我可以寫一些示例.net服務來演示列表同步,如果它會幫助你。
- 1. 使用Jquery克隆列表項目
- 2. 在列表框中克隆項目c#
- 3. 通過克隆
- 4. 克隆列表項Jquery
- 5. 克隆一個目的是通過內部類定義
- 6. 「Meteorify」克隆項目
- 7. 克隆SVN項目
- 8. 通過bower.json克隆只有一個git項目子目錄
- 9. 克隆列表
- 10. 如何克隆,而阻力和隱藏克隆項目的jQuery
- 11. 克隆項目的錯誤
- 12. Mercurial:無法克隆項目
- 13. 錯誤:克隆項目
- 14. 克隆項目失敗
- 15. 從github克隆laravel項目
- 16. 如何克隆UCM項目?
- 17. jQuery的克隆項目
- 18. 克隆一個Laravel項目
- 19. 從git克隆Yii項目
- 20. PCL或克隆項目(MvvmCross)
- 21. 微風 - 克隆項目
- 22. Django South克隆項目
- 23. 從bitbucket克隆項目
- 24. 如何克隆Xcode項目?
- 25. 在Linux上通過ssh添加/克隆項目到/從git回購項目
- 26. 通過HTTP的Git克隆
- 27. Android的 - 通過克隆
- 28. 通過http克隆git包
- 29. 通過ftps的Git克隆
- 30. TFS2013 - 使用git克隆團隊項目的構建定義
SharePoint 2007或2010? – 2011-04-06 15:34:49
Sharepoint 2010 – 2011-04-06 15:38:10
有沒有一個原因,你不是通過創建一個列表模板通過UI或列表定義與功能和創建實例「克隆」? – 2011-04-06 15:53:01