Mule :根据输入值使用动态配置参考

Mule : Use dynamic config-ref based on input values

我正在尝试使用一些配置连接到 SQL 数据库。但是根据 API 的输入,我们应该命中不同的数据库。

截至目前,我们的代码为

<choice doc:name="Check myFlag">
  <when expression="#[flowVars.myFlag == 'true']">
    <db:stored-procedure config-ref="Database_Configuration_1" doc:name="DB_config_1">
      <db:dynamic-query><![CDATA[#[flowVars.callSPName]]]></db:dynamic-query>
    </db:stored-procedure>    
  </when>
  <otherwise>   
    <db:stored-procedure config-ref="Database_Configuration_2" doc:name="DB_config_2">
      <db:dynamic-query><![CDATA[#[flowVars.callSPName]]]></db:dynamic-query>
    </db:stored-procedure>      
  </otherwise>
</choice>

不是重复 <db:stored-procedure../> 两次,有没有一种方法可以使用数据库配置参考设置流变量并使用它?

有点像,

<db:stored-procedure config-ref="#[flowvars.db_config]" doc:name="DB_config_2">
  <db:dynamic-query><![CDATA[#[flowVars.callSPName]]]></db:dynamic-query>
</db:stored-procedure>

将数据库调用放在一个子流中,并从具有 <flow-ref> 的其余流中调用它。

在 Mule 3 中,没有。 config-ref 是在应用程序启动时评估的,而不是运行时。

在 Mule 4 中,使用动态配置是可能的:https://docs.mulesoft.com/mule-sdk/1.1/static-dynamic-configs

此处记录了潜在的 Mule 3 解决方案:https://help.mulesoft.com/s/article/How-to-configure-connector-with-dynamic-parameters