Mulesoft批量处理多个连接器

Mulesoft批量处理多个连接器,mule,mulesoft,mule-esb,Mule,Mulesoft,Mule Esb,我有3个Salesforce实例,我需要从中轮询数据,然后通过带水印的更改对这些数据进行操作。我试图以一种足够动态的方式来设计它,如果我需要添加另一个X数量的源,我不会重复所有批处理都具有的一组业务逻辑 下面是一个示例,说明我当前的流程在单个Salesforce组织中的情况 现在,我希望能够以某种方式在配置文件上为每个使用一个,允许我从.properties文件中提取登录凭据,轮询每个组织,然后适当地处理记录 是否有一种方法可以将其结构化为具有多个轮询/批处理,但使用不同的连接器 所有组织上的

我有3个Salesforce实例,我需要从中轮询数据,然后通过带水印的更改对这些数据进行操作。我试图以一种足够动态的方式来设计它,如果我需要添加另一个X数量的源,我不会重复所有批处理都具有的一组业务逻辑

下面是一个示例,说明我当前的流程在单个Salesforce组织中的情况

现在,我希望能够以某种方式在配置文件上为每个使用一个
,允许我从
.properties
文件中提取登录凭据,轮询每个组织,然后适当地处理记录

是否有一种方法可以将其结构化为具有多个轮询/批处理,但使用不同的连接器

所有组织上的查询都是相同的,只是连接不同

我的
.properties
文件如下所示:

sf.org1.user=email@domain.com
sf.org1.pass=![encrypted]
sf.org1.token=![encrypted]

sf.org2.user=email@domain.com
sf.org2.pass=![encrypted]
sf.org2.token=![encrypted]

我可以以动态方式执行此操作,还是需要为我添加的每个组织添加一个批处理过程?

如果添加一个带有逗号分隔的组织列表的属性,则可以将其拆分为一个列表。使用
可以使用列表的每个元素参数化每个组织相同批次的执行

我将从批处理中进行轮询以触发流

示例属性:

organizations=org1,org2
流程和批次示例:

  <flow name="pollFlow">
    <poll doc:name="Poll" >
      <fixed-frequency-scheduler frequency="10" timeUnit="SECONDS"/>
      <logger message="Flow started" level="INFO" doc:name="Logger"/>
    </poll>
    <dw:transform-message doc:name="Transform Message">
      <dw:input-payload mimeType="application/java" />
      <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
p('organizations') splitBy ',' map {
    user: p('sf.' ++ $ ++ '.user'),
    pass: p('sf.' ++ $ ++ '.pass'),
    token: p('sf.' ++ $ ++ '.token')
}
]]>
      </dw:set-payload>
    </dw:transform-message>
    <logger message="list of orgs credential: #[payload]" level="INFO" doc:name="Logger"/>
    <foreach doc:name="For Each">
      <batch:execute name="so-dynamic-propertiesBatch" doc:name="Batch Execute" />
    </foreach>
  </flow>
  
  <batch:job name="orgBatch">
    <batch:input>
      <logger message="on input phase #[payload]" level="INFO" doc:name="Logger" />
      <!-- here do the request with credentials payload.user, payload.pass and payload.token -->
    </batch:input>
    <batch:process-records>
      <batch:step name="Batch_Step1">
      ...

...

感谢您的回复!这是否仍然适用于水印?民意测验是否仍然可以访问上一次运行,以便我可以在记录请求中使用它?我不这么认为。我的示例是,它在轮询之外执行查询,因此它不会意识到水印。