dataweave中的自定义查找

时间:2016-02-23 09:34:00

标签: mule mule-studio dataweave

我在输入中有2个字段,一个是primary_language&另一种是secondary_language。我有一个案例,我必须查找这两个字段中的值,然后根据表返回一个特定的值。 例如 如果主要语言是英语&辅助语言为null然后英语将是输出&如果主要语言是西班牙语和secondary是Sign然后在输出&中输入None。等等。可以告诉我们如何在mulesoft的dataweave中执行此操作。

2 个答案:

答案 0 :(得分:1)

你真的有一些更动态的逻辑,或者它只是你上面提到的两个条件吗?

您可以使用when / otherwise或调用另一个流来获取值。

%dw 1.0
%output application/java

---
{
language: 'English' when (payload.primary == 'English' and payload.secondary is :null) 
                otherwise ('None' when payload.primary == 'Spanish' and payload.secondary == 'Sign'
                    otherwise ''
                ),

language2: lookup("testFlow",payload)
}

答案 1 :(得分:0)

我建议创建另一个为您执行此查找的流程(可能您可以执行数据库调用,或其他类似groovy脚本),并根据这些值存储您的值以及您希望返回的内容。

https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#expressions-that-call-external-flows略微涵盖了这个概念,但总体思路如下:

language: lookup("myLookupFlow", payload)

然后,您需要做的就是根据主数据库和辅助数据库查询数据集,然后您将获得#34;转换后的数据集。价值回归。