0

过去,我使用 SharePoint Designer 开发了文档工作流并创建了“全局变量”。据我所知,这些是跨工作流实例的全局变量。

如何在 Visual Studio 工作流项目中创建等效的全局变量?我的第一个想法是在一个模块中创建一组这样的字段:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field ID="{2FE15855-3CAB-44A6-AB29-1600204FCA20}" Name="TechRev1"
         MaxLength="255" DisplayName="Technical Reviewer 1" Description=""
         Direction="None" Type="User" Overwrite="TRUE" />
  <Field ID="{517B22A5-1B89-4C24-82BE-3D4FD99645BC}" Name="TechRev2"
         MaxLength="255" DisplayName="Technical Reviewer 2" Description=""
         Direction="None" Type="User" Overwrite="TRUE"/>
<Elements/>

这是正确的方法吗?如何从 ASPX 表单访问任何全局变量?

4

1 回答 1

0

在 Visual Studio 中开发了我的工作流后,我得出的结论是,您应该结合使用 SharePoint 列表和类范围变量来保留工作流中的全局状态。

你应该使用列表时..

  • 需要跨工作流中的许多不同类访问数据

你应该使用类作用域变量......

  • 数据只需要一个类

  • 数据是可以序列化的类型(原始类型,用[Serializable]标记的类型)。我的解决方案中有一种这样的类型:

    [可序列化] public class ReviewerBag { public Dictionary Reviewers { get; 放; } 公共字符串版主 { 获取;放; }

    public ReviewerBag()
    {
        Reviewers = new Dictionary<string,Reviewer>();
    }
    ...
    

    }

  • 如果工作流中的类之间需要数据,您仍然可以使用变量,但请注意,每次在类中声明变量时,当工作流空闲时(例如,当工作流等待用户完成任务时),它将被独立序列化)。变量变得不同步,因为它们在工作流恢复时独立反序列化。故事的寓意是在这种情况下使用列表来存储数据!

于 2012-11-21T15:13:52.963 回答