2016-12-05 88 views
0

我在XAML中有一个简单的工作流程,由一个序列和一个自定义活动组成。 未来会有更多的活动。 的XAML如下:WF - 如何从XAML工作流程获取WorkflowInvoker结果

<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变量包含调用工作流后一个空的字典。 由于序列中包含的活动会返回一个值,因此我需要您的帮助来抓取该活动的输出并将其作为整个工作流程的结果进行外部公开。

回答

0

结果将保存输出字典。

字典的键是在工作流级别在工作流程中创建的任何OUT参数。

由Activity返回的值必须首先从Activity传递到工作流级别OUT参数。
您可以通过在活动中创建OUT参数并使用Visual Studio中的活动属性对话框将其分配给工作流中的OUT参数来实现此操作