【问题标题】:concatenate values of 2 vars and create a new var in mule 4连接 2 个变量的值并在 mule 4 中创建一个新变量
【发布时间】:2018-07-09 23:50:52
【问题描述】:

如何在 mule 4 中连接 2 个变量并创建第三个变量?

我已经尝试过 concat(vars.a , vars.b) 但效果不错。

<set-variable value="concat(vars.a , vars.b)" doc:name="c" doc:id="b6782bbc-868f-42d7-556a-bd1f94dadf466" variableName="c"/>

我也试过了

<set-variable value="#[vars.a + vars.b]" doc:name="c" doc:id="b5455272bbc-868f-34-556a-bd1f94dadf466" variableName="c"/>

【问题讨论】:

    标签: mule mule-component mule-esb


    【解决方案1】:

    在 Mule 4 中,我们可以使用 '++' 而不是 '+' 来连接变量

    这类似于 Mulesoft 博客中提到的 Concat 操作 Dataweave operator for concat

    我已经使用上面的链接成功连接了两个变量,如下:

    <set-variable value="#[vars.a ++ vars.b]" doc:name="Set Variable" doc:id="8a9fc576-38fe-44f6-90e1-4d8054c10fb0" variableName="c"/>
    

    让我知道它是否适合你。

    【讨论】:

    • 该链接适用于 Mule 3,DataWeave 1.0,这里是相关的 Mule 4 DataWeave 2.0 链接:docs.mulesoft.com/mule4-user-guide/v/4.1/…
    • Vars.a 包含一个数字,而 Vars.b 包含一个对象。如果我使用++,它会抛出错误。在应用 ++ 之前如何转换为字符串。我试过 as vars.a as :string ++ vars.b as :string 但这确实有效
    • 需要括号来控制求值顺序:(vars.a as :string) ++ (vars.b as :string)
    • 我尝试使用 vars.a 作为 :string 。我收到此错误输入“ as :”,预期 PropertyName,函数调用
    【解决方案2】:

    您在评论中提到 vars.a 是一个数字,而 vars.b 包含一个对象。连接一个字符串。将字符串连接到对象是没有意义的。您应该首先从对象中提取一些字符串。 另请注意,在 Mule 4 中,类型的名称与 Mule 3 不同,以大写开头。

    例子:

    vars.a as String ++ vars.b.age as String ++ vars.b.name
    

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      相关资源
      最近更新 更多