Dataweave 2.0 withMaxSize 函数

Dataweave 2.0 withMaxSize function

我在外部dwl 文件中进行了转换。我正在尝试使用 'withMaxSize' 来限制字符串的大小。但我遇到了以下问题。

fun providerObjMapping(payload) = (if(! isEmpty(payload.ProviderUniqueID) ) {

  providerUniqueID:payload.ProviderUniqueID dw::core::Strings::withMaxSize 3,
  npi:payload.NPI,
  salutation:payload.Salutation,
  firstName:payload.FirstName,
  middleName:payload.MiddleName

  }else {})

""脚本 '%dw 2.0 从 dw::appian_crf_mapping

导入 *
output application/json
---
generateObj(vars.tableName, payload) ' has errors:


    Unable to resolve reference of dw::core::Strings::withMaxSize. at 29 : 29" evaluating expression: "%dw 2.0
import * from dw::appian_crf_mapping

output application/json
---
generateObj(vars.tableName, payload)"."

以下是我尝试过的方法。

  1. providerUniqueID:payload.ProviderUniqueID dw::core::Strings::withMaxSize 3 - 不工作

  2. fun maxLength(数据) = 数据dw::core::Strings::withMaxSize 3 providerUniqueID:maxLengh(payload.ProviderUniqueID) - 不工作

  3. 导入 * dw::core::Strings 有趣的 maxLength(data) = data withMaxSize 3 providerUniqueID:maxLengh(payload.ProviderUniqueID) - 不工作

运行时间:4.2.1enter image description here

根据 MuleSoft 文档,withMaxSize 是在 DataWeave 2.3.0 中引入的,受 Mule Runtime 4.3.0 或更高版本支持(https://docs.mulesoft.com/mule-runtime/4.3/dw-strings-functions-withmaxsize)

当您使用 Mule Runtime 4.2.1 时,您可以将 withMaxSize 函数实现为:

%dw 2.0
output application/json

fun withMaxSize(val, maxSize) = val[0 to (((min([sizeOf(val), maxSize])) as Number) - 1)]
---
withMaxSize(payload.message, 3)

withMaxSize 函数:仅适用于 4.3.0 运行时或更高版本。

请查看我们的发行说明了解更多信息: Release Notes 4.3.0 Runtime

请使用 4.3.0 版本的运行时。它会为你工作。