1

有没有人编写过代码来返回 SharePoint 工作流活动中文件夹的 GUID,以便我可以将其传递给工作流变量?

如果你有一个代码示例,我真的很想看!

谢谢

4

1 回答 1

0

我做过类似的事情,我可以提供一些提示。我没有找到代码示例,因此我使用Reflector从 SharePoint 的 DLL 中复制了代码。

文件:C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI\microsoft.sharepoint.WorkflowActions.dll
类(例如):Microsoft.SharePoint.WorkflowActions.WaitForActivity

你会发现三个属性和DependencyPropertys:

[Browsable(true), ValidationOption(ValidationOption.Required), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public WorkflowContext __Context
{
    get { return (WorkflowContext)base.GetValue(__ContextProperty); }
    set { base.SetValue(__ContextProperty, value); }
}

[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), Browsable(true), ValidationOption(ValidationOption.Required)]
public string __ListId
{
    get { return (string)base.GetValue(__ListIdProperty); }
    set { base.SetValue(__ListIdProperty, value); }
}

[Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), ValidationOption(ValidationOption.Required)]
public int __ListItem
{
    get { return (int)base.GetValue(__ListItemProperty); }
    set { base.SetValue(__ListItemProperty, value); }
}

public static DependencyProperty __ContextProperty;
public static DependencyProperty __ListIdProperty;
public static DependencyProperty __ListItemProperty;

这在静态构造函数中:

static MyActivity()
{
    __ContextProperty = DependencyProperty.Register("__Context", typeof(WorkflowContext), typeof(MyActivity));
    __ListIdProperty = DependencyProperty.Register("__ListId", typeof(string), typeof(MyActivity));
    __ListItemProperty = DependencyProperty.Register("__ListItem", typeof(int), typeof(MyActivity));
}

将它们绑定到您的actions文件中:

  <Parameters>
    <Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" Direction="In"/>
    <Parameter Name="__ListId" Type="System.String, mscorlib, mscorlib" Direction="In" />
    <Parameter Name="__ListItem" Type="System.Int32, mscorlib, mscorlib" Direction="In" />
  </Parameters>

这可以从文件中复制

C:\Program Files\Common Files\Microsoft Shared\web 服务器扩展\12\TEMPLATE\1033\Workflow\WSS.ACTIONS

然后,获取 GUID 并使用属性和输出参数绑定返回它会相对容易。

于 2009-11-12T08:35:02.240 回答