Pentaho / Salesforce:如何将SF-Enterprise-Web-Services-API V48.0集成到仅支持v47.0的PDI 9.0中

问题描述 投票:1回答:1

实际上我正在使用PDI 8.2,但是我能够升级到9.0。

主要问题是,客户希望从salesforce提取数据,到目前为止效果很好。但是他使用的企业Web服务API版本为48.0,最新的Pentaho仅支持v47.0。

我坚决认为,通过v48.0进行读取不适用于PDI,因此我必须构建一种解决方法。谁能指出我可行的解决方案?老实说,我什至不知道Enterprise API或Partner API是否与Pentaho相关。拥有自己的SF帐户,以便我可以尝试使用API​​。解决方案是否就是“ Web服务查找”的正确步骤?

任何答案将不胜感激!预先感谢!

web-services salesforce pentaho kettle pdi
1个回答
0
投票

哦,遍地都是个疯狂的问题。

我坚决认为无法通过v48.0进行阅读

您必须尝试一下,但是应该可以。 Salesforce一年有3个版本,也就是他们升级API版本的时间。我们现在在Spring'20,v.48。这并不意味着以下任何内容都已弃用。使用任何=> 20的API版本进行调用都应该没有问题。据我记得,他们的主要服务协议指出,发布的API版本至少可以保留3年。好吧,v.20已经9岁了,而且仍然很强大...

例如,检查https://baa.my.salesforce.com/services/data/(如果您的客户启用了“我的域”,那么您也可以使用它代替某些未知的公司),您应该会看到类似于以下的列表:https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_versions.htm(无需登录,那是个麻烦的蛋。在进行登录调用时,您需要选择所需的API版本)。

所以...您的集成是做什么的。我假设它可以读取或写入SF表(对象),这是非常基本的东西。从这个意义上说,47 vs 48无关紧要。您仍然应该看到客户,联系人,自定义对象...您不会看到在v 48中专门创建的表。除非您必须看到Spring'20 release notes中提到的内容,否则我不会太担心。

如果您的客户编写了特定的类(服务)来向您显示数据,并且该数据是在v.48中编写的,则当您以v.47登录时,它可能不可见。但随后他们可以降级版本,一切都应该很好。无论如何,此类定制服务很少能被通用ETL工具使用,因此仅当您进行定制编码时,才需要担心。

企业或合作伙伴API是否与Pentaho相关

类似您的ETL工具的声音使用SOAP API。 Salesforce提供了带有服务定义的WSDL文件的2个版本。

“ Partner”是通用的,世界上所有SF组织都产生相同的WSDL文件。它不包含有关表,列和在vanilla salesforce之上编写的自定义服务的任何具体信息。但是它确实包含有关如何调用login()或运行“描述”的信息,该信息为您提供了用户可以看到的所有表,它们的名称,列,数据类型等等,因此您可以在运行时学习。当您正在构建可连接到任何SF的通用可重用应用程序时,或者您希望成为动态应用程序时,“伙伴”非常有用(某些备份工具每天都会学习列,并且可以毫无问题地处理更改)。

“企业”将特定于此特定客户。它包含“合作伙伴”拥有的所有内容,但还将包含数据库表的当前状态等说明。因此,您不必调用“描述”,您已经拥有了一切。您可以使用它来“消费” WSDL文件,从中生成Java / PHP / C#类,并像其他任何普通对象一样在程序中与它们进行交互,而不用编写XML消息。缺点是,如果添加了新字段或新表-您将不知道您的程序是否不调用“描述”。您需要生成新的WSDL并再次使用它,然后重新编译程序...

正确选择一个人确实取决于您需要做什么。我通常遇到的ETL工具可以与“伙伴”一起使用。

“ Web服务查找”是否正确?

[不知道,我已经使用过Informatica,Azure数据工厂,Jitterbit,Talend ...,但是对这个Pentaho东西一无所知。就试一试吧。如果您直接从SF表中提取数据而无需调用任何自定义代码(您可以想到SF自定义服务,例如从存储过程中提取数据)-API版本应该没有太大关系。如果您选择<41.0,我相信您不会看到“单个对象”,但我怀疑您是否需要处于如此前沿的地位。

© www.soinside.com 2019 - 2024. All rights reserved.