博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SharePoint 2010 工作流解决方案:将 SharePoint Designer 可重用工作流导入 Visual Studio...
阅读量:5278 次
发布时间:2019-06-14

本文共 3929 字,大约阅读时间需要 13 分钟。

在 SharePoint Designer 中创建的工作流(即,声明性工作流)由 XML 语句组成,而非由代码组成。 SharePoint Designer 2010 引入了可重用工作流,它们是可由 SharePoint 站点中的不同列表使用的可移植的声明性工作流。

在 Visual Studio 2010 中创建的工作流(如顺序工作流和状态机工作流)称为“代码工作流”。 代码工作流由 XML 文件和代码模块组成,用户可以在这些文件和模块中自定义工作流的行为。

通过 Visual Studio 2010,您可以导入在 SharePoint Designer 2010 中创建的可重用工作流,并将其转换为代码工作流,以便在 SharePoint 站点中使用。

创建目标 SharePoint 子站点

首先创建两个新的 SharePoint 子站点:一个用于承载来自 SharePoint Designer 的可重用工作流,另一个用于承载转换后的工作流。 

  1.   SharePoint Designer 2010 中,单击文件菜单上的打开站点

  

  2.   打开站点对话框中,浏览至要在其中创建工作流的 SharePoint 站点,或者使用默认值 http://系统名称/,然后单击打开

3.子站点部分中,单击新建

指定您的网站位置框中,用 SPD1 替换 URL 中的子网站一词,然后单击确定

这将在 SharePoint Designer 中打开新的子站点。 关闭此 SharePoint Designer 实例并返回到第一个实例(首要站点)。

重复上面步骤以创建第二个子站点,这次将用 SPD2 替换 URL 中的子网站一词。

创建 SharePoint Designer 可重用工作流

由于 SharePoint 不包括可用于此示例的任何可重用工作流,因此您将创建一个可重用工作流。在此简单工作流中,当某个用户在任务列表中输入某个具有特定标题的新任务时,将向该用户分配此任务。

  1. 子站点部分中单击“SPD1”站点以对其进行修改。
  2. 单击功能区上的可重用工作流

 

     3.在名称框中,键入“SPD 任务工作流”。 在内容类型框中,单击任务,再单击确定。该工作流将在 SharePoint Designer 工作流设计器中打开。

    4.确保选中步骤 1 并单击功能区上的条件按钮,然后从条件列表中选择如果当前项目域等于值

这将添加名为如果域等于值的新条件

5.       单击如果字段等于值条件中的链接。 单击“标题

   单击如果字段等于值条件中的链接。 在框中输入“新任务”。

条件语句现在显示为如果当前项:标题等于新任务

6.单击条件语句下面的行,再单击功能区上的操作按钮,然后从操作列表中选择设置当前项目中的域

7.单击将域设置为值操作中的链接,然后选择分配对象

8.单击将域设置为值操作中的链接,从现有用户和组的列表中选择创建当前项目的用户,单击添加按钮,再单击确定

操作语句现在显示为将分配对象设置为当前项目:创建者

 保存并部署可重用工作流

由于 Visual Studio 只能导入 .wsp 文件,因此必须先将可重用工作流另存为 .wsp 文件,并将其部署到 SharePoint,然后能将其导入 Visual Studio 中。

1.       单击 SharePoint Designer 顶部的保存按钮保存您的进度,然后单击发布按钮将工作流部署到 SharePoint 站点“SPD1”

2.在导航窗格中单击工作流

3.单击可重用工作流下的“SPD 任务工作流

4.在功能区中,单击另存为模板,以将工作流另存为 .wsp 文件。

 

5.在浏览器中,打开“SPD1”SharePoint 站点,查看 SharePoint 中的 .wsp 文件。

6.在快速启动栏上单击

7.在文档库部分中单击网站资产

“SPD 任务工作流文件将与其他站点资产一起列出。

8.在列表中单击其名称,这将显示文件下载对话框。

9.在文件下载对话框中单击保存按钮,将 .wsp 文件保存到系统上。

  .wsp 文件导入到 Visual Studio

使用“导入可重用工作流”项目将 .wsp 文件导入到 Visual Studio 中。 此项目将工作流从一个可重用的声明性工作流转换为一个代码工作流。 转换工作流之后,您将使用代码来修改其行为。

.wsp 文件导入工作流并进行修改

1.在 Visual Studio 中,通过指向文件菜单上的新建并单击新建项目,显示新建项目对话框。

2.展开“Visual C#”下的“SharePoint”节点,然后单击“2010”

3.在模板窗格中单击导入可重用工作流,将默认的名称修改为“YunCode.Workflow.WorkflowImport”,再单击确定

 这将显示“SharePoint 自定义向导

4.指定用于调试的站点和安全级别页上,为您先前创建的第二个 SharePoint 子站点输入 URLhttp://系统名称/SPD2

5.在 SharePoint 解决方案的信任级别是什么?”部分中,保留选择项为部署为场解决方案

6.在指定新项目源页上,浏览到系统上您先前保存 .wsp 文件的位置,然后单击下一步

7.这将显示可导入的可重用工作流的列表。

8.在“选择要导入的项”框中,选择工作流“SPD 任务工作流”,然后单击“完成”。

 完成导入操作后,将创建一个名为“YunCode.Workflow.WorkflowImport”的项目,其中包含一个名为“SPD_任务工作流FT”的工作流。 此文件夹中包含工作流的定义文件 Elements.xml 和工作流设计器文件 (.xoml)。 该设计器中包含两个文件:规则文件 (.rules) 和代码隐藏文件

9.由于导入可重用工作流不会导入已导入的工作流的关联属性值,因此您必须输入这些值。 具体方法为:

      a.在解决方案资源管理器中单击“SPD_Workflow_TestFT”工作流项目项。

      b.单击“target list (目标列表)”属性旁边的省略号按钮或具有省略号按钮的任何其他属性。

10.右击 .xoml 文件并选择查看设计器,以便在工作流设计器中查看导入的工作流。

 11.在“工具箱”的“Windows Workflow v3.0”部分中,将代码活动拖至设计器并将其放置在“SequenceActivity1”活动之下。

这将在工作流设计器中添加一个名为“CodeActivity1”的活动。在此活动中,您将添加一个代码操作,当用户启动工作流时,该操作会在通知列表中创建一个公告。

12.双击“CodeActivity1”以生成事件处理程序并查看代码。

13. 在现有 using 或 Imports 语句的下方添加以下内容:

using Microsoft.SharePoint;

using System;

14.用以下内容替换 codeActivity1_ExecuteCode

private void codeActivity1_ExecuteCode(object sender, System.EventArgs e)        

{            

       try  {                

                SPSite site = new SPSite("");                

                SPWeb web = site.OpenWeb("SPD2");                

                SPList announcementsList = web.Lists["通知"];

 

                SPListItem oListItem = announcementsList.Items.Add();                

               oListItem["标题"] = "在" + DateTime.Now.ToString() +"分配了一个任务";                

               oListItem.Update();            

              } 

             catch (Exception err)

            { Console.WriteLine("Error: " + err.ToString()); }             

}

 

部署项目并关联工作流

 

接下来,运行 YunCode.WorkFlow.WorkflowImport以将其部署到 SharePoint 站点,然后将工作流与“任务”列表关联起来,以查看和测试经修改的转换后工作流。

 

  1. 在 Visual Studio 中,按 F5 以运行和部署转换的工作流项目。
  2. 单击快速启动栏上的任务以显示任务列表。
  3. 列表工具功能区上单击“列表”,然后单击工作流设置”,添加“YunCode.WorkFlow.WorkflowImport”工作流,与列表关联起来。
  4. 列表工具功能区上单击项目,然后单击新建项目按钮。
  5. 任务 - 新建项目对话框的标题框中输入“新任务”,然后单击保存
  6. 此时工作流可以自动启动,如果没有自动启动,可按下面步骤手动启动。
  7. 单击新任务旁边的下拉箭头,并选择工作流
  8. 开始新工作流部分中,单击针对“SPD任务工作流的链接,再单击启动以启动工作流。

 

参考连接:

 

 

转载于:https://www.cnblogs.com/kengu/p/3229900.html

你可能感兴趣的文章
hdu2053
查看>>
Java编程兵书
查看>>
jquery动态表格,动态添加表格行
查看>>
将中文汉字转换成拼音(全拼)
查看>>
初探微积分
查看>>
网络流 - 上下界网络流
查看>>
Hiv - 1
查看>>
keepalived 健康检测
查看>>
django中的分页设置
查看>>
100.Same Tree
查看>>
JAVA 根据经纬度算出附近的正方形的四个角的经纬度
查看>>
Linux系统配置matlab2009b
查看>>
ZH奶酪:基于ionic.io平台的ionic消息推送功能实现
查看>>
对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
查看>>
Thymeleaf模板格式化LocalDatetime时间格式
查看>>
网卡最大传输单位MTU和巨型帧(Jumbo frame)设置
查看>>
jquery bind()方法与live()方法的区别
查看>>
linux安装FFMpeg
查看>>
Python3之format
查看>>
USACO / Magic Squares(经典BFS+Cantor展开hash)
查看>>