我遇到过在批量提交中使用流程链的情况,它的大小是100条记录。 这里的流程链的目的是什么?即使批处理也按照相同的顺序执行消息。
<batch:process-records> <batch:step name="Batch_Step" > <batch:commit doc:name="Batch Commit" size="5000"> <processor-chain doc:name="PC"> <dw:transform-message metadata:id="123" doc:name="Transform Message"> <dw:set-payload>.......</dw:set-payload> </dw:transform-message> <sfdc:create-batch config-ref="SFA_NOL_MSBI" doc:name="Salesforce"> <sfdc:job-info ref="#[flowVars.jobInfo_delete]"/> <sfdc:objects ref="#[payload]"/> </sfdc:create-batch> </processor-chain> </batch:commit></batch:step></batch:process-records>
答案 0 :(得分:3)
processor-chain
主要用于那些不允许多个嵌套处理器的消息处理器
例如Message Enricher,其中只允许一个消息处理器,如果你想要多个消息处理器,需要在内部配置processor-chain
以丰富内容: -
<enricher source="#[your mel expression]" target="#[flowVars.myVal]">
<processor-chain>
<http:request config-ref="HTTP_Request_Configuration" path="/mytest/test/1" method="POST" doc:name="HTTP"/>
<logger message="#[message.payload(java.lang.String)]" level="INFO" doc:name="Logger"/>
</processor-chain>
</enricher>
请注意,在Message Enricher内,您可以同时使用多个组件,例如http:request
和logger
,如果没有processor-chain