Mule Soft Data Weave - PullRequest
       47

Mule Soft Data Weave

0 голосов
/ 30 сентября 2018

Я хочу написать Data Weave Code, в котором, если данные равны нулю, они должны быть направлены на 400. Как мне записать это в Mule Soft?

Мой поток выглядит следующим образом: HTTP -> Transfomer-> Logger

Код DW Tranformer {event_ops_type: payload.EDM_generic_consumer_message.event_meta_data.event_operation_type}

Теперь я хочу реализовать, если «event_ops_type» равен нулю, а затем перейти к 400 (обработка исключений))

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вы можете попробовать использовать модуль проверки.Документация MuleSoft здесь .

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

Вы также можете использовать скрипт Groovy в блоке выбора, чтобы выбросить любое исключение, которое вы хотите.Здесь он фактически выдаст 404 с обработкой исключений, созданной API.Вы можете переключить это на любое исключение.

<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"/>
0 голосов
/ 01 октября 2018

Вы можете использовать выбор маршрутизатора после трансформатора для проверки payload.event_ops_type == "400".Затем либо создайте пользовательское исключение для обработки исключений, либо установите статус и причину ответа на основе event_ops_type 400.

...