在 Mule Anypoint Studio 中定义各种数据库和 Salesforce 访问信息

Defining various DB & Salesforce access information in Mule Anypoint Studio

我是运行Windows下的Mule Anypoint studio v6.2.4。我有一个应用程序,它从 SQL 服务器数据库获取数据记录并将它们填充到 Salesforce 组织中。该应用程序是使用示例开发的,在 mule.{mule.env}.properties 文件中定义的一个 DB 和一个 SF 参数的当前场景中工作正常。

现在我需要为输入记录访问不同的数据库并将它们填充到不同的 Salesforce 组织。每次更改属性文件中的访问参数既乏味又容易出错。 (例如 4 个 DB 和 4 个 SF 组织}

我想做的是定义访问参数(针对各种 SQL 服务器数据库和 Salesforce 组织),将 DbName 和 SFName 指定为 http 查询参数,然后让 mule 应用程序选择正确的连接参数。

我将如何完成它?详细信息将对我有所帮助,因为我还不是很精通 Mule。

谢谢

基肖尔

您可以创建一个包含完整数据库连接列表的 属性 文件:

#DB of puppies
postgres.puppies.user=mule
postgres.puppies.password=password
postgres.puppies.host=db-1
postgres.puppies.db=mule-puppies

#DB of cars
postgres.cars.user=mule
postgres.cars.password=password
postgres.cars.host=db-2
postgres.cars.db=mule-cars

已更新

然后,如果您想从加载您的属性之一的数据编织组件中读取查询参数:

%dw 1.0
%output application/java
---
p("postgres." ++ inboundProperties."http.query.params"['db-name'] ++ ".user")

注意:考虑当QueryParameter.db-name为null时你会得到一个异常(你应该处理这个异常),或者,另一种方法是通过处理来自您自己的数据编织 (https://forums.mulesoft.com/questions/28105/how-do-i-do-a-null-check-in-dataweave.html) 的空值,例如当 null 你可以定义一个默认数据库

希望这有助于澄清