我在Windows下运行Mule Anypoint studio v6.2.4。我有一个应用程序从SQL Server数据库获取数据记录并将它们填充到Salesforce组织。该应用程序是使用示例开发的,在mule.{mule.env}.properties
文件中定义的一个DB和一个SF参数的当前场景下工作正常。
现在,我需要访问不同的数据库以获取输入记录,并将它们填充到不同的Salesforce组织。每次更改属性文件中的访问参数都很繁琐且容易出错。 (例如4 DB& 4 SF Orgs}
我想要做的是定义访问参数(针对各种SQL Server DB和Salesforce Orgs),将DbName和SFName指定为http查询参数,并让mule应用程序选择正确的连接参数。
我将如何完成它?细节会对我有所帮助,因为我对骡子并不熟练。
由于
基肖尔马布
答案 0 :(得分:1)
您可以使用完整的数据库连接列表创建一个属性文件:
#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
然后,如果你想从dataweave组件读取一个查询参数,加载你的一个属性:
%dw 1.0
%output application/java
---
p("postgres." ++ inboundProperties."http.query.params"['db-name'] ++ ".user")
注意:考虑当QueryParameter.db-name
为空时,您将获得异常(您应该处理此异常),或者,另一种方法是通过处理您自己的数据中的空值-weave(https://forums.mulesoft.com/questions/28105/how-do-i-do-a-null-check-in-dataweave.html),例如当为null时,您可以定义默认数据库
希望这有助于澄清