我试图在DataWeave中动态访问FlowVar名称。
例如: 我有一个名为taxInfo123的flowVars。这是一个链表和我的申请人.ApplicantID = 123
在我的数据编织中,我想动态访问它。如下所示:
"TaxInfo": flowVars.'taxInfo'+applicant.ApplicantID map ((taxIdentificationDetail , indexOfTaxIdentificationDetail) -> {
这显然不起作用,我希望这是可能的,我只需要正确的语法。
答案 0 :(得分:0)
如果需要动态创建变量名,可以使用flowVars[key]
语法而不是flowVars.key
语法。在您的方案中:
"TaxInfo": flowVars[('taxInfo' ++ (flowVars.applicant.ApplicantID as :string))]
我认为applicant
也是一个flowVar,但你可以轻松地使用payload.applicant.ApplicantID
或任何你的情况所要求的。我还假设它是一个数字,所以我不得不把它作为一个字符串。
当您使用此语法时,您希望确保将键表达式包装在括号中,以便首先计算它,然后解析flowVar。
总结一下:
如果您知道变量名称是'taxInfo123' -
flowVars.taxInfo123
或flowVars[taxInfo123]
都有效
如果您需要动态创建变量名称 -
flowVars[(expression)]
希望有所帮助!
答案 1 :(得分:0)
形成变量名需要追加运算符,如++。请仔细阅读Dataweave操作符的MuleSoft文档,以便更好地了解Dataweave中可以实现多大的灵活性。
https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-operators