Mule 如何在dataweave中创建子字符串

Mule 如何在dataweave中创建子字符串,mule,mule-studio,dataweave,Mule,Mule Studio,Dataweave,我在输入中得到一个字段AnnualRevenue,我必须寻找一个条件,如果该字段中有一个小数点,我想将其替换为一个整数,但如果它不是小数点,则不进行任何转换即可传递。可以告诉我如何在mulesoft中的dataweave中实现这一点。除了子字符串之外,您还可以通过创建全局MEL函数来使用MEL/java的整数转换,然后在dataweave表达式中使用它 <configuration doc:name="Configuration"> <expression-langua

我在输入中得到一个字段AnnualRevenue,我必须寻找一个条件,如果该字段中有一个小数点,我想将其替换为一个整数,但如果它不是小数点,则不进行任何转换即可传递。可以告诉我如何在mulesoft中的dataweave中实现这一点。

除了子字符串之外,您还可以通过创建全局MEL函数来使用MEL/java的整数转换,然后在dataweave表达式中使用它

<configuration doc:name="Configuration">
    <expression-language>
        <global-functions>
            def removeDecimal(value) {
            return (long) value
            }
        </global-functions>
    </expression-language>
</configuration>
希望能有帮助


干杯

对于另一种选择,您可以使用正则表达式:

%dw 1.0
%output application/java
---
{
    result: "123.45" replace /(\.[0-9]*)/ with ""
}
输入:
萨鲁米亚赛义德
%dw 1.0
%输出应用程序/xml
---
结果:(payload.employees.employee.name以“-”号分隔[0]

参考:

%dw 1.0
%output application/java
---
{
    result: "123.45" replace /(\.[0-9]*)/ with ""
}
input:

<employees>
  <employee>
  <name>salumiah-syed</name>
  </employee>
</employees>

%dw 1.0
%output application/xml 
---
result: (payload.employees.employee.name splitBy "-") [0] 
%dw 1.0
%output application/java
---
{
     value: "123.45",    
     result: ("123.45" as :number) as :string {format: "#"}
}