首页 > 解决方案 > DataWeave 1.0 - Mulesoft 查询

问题描述

我是数据编织语言的新手。请您帮忙解决这个语法错误“无效输入”否则(“,预期是,*,<=,<,>=,as,或者,

, ~=, -, functionCall, ==, fullAttributes, +, !=, :, and, / or >" 第一次出现下面的单词“otherwise”。

%dw 1.0
%output application/json
---
{
ref:[{
    captureDetails : {
            captureSource : "aa",
            captureDate : ""
            },
    effectiveDate : "",
    expiryDate : "",
    preferenceLevel : "customer",
    sourcePreferenceCode: { 
       (( preferenceCode: "A1" ) when trim payload.key == "REF1" 
         otherwise ( 
                   ( preferenceCode: "A2" ) when trim payload.key == "REF2"
          otherwise (
                    ( preferenceCode: "A3" ) when trim payload.key == "REF3"
            otherwise (
                    ( preferenceCode: "A4" ) when trim payload.key == "REF4"
                otherwise (
                    ( preferenceCode: "A5" ) when trim payload.key == "REF5"
                    otherwise (
                        ( preferenceCode: "A6" ) when trim payload.key == "REF6"
                        otherwise (
                            ( preferenceCode: "A7" ) when trim payload.key == "REF7"
                            otherwise (
                                ( preferenceCode: "A8" ) when trim payload.key == "REF8"                                    
                                otherwise ( preferenceCode: "" )
                            )                               
                        )
                    )                       
                )                   
            )               
          )     
        )
      ),                                                                     
     preferenceValue: trim payload.value
    },  
}],
lastUpdateDetails:{
lastUpdateId:"adam",
lastUpdateTimestamp:"2019-07-19",
lastUpdateFunction:"U",
lastUpdateChannel : "P"
}
}

标签: muledataweave

解决方案


我会使用在match这种情况下应该更清楚的运算符:

%dw 1.0
%output application/json
---
{
    ref:[{
        captureDetails : {
            captureSource : "aa",
            captureDate : ""
        },
        effectiveDate : "",
        expiryDate : "",
        preferenceLevel : "customer",
        sourcePreferenceCode: { 
            preferenceCode: (trim payload.key) match {
                "REF1" -> "A1",
                "REF2" -> "A2",
                "REF3" -> "A3",
                "REF4" -> "A4",
                "REF5" -> "A5",
                "REF6" -> "A6",
                "REF7" -> "A7",
                "REF8" -> "A8",
                default -> ""
            },
            preferenceValue: trim payload.value
        }
    }],
    lastUpdateDetails:{
        lastUpdateId:"adam",
        lastUpdateTimestamp:"2019-07-19",
        lastUpdateFunction:"U",
        lastUpdateChannel : "P"
    }
}

推荐阅读