Mule Dataweave 2.0的输出不正确

Mule Dataweave 2.0的输出不正确,mule,mule-studio,dataweave,anypoint-studio,mule-esb,Mule,Mule Studio,Dataweave,Anypoint Studio,Mule Esb,我需要有关Dataweave 2.0代码的帮助,以获得以下输入: 输入-0000000 123456789 输出应为-0123456789 如何修复此问题?您可以尝试以下DataWeave表达式: %dw 2.0 output application/json var value = "0000000123456789" fun getLastChars(str, len) = if (str != null and sizeOf(str) >= len)

我需要有关Dataweave 2.0代码的帮助,以获得以下输入:

输入-0000000 123456789

输出应为-0123456789


如何修复此问题?

您可以尝试以下DataWeave表达式:

%dw 2.0
output application/json
var value = "0000000123456789"
fun getLastChars(str, len) = 
  if (str != null and sizeOf(str) >= len) 
    value[(sizeOf(str) - len) to (sizeOf(str)-1)] 
  else str
---
{
    val: getLastChars(value, 10)
}

如果字符串的长度不会改变,请执行以下操作:

%dw 2.0
output application/json
var myString = "0000000123456789"
---
myString[6 to 15]

另一个有趣的方法是,作为一个可重用函数,olamiral的答案可能是可行的

%dw 2.0
output application/json
import withMaxSize from dw::core::Strings
---
(payload[-1 to 1] withMaxSize 10)[-1 to 1]

转型的标准是什么?问题很不清楚。你到底想要实现什么?是否将初始0删除为一个0?如果号码是11111111 23456789怎么办。是否也要删除1?请更新问题。是的,它有效。谢谢