ule子软数据编织

时间:2018-09-30 12:58:36

标签: mule anypoint-studio dataweave mel mule-esb

我想编写一个数据编织代码,如果数据为空,则应路由到400。如何在Mule Soft中编写此代码?

我的流程如下: HTTP-> Transfomer->记录器

Transformer DW代码 {     event_ops_type:有效负载.EDM_generic_consumer_message.event_meta_data.event_operation_type }

现在我要实现的是如果“ event_ops_type”为null,然后路由到400(异常处理)?

2 个答案:

答案 0 :(得分:1)

您可能想尝试使用验证模块。 MuleSoft文档here

<validation:is-not-null message="event_ops_type is null!" value="#[flowVars.event_ops_type]" exceptionClass="com.example.MyException" doc:name="Validation"/>

您还可以在选择块中使用Groovy脚本引发任何您想要的异常。在这里,它将使用API​​生成的异常处理实际抛出404。您可以将其切换为所需的任何例外。

<choice doc:name="Choice">
    <when expression="#[flowVars.event_ops_type != null]">
        <logger message="#[flowVars.event_ops_type]" level="INFO" doc:name="Logger"/>
    </when>
    <otherwise>
        <scripting:component doc:name="Groovy">
            <scripting:script engine="Groovy"><![CDATA[throw new org.mule.module.apikit.exception.NotFoundException(flowVars['event_ops_type'] + " is null!"); ]]></scripting:script>
        </scripting:component>
    </otherwise>
</choice>
<exception-strategy ref="api-apiKitGlobalExceptionMapping" doc:name="Reference Exception Strategy"/>

答案 1 :(得分:0)

您可以在变压器之后使用选择路由器来检查payload.event_ops_type == "400"。然后要么针对异常处理引发自定义异常,要么根据event_ops_type 400设置响应状态和原因。