3

我有一個SP 2010外部列表,其中填充了客戶名稱。該列表偶爾會在一天中更新。我想自動將新添加的名稱複製到另一個SP 2010列表中,當它更新或在設定的時間(每小時)時。自動將數據從SP2010外部列表複製到SP2010自定義列表

有沒有簡單的方法來做到這一點?如果沒有,至少有辦法做到這一點?

謝謝你的幫助。

回答

0

可以輕鬆創建工作流程。當新創建或更新項目時,可以觸發工作流程。工作流程可以將相同的項目創建到另一個列表中。

嘗試使用SharePoint設計器創建工作流,這很簡單。

希望這會有所幫助。 :)

+1

您無法在外部列表上創建工作流程 – 2013-02-05 16:22:48

6

不幸的是,外部列表不支持工作流程。所以工作流程不是一個解決方案。

要做到這一點的方法之一是創建一個自定義計時器作業來同步項目&配置以定期運行它。查看如何創建&註冊定製作業here的詳細信息。

但這種方法也有它自己的缺點:

  1. 它足夠複雜
  2. ,您將需要一個農場範圍的功能+ 接收登記工作。該 原因是, 你不能在內容 Web應用程序運行從代碼中 註冊自定義作業安全起見在 運行(這樣就不會網站集級別功能 接收器在工作 ),僅從代碼中央管理員應用
2

我會在SharePoint中構建一個Windows服務或定時作業,然後將兼容的ado.net連接器連接到我的進程。這樣您就可以在兩個列表之間複製或同步數據,就好像它們在普通SQL表所在的位置一樣。

private void example() 
{  
    // Fetch data from your left sharepoint 
    SharePointConnection leftConnection = new SharePointConnection(@" 
     Server=mysharepointserver.com; 
     Database=mysite/subsite 
     User=spuser; 
     Password=******; 
     Authentication=Ntlm; 
     TimeOut=10; 
     StrictMode=True; 
     RecursiveMode=RecursiveAll; 
     DefaultLimit=1000; 
     CacheTimeout=5"); 

    leftConnection.Open(); 

    string leftQuery = "SELECT * FROM LeftList"; 
    SharePointDataAdapter adapter = new SharePointDataAdapter(leftQuery, leftConnection); 

    DataTable dt = new DataTable(); 
    adapter.Fill(dt); 


    // Insert data in right sharepoint 
    SharePointConnection rightConnection = new SharePointConnection(@" 
     Server=anothersharepointserver.com; 
     Database=whateversite 
     User=spuser; 
     Password=******; 
     Authentication=Ntlm; 
     TimeOut=10; 
     StrictMode=True; 
     RecursiveMode=RecursiveAll; 
     DefaultLimit=1000; 
     CacheTimeout=5"); 

    rightConnection.Open(); 

    // build your rightQuery here 
    string rightQuery = "Insert into"... 

    SharePointCommand command = new SharePointCommand(rightQuery, rightConnection); 
    command.ExecuteNonQuery(); 

} 

你可以試試這個http://www.bendsoft.com/net-sharepoint-connector/。這個ado.net連接器使用SharePoint的API,所以你可以在第三臺機器上運行服務,只要它有訪問權限,你就可以。

有一些例子和HOWTO的在http://blog.bendsoft.com

0

你爲什麼要到外部數據複製到另一個目錄?這樣做的目的是什麼?對於你想要做的事,也許有更好的解決方案。

我之所以這樣說,是因爲您要複製數據並且可能會有點棘手,特別是如果您允許在兩個位置更新數據。

+0

Hi Doug - 基本上我們有一個30年前爲紙張世界設計的EMR系統。該系統適用於保存患者數據,但不能用於通過系統追蹤患者進展情況。這是非常有限的,不能改變,真的是唯一的選擇。幸運的是,數據庫可以很容易地訪問,我們正在使用它來將新的患者信息植入我們開發的SP跟蹤系統。我們不是在兩個地方複製數據,只是將最基本的信息用於另一個地方。我們可以重新輸入患者信息,但效率更高。 – Ben 2011-04-24 19:52:05

+0

嗨,本,聽起來像你可以利用BCS將數據帶入SharePoint並用它來滿足你的需求。 – 2011-04-25 15:26:55

0

我會使用MS訪問,以便從一個表中複製數據,並將其推送到另一個表中。我廣泛地使用了Access/Sharepoint,並且它有點兒錯誤,但它通常起作用。它可能會崩潰 - 但對於90%的小桌子,嘿,你可以做到這一點!

相關問題