在批处理mule esb中面临错误

在批处理mule esb中面临错误,mule,batch-processing,mule-studio,Mule,Batch Processing,Mule Studio,我在批处理mule esb时面临问题。若我在进程记录面中设置了任何有效负载,并尝试在oncomplete面中获取该有效负载,那个么就不会获取该有效负载。变量和属性也有同样的问题。 若我在流程记录阶段设置了任何属性,并尝试进入完整阶段,那个么总是得到空值。 如何在完成阶段获得这些值? 下面是流程图 <batch:job name="TestBatch" max-failed-records="-1"> <batch:input> &

我在批处理mule esb时面临问题。若我在进程记录面中设置了任何有效负载,并尝试在oncomplete面中获取该有效负载,那个么就不会获取该有效负载。变量和属性也有同样的问题。 若我在流程记录阶段设置了任何属性,并尝试进入完整阶段,那个么总是得到空值。 如何在完成阶段获得这些值? 下面是流程图

<batch:job name="TestBatch" max-failed-records="-1">
        <batch:input>

            <component class="com.test.RecordTest"
            doc:name="Java" />
        <json:object-to-json-transformer
            doc:name="Object to JSON" />
        <custom-transformer class="com.test.CustomTr"
            doc:name="Java" />
        </batch:input>
        <batch:process-records>
            <batch:step name="Batch_Step1" accept-policy="ALL">
                <batch:commit size="5" doc:name="Batch Commit">
                <!-- Insert record in Salesforce  -->
                </batch:commit>
            </batch:step>
            <batch:step name="Batch_Step2" accept-policy="ONLY_FAILURES">
                <logger message="STEPP #[getStepExceptions()]" level="INFO" doc:name="Logger"/>
                <set-property propertyName="error" value="STEPP #[getStepExceptions()]" doc:name="Property"/>
                <set-payload value="#[getStepExceptions()]" doc:name="Set Payload"/>

            </batch:step>

        </batch:process-records>
        <batch:on-complete>
            <logger level="INFO" doc:name="Logger" message="--&gt;  #[payload.failedRecords] --&gt;  #[message.payload] "/>
            <logger message="error--- #[message.outboundProperties['error']] " level="INFO" doc:name="Logger"/>

        </batch:on-complete>
    </batch:job>

我在属性记录器中得到空值


我该怎么解决这个问题呢?

我从你那里得到了一些坏消息:-)。 通过设计进行批处理不会过时您可以尝试在步骤中设置的任何值,尤其是有效负载

当我开始使用它时,我还希望在完成阶段上的会话变量处于正确的状态,但事实并非如此,它们在每一步都会被完全清除

现在我不认为这是一个bug,但它确实是一个设计特性,即使我不是很喜欢它,我也可以理解它。 我用这个方法解决了同样的问题

它将允许您通过nice XML配置块访问mule对象存储API,这样您就可以将变量存储在内存中,完成后可以恢复这些变量,而不受流逻辑的影响

希望这有帮助