我们正在混合工作流程,最后使用接收活动的工作流程。但是一开始我们想要传递一些参数(不使用接收活动!)
我们的工作流已经使用IWorkflowCreation的动态端点和从WorkflowHostingEndpoint派生的类创建和恢复。在OnGetCreationContext中,creationgContext填充了WorkflowArguments并运行工作流。在稍后的部分,接收活动正在创建一个可以通过消息恢复的书签。一切都好看。
但是在xamlx中没有WorkflowArguments,我理解为什么,除了我还是想要它们。我虽然在一个活动中我可以编写一些代码来自己获取参数,但我确实需要一些帮助。
或者是否有其他方法可以在不使用Messaging的情况下将WorkflowArguments传递到xamls中?
答案 0 :(得分:1)
除了通过启动它的SOAP消息之外,您无法将参数传递到启动工作流服务。但是没有什么能阻止您阅读工作流服务中的任何属性。因此,完全可以进行读取设置或类似的操作,而不是在启动时传递它们。
答案 1 :(得分:1)
我们已经通过创建另一个WCF服务解决了这个问题,该服务与我们的xamlx服务一起放在一个稍微不同的URL上(例如/ WorkflowMetadata),这就是我们实现一个返回字符串类型字典的服务方法。
在实现这项服务时,我们只需阅读xamlx并确定参数。
这是我们在创建启动工作流程活动之类时,在活动设计器中查询目标工作流程时使用的内容。
创建活动不起作用,因为该活动需要一个实例才能运行。您只需要有关xamlx服务的一些元数据。如果您使用WorkflowCreationEndpoint构建创建上下文,那么您可能只允许使用字符串,对象作为开始参数。因此标准元数据不起作用。这使我们唯一的选择是在提供元数据的工作流旁边提供另一种服务。
此处背景:http://blog.petegoo.com/index.php/2011/09/02/building-an-enterprise-workflow-system-with-wf4/