SSIS 內建無 SharePoint 元件,需安裝 CodePlex 社群開源的 SharePoint List Source / Destination。本文記錄安裝步驟、VS 工具箱整合、雙向同步 (讀取 List 寫入 SQL、篩選 SQL 寫入新 List) 完整流程。
元件下載與安裝
- 下載頁:CodePlex Release (專案已遷移至 GitHub,搜尋
SSIS SharePoint List Adapter)。
- 版本對應:
- VS 2008 (BIDS) → 下載 v1.0 (檔名含 2008)。
- VS 2010/2012 (SSDT) → 下載 v2.0 / v3.0 Beta。
- 執行安裝程式 (需管理員權限),完成後重開 Visual Studio。
工具箱整合 (VS 2008 示範)
- 資料流程設計面右鍵 → Choose Items。
- SSIS Data Flow Items 索引標籤,勾選 SharePoint List Source、SharePoint List Destination。
- 確定後,工具箱 General 區將出現兩新圖示。
案例一:讀取 SharePoint List 寫入 SQL Server
- 資料流程:SharePoint List Source → OLE DB Destination。
- Source 設定:
- Site URL:https://sp-site/
- List Name:ConfigParameters
- View Name:All Items (可指定視圖篩選欄位)。
- 認證:Windows 整合驗證或指定帳號。
- Destination 對應欄位寫入 SQL 表
dbo.ConfigParams。
案例二:SQL 篩選資料寫入新 SharePoint List
- 來源:OLE DB Source,SQL 查詢
SELECT * FROM dbo.Orders WHERE OrderDate >= DATEADD(day,-7,GETDATE())。
- 目的:SharePoint List Destination。
- Site URL、List Name:RecentOrders (需預先在 SP 建立同欄位 List)。
- Batch Size:建議 100~500,平衡效能與記憶體。
- 欄位對應:自動比對同名欄位,手動修正型別不符項目。
注意事項與限制
- 僅支援舊版 .asmx Web Services,不支援 SharePoint Online (O365) REST/OData 端點;雲端環境請改用 Script Component 呼叫 CSOM/Graph API。
- 大量寫入 (超過 5000 列) 易觸發 SP 節流,建議分批、加入延遲或使用
Lists.asmx UpdateListItems 批次 SOAP。
- 欄位型別對應表:
SP Number → SQL decimal/float
SP DateTime → SQL datetime2 (注意時區)
SP Lookup → 需手動解析 ID;#Value 格式。
- 錯誤處理:元件無內建錯誤輸出,需在資料流程加入 Script Component 捕獲例外並寫入錯誤日誌表。