在DataWeave中动态访问FlowVar

时间:2018-02-04 04:33:11

标签: variables dynamic flow dataweave

我试图在DataWeave中动态访问FlowVar名称。

例如: 我有一个名为taxInfo123的flowVars。这是一个链表和我的申请人.ApplicantID = 123

在我的数据编织中,我想动态访问它。如下所示:

"TaxInfo": flowVars.'taxInfo'+applicant.ApplicantID map ((taxIdentificationDetail , indexOfTaxIdentificationDetail) -> {

这显然不起作用,我希望这是可能的,我只需要正确的语法。

2 个答案:

答案 0 :(得分:0)

如果需要动态创建变量名,可以使用flowVars[key]语法而不是flowVars.key语法。在您的方案中:

"TaxInfo": flowVars[('taxInfo' ++ (flowVars.applicant.ApplicantID as :string))]

我认为applicant也是一个flowVar,但你可以轻松地使用payload.applicant.ApplicantID或任何你的情况所要求的。我还假设它是一个数字,所以我不得不把它作为一个字符串。

当您使用此语法时,您希望确保将键表达式包装在括号中,以便首先计算它,然后解析flowVar。

总结一下:

如果您知道变量名称是'taxInfo123' -

flowVars.taxInfo123flowVars[taxInfo123]都有效

如果您需要动态创建变量名称 -

flowVars[(expression)]

希望有所帮助!

答案 1 :(得分:0)

形成变量名需要追加运算符,如++。请仔细阅读Dataweave操作符的MuleSoft文档,以便更好地了解Dataweave中可以实现多大的灵活性。

https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-operators