【问题标题】:Count Number of Rows Processed by Mule DataMapper计数 Mule DataMapper 处理的行数
【发布时间】:2023-10-21 03:53:01
【问题描述】:

我正在使用 Mule 的数据映射器将数据从数据库写入 csv 文件。我在数据库、数据映射器和文件输出上使用流式传输选项。我希望能够记录数据映射器写入的记录数量。有没有办法获取这些数据?我正在运行 mule server 3.5.2 并拥有 anypoint studio 5.2.0 版。

【问题讨论】:

    标签: mule esb mule-studio mule-component


    【解决方案1】:

    不是开箱即用的。如果您不使用流式传输,则可以使用 outputArgument 并增加计数器。

    如果您使用流式传输,则可以传递计数器类的输入参数。从 Datamapper 的脚本组件中,您可以递增计数器并将计数器作为有效负载的一部分返回以访问它:

            <data-mapper:transform config-ref="Pojo_To_JSON_1" doc:name="Pojo To JSON" stream="true">
                <data-mapper:input-arguments>
                    <data-mapper:input-argument key="counter">#[new Counter()]</data-mapper:input-argument>
                </data-mapper:input-arguments>
            </data-mapper:transform>
    

    数据映射器脚本:

    //MEL
    //START -> DO NOT REMOVE
    output.__id = input.__id;
    //END -> DO NOT REMOVE
    
    output.text = inputArguments.counter.increment();
    

    【讨论】:

      【解决方案2】:

      我知道这是一个旧线程,但下面仍然可以提供帮助 -

       <byte-array-to-object-transformer doc:name="Byte Array to Object"/>
       <set-variable variableName="Orig_Rows" value="#[payload.length]" doc:name="Variable"/>
      

      【讨论】: