如何在mulesoft中的dataweave中处理if else嵌套的statment

时间:2016-10-25 11:30:40

标签: mule

OptIn:"是"当payload.country == true和payload.state == false否则" No"当payload.country == false和payload.state == true否则" NOT VALID"当payload.country == false和payload.state == false时,否则""

1 个答案:

答案 0 :(得分:2)

这可以通过以下示例来实现: -

var inputId     = 'filter-search';
var itemsData   = 'filter-value';
var displaySet = false;
var displayArr = [];

function getDisplayType(element) {
    var elementStyle = element.currentStyle || window.getComputedStyle(element, "");
    return elementStyle.display;
}

document.getElementById(inputId).onkeyup = function() {
    var searchVal = this.value.toLowerCase();
    var filterItems = document.querySelectorAll('[' + itemsData + ']');
    for(var i = 0; i < filterItems.length; i++) {
        if (!displaySet) {
            displayArr.push(getDisplayType(filterItems[i]));
        }
        filterItems[i].style.display = 'none';
        var prop = filterItems[i].getAttribute('filter-value').toLowerCase();
        if(prop.indexOf(searchVal) >= 0) {
            filterItems[i].style.display = displayArr[i];       
        }
    }
    displaySet = true;
}

我用以下输入测试了这个: -
案例1: -

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="DataweaveFlow">
 <http:listener config-ref="HTTP_Listener_Configuration" path="/poc" doc:name="HTTP"/>

 <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[ %dw 1.0 
 %input payload application/json         
 %output application/json 
--- 

         { value1: "Yes" } when payload.country==true and payload.state==false
         otherwise (
         { value1: "No" } when payload.country==false and payload.state==true
             otherwise (
             { value1: "NOT VALID" } when payload.country==false and payload.state==false

                 otherwise "your value"

                 ))]]></dw:set-payload>
        </dw:transform-message>
 <logger message="#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger" />

</flow>

案例2: -

{
"country":true,
"state":false
}

案例3: -

{
"country":false,
"state":true
}

案例4: -

{
"country":false,
"state":false
}