在 DataWeave 中动态访问 FlowVar
Access FlowVar dynamically in DataWeave
我正在尝试在 DataWeave 中动态访问 FlowVar 名称。
例如:
我有一个名为 taxInfo123 的 flowVars。这是一个链表,我的 applicant.ApplicantID = 123
在我的数据编织中,我想动态访问它。类似于以下内容:
"TaxInfo": flowVars.'taxInfo'+applicant.ApplicantID map ((taxIdentificationDetail , indexOfTaxIdentificationDetail) -> {
这显然行不通,我希望这是可能的,我只需要正确的语法。
如果需要动态创建变量名,可以使用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)]
希望对您有所帮助!
构成变量名需要像++这样的追加运算符。请阅读 Dataweave 运算符的 MuleSoft 文档,以更好地了解 Dataweave 的灵活性。
https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-operators
我正在尝试在 DataWeave 中动态访问 FlowVar 名称。
例如: 我有一个名为 taxInfo123 的 flowVars。这是一个链表,我的 applicant.ApplicantID = 123
在我的数据编织中,我想动态访问它。类似于以下内容:
"TaxInfo": flowVars.'taxInfo'+applicant.ApplicantID map ((taxIdentificationDetail , indexOfTaxIdentificationDetail) -> {
这显然行不通,我希望这是可能的,我只需要正确的语法。
如果需要动态创建变量名,可以使用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)]
希望对您有所帮助!
构成变量名需要像++这样的追加运算符。请阅读 Dataweave 运算符的 MuleSoft 文档,以更好地了解 Dataweave 的灵活性。
https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-operators