【问题标题】:Dataweave 2.0 withMaxSize functionDataweave 2.0 with MaxSize 功能
【发布时间】:2020-12-05 19:24:00
【问题描述】:

我在外部 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(data) = data dw::core::Strings::withMaxSize 3 providerUniqueID:maxLengh(payload.ProviderUniqueID) - 不工作

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

运行时:4.2.1enter image description here

【问题讨论】:

    标签: dataweave mulesoft


    【解决方案1】:

    根据 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)
    

    【讨论】:

      【解决方案2】:

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

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

      请使用 4.3.0 版本的 Runtime。它将为您工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-28
        • 1970-01-01
        • 2019-12-16
        • 1970-01-01
        相关资源
        最近更新 更多