SharePoint 2010 工作流解决方案:将 SharePoint Designer 可重用工作流导入 Visual Studio...
在 SharePoint Designer 中創(chuàng)建的工作流(即,聲明性工作流)由 XML 語(yǔ)句組成,而非由代碼組成。 SharePoint Designer 2010 引入了可重用工作流,它們是可由 SharePoint 站點(diǎn)中的不同列表使用的可移植的聲明性工作流。
在 Visual Studio 2010 中創(chuàng)建的工作流(如順序工作流和狀態(tài)機(jī)工作流)稱(chēng)為“代碼工作流”。 代碼工作流由 XML 文件和代碼模塊組成,用戶可以在這些文件和模塊中自定義工作流的行為。
通過(guò) Visual Studio 2010,您可以導(dǎo)入在 SharePoint Designer 2010 中創(chuàng)建的可重用工作流,并將其轉(zhuǎn)換為代碼工作流,以便在 SharePoint 站點(diǎn)中使用。
創(chuàng)建目標(biāo) SharePoint 子站點(diǎn)
首先創(chuàng)建兩個(gè)新的 SharePoint 子站點(diǎn):一個(gè)用于承載來(lái)自 SharePoint Designer 的可重用工作流,另一個(gè)用于承載轉(zhuǎn)換后的工作流。?
? 2.?? 在“打開(kāi)站點(diǎn)”對(duì)話框中,瀏覽至要在其中創(chuàng)建工作流的 SharePoint 站點(diǎn),或者使用默認(rèn)值 http://系統(tǒng)名稱(chēng)/,然后單擊“打開(kāi)”。
3.在“子站點(diǎn)”部分中,單擊“新建”。
在“指定您的網(wǎng)站位置”框中,用 SPD1 替換 URL 中的“子網(wǎng)站”一詞,然后單擊“確定”。
這將在 SharePoint Designer 中打開(kāi)新的子站點(diǎn)。 關(guān)閉此 SharePoint Designer 實(shí)例并返回到第一個(gè)實(shí)例(首要站點(diǎn))。
重復(fù)上面步驟以創(chuàng)建第二個(gè)子站點(diǎn),這次將用 SPD2 替換 URL 中的“子網(wǎng)站”一詞。
創(chuàng)建 SharePoint Designer 可重用工作流
由于 SharePoint 不包括可用于此示例的任何可重用工作流,因此您將創(chuàng)建一個(gè)可重用工作流。在此簡(jiǎn)單工作流中,當(dāng)某個(gè)用戶在“任務(wù)”列表中輸入某個(gè)具有特定標(biāo)題的新任務(wù)時(shí),將向該用戶分配此任務(wù)。
?
???? 3.在“名稱(chēng)”框中,鍵入“SPD 任務(wù)工作流”。 在“內(nèi)容類(lèi)型”框中,單擊“任務(wù)”,再單擊“確定”。該工作流將在 SharePoint Designer 工作流設(shè)計(jì)器中打開(kāi)。
??? 4.確保選中步驟 1 并單擊功能區(qū)上的“條件”按鈕,然后從條件列表中選擇“如果當(dāng)前項(xiàng)目域等于值”。
這將添加名為“如果域等于值”的新條件
5.?????? 單擊“如果字段等于值”條件中的“域”鏈接。 單擊“標(biāo)題”
?? 單擊“如果字段等于值”條件中的“值”鏈接。 在框中輸入“新任務(wù)”。
條件語(yǔ)句現(xiàn)在顯示為“如果當(dāng)前項(xiàng):標(biāo)題等于新任務(wù)”。
6.單擊條件語(yǔ)句下面的行,再單擊功能區(qū)上的“操作”按鈕,然后從操作列表中選擇“設(shè)置當(dāng)前項(xiàng)目中的域”。
7.單擊“將域設(shè)置為值”操作中的“域”鏈接,然后選擇“分配對(duì)象”。
8.單擊“將域設(shè)置為值”操作中的“值”鏈接,從現(xiàn)有用戶和組的列表中選擇“創(chuàng)建當(dāng)前項(xiàng)目的用戶”,單擊“添加”按鈕,再單擊“確定”。
操作語(yǔ)句現(xiàn)在顯示為“將分配對(duì)象設(shè)置為當(dāng)前項(xiàng)目:創(chuàng)建者”。
?保存并部署可重用工作流
由于 Visual Studio 只能導(dǎo)入 .wsp 文件,因此必須先將可重用工作流另存為 .wsp 文件,并將其部署到 SharePoint,然后能將其導(dǎo)入 Visual Studio 中。
1.?????? 單擊 SharePoint Designer 頂部的“保存”按鈕保存您的進(jìn)度,然后單擊“發(fā)布”按鈕將工作流部署到 SharePoint 站點(diǎn)“SPD1”。
2.在導(dǎo)航窗格中單擊“工作流”。
3.單擊“可重用工作流”下的“SPD 任務(wù)工作流”。
4.在功能區(qū)中,單擊“另存為模板”,以將工作流另存為 .wsp 文件。
?
5.在瀏覽器中,打開(kāi)“SPD1”SharePoint 站點(diǎn),查看 SharePoint 中的 .wsp 文件。
6.在快速啟動(dòng)欄上單擊“庫(kù)”。
7.在“文檔庫(kù)”部分中單擊“網(wǎng)站資產(chǎn)”。
“SPD 任務(wù)工作流”文件將與其他站點(diǎn)資產(chǎn)一起列出。
8.在列表中單擊其名稱(chēng),這將顯示“文件下載”對(duì)話框。
9.在“文件下載”對(duì)話框中單擊“保存”按鈕,將 .wsp 文件保存到系統(tǒng)上。
?將 .wsp 文件導(dǎo)入到 Visual Studio 中
使用“導(dǎo)入可重用工作流”項(xiàng)目將 .wsp 文件導(dǎo)入到 Visual Studio 中。 此項(xiàng)目將工作流從一個(gè)可重用的聲明性工作流轉(zhuǎn)換為一個(gè)代碼工作流。 轉(zhuǎn)換工作流之后,您將使用代碼來(lái)修改其行為。
從 .wsp 文件導(dǎo)入工作流并進(jìn)行修改
1.在 Visual Studio 中,通過(guò)指向“文件”菜單上的“新建”并單擊“新建項(xiàng)目”,顯示“新建項(xiàng)目”對(duì)話框。
2.展開(kāi)“Visual C#”下的“SharePoint”節(jié)點(diǎn),然后單擊“2010”。
3.在“模板”窗格中單擊“導(dǎo)入可重用工作流”,將默認(rèn)的名稱(chēng)修改為“YunCode.Workflow.WorkflowImport”,再單擊“確定”。
?這將顯示“SharePoint 自定義向?qū)?/span>”。
4.在“指定用于調(diào)試的站點(diǎn)和安全級(jí)別”頁(yè)上,為您先前創(chuàng)建的第二個(gè) SharePoint 子站點(diǎn)輸入 URL:http://系統(tǒng)名稱(chēng)/SPD2。
5.在“此 SharePoint 解決方案的信任級(jí)別是什么?”部分中,保留選擇項(xiàng)為“部署為場(chǎng)解決方案”。
6.在“指定新項(xiàng)目源”頁(yè)上,瀏覽到系統(tǒng)上您先前保存 .wsp 文件的位置,然后單擊“下一步”。
7.這將顯示可導(dǎo)入的可重用工作流的列表。
8.在“選擇要導(dǎo)入的項(xiàng)”框中,選擇工作流“SPD 任務(wù)工作流”,然后單擊“完成”。
?完成導(dǎo)入操作后,將創(chuàng)建一個(gè)名為“YunCode.Workflow.WorkflowImport”的項(xiàng)目,其中包含一個(gè)名為“SPD_任務(wù)工作流FT”的工作流。 此文件夾中包含工作流的定義文件 Elements.xml 和工作流設(shè)計(jì)器文件 (.xoml)。 該設(shè)計(jì)器中包含兩個(gè)文件:規(guī)則文件 (.rules) 和代碼隱藏文件
9.由于“導(dǎo)入可重用工作流”不會(huì)導(dǎo)入已導(dǎo)入的工作流的關(guān)聯(lián)屬性值,因此您必須輸入這些值。 具體方法為:
????? a.在“解決方案資源管理器”中單擊“SPD_Workflow_TestFT”工作流項(xiàng)目項(xiàng)。
????? b.單擊“target list (目標(biāo)列表)”屬性旁邊的省略號(hào)按鈕或具有省略號(hào)按鈕的任何其他屬性。
10.右擊 .xoml 文件并選擇“查看設(shè)計(jì)器”,以便在工作流設(shè)計(jì)器中查看導(dǎo)入的工作流。
?11.在“工具箱”的“Windows Workflow v3.0”部分中,將“代碼”活動(dòng)拖至設(shè)計(jì)器并將其放置在“SequenceActivity1”活動(dòng)之下。
這將在工作流設(shè)計(jì)器中添加一個(gè)名為“CodeActivity1”的活動(dòng)。在此活動(dòng)中,您將添加一個(gè)代碼操作,當(dāng)用戶啟動(dòng)工作流時(shí),該操作會(huì)在“通知”列表中創(chuàng)建一個(gè)公告。
12.雙擊“CodeActivity1”以生成事件處理程序并查看代碼。
13.?在現(xiàn)有 using 或 Imports 語(yǔ)句的下方添加以下內(nèi)容:
using Microsoft.SharePoint;
using System;
14.用以下內(nèi)容替換 codeActivity1_ExecuteCode:
private void codeActivity1_ExecuteCode(object sender, System.EventArgs e)????????
{ ???????????
????? ?try? { ???????????????
?????????????? ?SPSite site = new SPSite("http://win-3efv2ngqv0h"); ???????????????
?????????????? ?SPWeb web = site.OpenWeb("SPD2"); ???????????????
?????????????? ?SPList announcementsList = web.Lists["通知"];
?
??????????????? SPListItem oListItem = announcementsList.Items.Add(); ???????????????
?????????????? oListItem["標(biāo)題"] = "在" + DateTime.Now.ToString() +"分配了一個(gè)任務(wù)"; ???????????????
???????????????oListItem.Update(); ???????????
???????????? ?}?
???????????? catch (Exception err)
??????????? { Console.WriteLine("Error: " + err.ToString()); }????? ???????
}
?
部署項(xiàng)目并關(guān)聯(lián)工作流
?
接下來(lái),運(yùn)行 YunCode.WorkFlow.WorkflowImport以將其部署到 SharePoint 站點(diǎn),然后將工作流與“任務(wù)”列表關(guān)聯(lián)起來(lái),以查看和測(cè)試經(jīng)修改的轉(zhuǎn)換后工作流。
?
?
參考連接:http://blog.csdn.net/yun_liang1028/article/details/6307533
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/kengu/p/3229900.html
總結(jié)
以上是生活随笔為你收集整理的SharePoint 2010 工作流解决方案:将 SharePoint Designer 可重用工作流导入 Visual Studio...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DP_字串匹配(HDU_1501)
- 下一篇: HTTP状态码一览表(HTTP Stat