0

多くのツールに関する私の懸念の 1 つは、難しいことは簡単になり、簡単なことは難しくなるということです。私は現在、そのような問題に悩まされています。

Mule のコミュニティ エディションを使用しています。このエディションには、DataWeave (以前は DataMapper) 機能は含まれていません。

コンマ区切りの文字列を値に分割してデータベースのテーブルに保存するフローを簡単に作成する方法はありますか?

4

2 に答える 2

1

次のフロー構成を試してください。基本的には MEL を使用し、文字列を分割します。ペイロードを分割した後、コレクションになります。次に、コレクション スプリッターを使用するか、この例では foreach を使用し、データベース アウトバウンド コネクタを配置して、insert sql ステートメントを作成します。データセンスを活用できるデータウィーブやデータマッパーがありません。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
    <flow name="sampleFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/inbound" doc:name="Inbound HTTP"/>
        <set-payload value="one,two,three,four" doc:name="Set Sample Payload"/>
        <expression-transformer expression="#[message.payload.split(&quot;,&quot;)]" doc:name="Split String"/>
        <foreach collection="#[payload]" doc:name="For Each">
            <logger message="INSERT INTO table(field_a) VALUES(#[payload]);" level="INFO" doc:name="SQL INSERT"/>
            <logger message="INSERT TO DB" level="INFO" doc:name="YOUR DATABASE CONNECTOR"/>
        </foreach>
    </flow>
</mule>

ログ出力

org.mule.api.processor.LoggerMessageProcessor: INSERT INTO table(field_a) VALUES(one); org.mule.api.processor.LoggerMessageProcessor: INSERT TO DB org.mule.api.processor.LoggerMessageProcessor: INSERT INTO table(field_a) VALUES(two); org.mule.api.processor.LoggerMessageProcessor: INSERT TO DB org.mule.api.processor.LoggerMessageProcessor: INSERT INTO table(field_a) VALUES(three); org.mule.api.processor.LoggerMessageProcessor: INSERT TO DB org.mule.api.processor.LoggerMessageProcessor: INSERT INTO table(field_a) VALUES(4); org.mule.api.processor.LoggerMessageProcessor: DB に挿入

于 2016-03-10T07:07:40.057 に答える