Как получить только часть значений связанного списка из Mule DB connector

I have the below flow which returns a list of values from DB with in mule.
Я хочу иметь возможность получить только часть значения результата из БД вместо полного связанного списка в формате «столбец=значение». Я хочу использовать часть значения как часть URL в следующем блоке http. Пожалуйста, смотрите мой поток ниже. Любая обратная связь будет полезна, пожалуйста.

<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="jsonplaceholder.typicode.com/#[flowVars.custID]" port="443" doc_name="HTTP Request Configuration"/>
<http:listener-config name="HTTP_Listener_Configuration1" host="0.0.0.0" port="8081" doc_name="HTTP Listener Configuration"/>

<flow name="dbcconnectorFlow">
    <http:listener config-ref="HTTP_Listener_Configuration2" path="/lockStatus" allowedMethods="PUT" doc_name="HTTP"/>
    <db:select config-ref="Oracle_Configuration" doc_name="Database">
        <db:dynamic-query><![CDATA[select CUST_NO FROM CUSTOMERS WHERE LOCKED='N']]></db:dynamic-query>
    </db:select>
    <logger message="#[message.payload]&quot;" level="INFO" doc_name="Logger"/>
    <set-variable variableName="custID" value="#[message.payload[0]]" doc_name="Variable"/>
    <http:request config-ref="HTTP_Request_Configuration" path="/" method="PUT" doc_name="HTTP"/>
</flow>

Ekow

2 ответа

  1. Один из способов получить только часть значения результата из БД-поместить компонент transform message (Dataweave) после компонента БД и настроить его, как показано в этом примере:

        <flow name="myprojectFlow">
          <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc_name="HTTP"/>
          <db:select config-ref="MySQL_Configuration" doc_name="Database">
            <db:parameterized-query><![CDATA[select CompanyName from Customers limit 10]]></db:parameterized-query>
          </db:select>
          <response>
              <dw:transform-message doc_name="Transform Message">
                <dw:set-payload><![CDATA[%dw 1.0
          %output application/json
          ---
          payload.CompanyName[1]]]></dw:set-payload>
            </dw:transform-message>
          </response>
        </flow>
    

    Выходные данные-это первая строка имени компании в массиве. Имя столбца не включено.

  2. Нашел способ обойти это. Я должен был преобразовать результаты db, который был объектом в xml, используя объект в xml transformer. Затем используйте разделитель для разделения результатов, так как я ожидал несколько выходных данных, как показано ниже

    [xpath3 (‘//root / data / «xml_tag_of_required_data», полезные данные, ‘NODESET’)]. Затем я задаю выходные данные в качестве переменной и ссылаюсь на переменную в URL конечной точки http.