将workflowToken获取到sharepoint中的自定义活动中
我正在尝试为我的sharepoint工作流开发一个自定义活动,以简化某些事情。在其中,我创建了一个任务、日志、设置自定义工作流状态(setState)和其他一些东西 我遇到的问题是setState活动需要workflowToken,该Token仅在主工作流中可用。我发现了下面的博文:这解释了如何创建一个属性,然后您可以将workflowToken分配给该属性,并且该属性工作得很好,但是我不知道如何将我收到的这个令牌设置为setState活动 在designer中,我似乎不能这样做,当我尝试以编程方式这样做时:将workflowToken获取到sharepoint中的自定义活动中,sharepoint,workflow,Sharepoint,Workflow,我正在尝试为我的sharepoint工作流开发一个自定义活动,以简化某些事情。在其中,我创建了一个任务、日志、设置自定义工作流状态(setState)和其他一些东西 我遇到的问题是setState活动需要workflowToken,该Token仅在主工作流中可用。我发现了下面的博文:这解释了如何创建一个属性,然后您可以将workflowToken分配给该属性,并且该属性工作得很好,但是我不知道如何将我收到的这个令牌设置为setState活动 在designer中,我似乎不能这样做,当我尝试以编程
private void setState_MethodInvoking(object sender, EventArgs e)
{
SetState s = (SetState)sender;
s.CorrelationToken = WorkflowToken;
}
在调用调用中,我得到以下错误:
This operation can not be performed at runtime. at System.Workflow.ComponentModel.DependencyObject.SetValueCommon(DependencyProperty dependencyProperty, Object value, PropertyMetadata metadata, Boolean shouldCallSetValueOverrideIfExists)
at System.Workflow.ComponentModel.DependencyObject.SetValu
有什么想法吗 应在visual studio中的设计时使用属性窗口(F4)绑定关联令牌。应在visual studio中的设计时使用属性窗口(F4)绑定关联令牌.在MS社区论坛上找到了一个类似问题的以下内容。它解释了什么是correlationToken以及如何使用它: 活动需要具有工作流本身的关联令牌,即onWorkflowActivated活动的关联令牌。由于关联标记是设计时属性,因此不能在运行时设置它们,只能在构造函数中或通过属性绑定进行设置。您可以在工作流的构造函数中设置活动的关联令牌,这是最简单的解决方案,但也有一些缺点。 我描述了一个解决方案,介绍了如何创建一个自定义活动,该活动具有可根据工作流的相关令牌属性绑定的相关令牌属性
为了给你提供更深入的信息,我在微软社区论坛上找到了一个类似的问题。它解释了什么是correlationToken以及如何使用它: 活动需要具有工作流本身的关联令牌,即onWorkflowActivated活动的关联令牌。由于关联标记是设计时属性,因此不能在运行时设置它们,只能在构造函数中或通过属性绑定进行设置。您可以在工作流的构造函数中设置活动的关联令牌,这是最简单的解决方案,但也有一些缺点。 我描述了一个解决方案,介绍了如何创建一个自定义活动,该活动具有可根据工作流的相关令牌属性绑定的相关令牌属性
嗯,我完全忽略了一个事实,在我链接到的文章中,答案已经在那里了:
public CorrelationToken WorkflowCorrelationToken
{
get { return (CorrelationToken)base.GetValue(WorkflowCorrelationTokenProperty); }
set
{
base.SetValue(WorkflowCorrelationTokenProperty, value);
**sendEmail.CorrelationToken = value;**
}
}
在setter中设置相关属性!哦,好吧 Duh,我完全忽略了一个事实,在我链接到的文章中,答案已经存在:
public CorrelationToken WorkflowCorrelationToken
{
get { return (CorrelationToken)base.GetValue(WorkflowCorrelationTokenProperty); }
set
{
base.SetValue(WorkflowCorrelationTokenProperty, value);
**sendEmail.CorrelationToken = value;**
}
}
在setter中设置相关属性!哦,好吧 确切地说,令牌应该在设计时分配,因此WF运行时可以使用该令牌在运行时耦合调用者和被调用者。这里有更多信息:问题的关键是,在设计时不能为自定义活动分配令牌。。。如果您需要的是workflowtoken,而不是tasktoken。确切地说,应该在设计时分配该标记,以便WF运行时可以使用该标记在运行时耦合调用者和被调用者。这里有更多信息:问题的关键是,在设计时不能为自定义活动分配令牌。。。如果您需要的是workflowtoken,而不是tasktoken。