WF - 如何从 XAML 工作流中获取 WorkflowInvoker 结果
WF - How to get the WorkflowInvoker result from a XAML workflow
我在 XAML 中有一个简单的工作流程,由一个序列和一个自定义 activity 组成。
以后会有更多的活动。
XAML 如下:
<Activity mc:Ignorable="sap sap2010 sads"
...
<Sequence sap2010:WorkflowViewState.IdRef="Sequence_1">
<local:CoefficientWorkflow sap2010:WorkflowViewState.IdRef="CoefficientWorkflow_1">
</local:CoefficientWorkflow>
<sads:DebugSymbol.Symbol>d11DOlxGQU1FMlxQcm9qZWN0MDJcRkJTXFdlYkFwcFxNb2R1bGVzXEZCUy5BTE9cc3JjXEZCUy5BTE8uV29ya2Zsb3dcV29ya2Zsb3dzXEFsb1dvcmtmbG93LnhhbWwDKwM0DgIBASwFMiECAQIvCy9KAgED</sads:DebugSymbol.Symbol>
</Sequence>
<sap2010:WorkflowViewState.ViewStateManager>
<sap2010:ViewStateManager>
<sap2010:ViewStateData Id="CoefficientWorkflow_1" sap:VirtualizedContainerService.HintSize="200,22" />
<sap2010:ViewStateData Id="Sequence_1" sap:VirtualizedContainerService.HintSize="222,146">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="IsExpanded">True</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="FBS.ALO.Workflow.Workflows.AloWorkflow_1" sap:VirtualizedContainerService.HintSize="262,226" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>
</Activity>
我使用以下代码调用工作流:
WorkflowInvoker invoker = new WorkflowInvoker(workflow1);
var result = invoker.Invoke();
目前 result
变量在调用工作流后包含一个空字典。
由于序列 returns 中包含的 activity 是一个值,我需要你的帮助来获取 activity 的输出并作为整个工作流的结果向外部公开。
结果将包含一个输出字典。
字典的键是您在工作流级别的工作流中创建的任何 OUT 参数。
Activity 返回的值必须首先从 Activity 传递到工作流级别 OUT 参数。
为此,您可以在 Activity 中创建一个 OUT 参数,并使用 Visual Studio
中的 Activity 属性对话框将其分配给工作流中的 OUT 参数
我在 XAML 中有一个简单的工作流程,由一个序列和一个自定义 activity 组成。 以后会有更多的活动。 XAML 如下:
<Activity mc:Ignorable="sap sap2010 sads"
...
<Sequence sap2010:WorkflowViewState.IdRef="Sequence_1">
<local:CoefficientWorkflow sap2010:WorkflowViewState.IdRef="CoefficientWorkflow_1">
</local:CoefficientWorkflow>
<sads:DebugSymbol.Symbol>d11DOlxGQU1FMlxQcm9qZWN0MDJcRkJTXFdlYkFwcFxNb2R1bGVzXEZCUy5BTE9cc3JjXEZCUy5BTE8uV29ya2Zsb3dcV29ya2Zsb3dzXEFsb1dvcmtmbG93LnhhbWwDKwM0DgIBASwFMiECAQIvCy9KAgED</sads:DebugSymbol.Symbol>
</Sequence>
<sap2010:WorkflowViewState.ViewStateManager>
<sap2010:ViewStateManager>
<sap2010:ViewStateData Id="CoefficientWorkflow_1" sap:VirtualizedContainerService.HintSize="200,22" />
<sap2010:ViewStateData Id="Sequence_1" sap:VirtualizedContainerService.HintSize="222,146">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="IsExpanded">True</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="FBS.ALO.Workflow.Workflows.AloWorkflow_1" sap:VirtualizedContainerService.HintSize="262,226" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>
</Activity>
我使用以下代码调用工作流:
WorkflowInvoker invoker = new WorkflowInvoker(workflow1);
var result = invoker.Invoke();
目前 result
变量在调用工作流后包含一个空字典。
由于序列 returns 中包含的 activity 是一个值,我需要你的帮助来获取 activity 的输出并作为整个工作流的结果向外部公开。
结果将包含一个输出字典。
字典的键是您在工作流级别的工作流中创建的任何 OUT 参数。
Activity 返回的值必须首先从 Activity 传递到工作流级别 OUT 参数。
为此,您可以在 Activity 中创建一个 OUT 参数,并使用 Visual Studio