在另一个Activity的定义中使用OutArgument

时间:2013-08-07 13:34:41

标签: workflow-foundation-4

我正在创建一个可以调用名为post的自定义活动的工作流,该活动将执行webrequest并将响应作为xmldoc返回。我试图返回动态,但这不起作用。然后,我想在xml文档中获取一个特定值,并将其添加到下一个调用链调用的post dada中。我无法弄清楚的是如何将第一篇文章中的响应数据转换为第二篇文章的帖子数据。任何帮助将不胜感激。

        Variable<XmlDocument> output1 = new Variable<XmlDocument>();

        ActivityBuilder ab1 = new ActivityBuilder();
        ab1.Name = "CustomWorkflow";
        ab1.Implementation = new Sequence
                             {
                                 Activities =
                                 {
                                     new Post()
                                     {
                                         PostData =
                                             "<xml></xml>",
                                         EndPoint =
                                             "www.test.com",
                                         ContentType = "text/xml;charset=\"utf-8\"",
                                         Accept = "text/xml",
                                         Headers = "SOAPAction,Test",
                                         Response = new OutArgument<XmlDocument>(output1)
                                     },
                                     new Post()
                                     {
                                         PostData =
                                             "<xml>"+ output1.GetSingleNode("stuff here") "</xml>",
                                         EndPoint =
                                             "www.test.com",
                                         ContentType = "text/xml;charset=\"utf-8\"",
                                         Accept = "text/xml",
                                         Headers = "SOAPAction,Test"
                                     }
                                 },
                                 Variables =
                                 {
                                     output1
                                 }
                             };

1 个答案:

答案 0 :(得分:0)

认为您在问:如何将值从1个活动转移到另一个活动。 如果是这样,有几种方法可以做到这一点。

1) 在工作流级别有一个变量,它接受第一个活动的输出,然后将此变量作为输入参数传递给下一个活动。

2) 拥有一个数据结构变量,并按顺序将结构传递给所有活动。在每个活动中,您可以在结构中添加/编辑/删除数据,并且因为工作流变量是参考变量,所以下一个活动可用的数据是在传递数据对象后的序列。 如果要将初始数据传递到工作流中,可以使用参数而不是变量。从那时起,Arguments的行为就像Variables