使用DreamFactory集成Salesforce数据

Salesforce是事实上的标准CRM解决方案或大或小的公司用来管理客户信息和交互。尽管许多竞争解决方案存在,Salesforce的主导地位是明确表示,在公司的2019年年度报告在它州95%的财富100强公司的运行至少一个应用程序套件的解决方案。

许多公司渴望访问和管理Salesforce数据到其他应用程序。DreamFactory可以大大减少所需的工作量这样做由于原生Salesforce数据库连接器。在这一章中,您将了解如何配置连接器,然后使用DreamFactory-generated REST API与Salesforce数据库交互。

配置Salesforce服务

Salesforce帐户连接到DreamFactory很容易完成几个步骤。与所有DreamFactory服务一样,你首先登录DreamFactory实例,选择服务选项卡,并单击创建位于左边的菜单条的链接。从那里你会选择Salesforce服务位于数据库类别:

接下来你将分配一个名称、标签和描述。回忆从先前的章节名称将会扮演一个角色作为生成的API的名称空间URI结构,因此您需要使用字母数字字符。我将使用这个名字salesforce本教程的目的。标签和描述作为参考信息,可以指定任何你请。

接下来,单击配置选项卡。在这里您将输入身份验证凭证用于连接您的销售团队环境。DreamFactory支持两种身份验证选项:OAuth和non-OAuth。我将向您展示如何配置后者。配置non-OAuth身份验证,您需要完成以下配置标签:

  • 用户名:这是你使用的电子邮件地址登录你的Salesforce帐户。
  • 密码:这是与你的Salesforce账户相关联的密码。
  • 安全令牌:这是一个字母数字键Salesforce提供的API与您的用户名和密码。它的目的是作为一个额外的保障账户的用户名和密码应该妥协。我将向您展示如何找到您的帐户的安全令牌。
  • 组织WSDL:组织WSDL定义的web服务端点与特定的组织有关。我将向您展示如何获得并安装这个文件。

获得安全令牌

我相信你知道你的Salesforce账户用户名和密码,所以让我们把注意安全令牌。Salesforce账号登录,点击您的帐户阿凡达位于页面的右上角:

单击设置链接。在页面的左边你会看到一个链接标题重置我的安全令牌。单击重置安全令牌按钮来生成一个新的令牌。新令牌将电子邮件与您的帐户关联的电子邮件地址。这个令牌粘贴到DreamFactory安全令牌字段。

企业获取WSDL

接下来,让我们获得企业的WSDL文档。你的Salesforce账户登录,在搜索框中输入API位于页面的顶部。从列表中选择API的候选人结果。你会采取以下页面:

单击企业生成WSDL生成所需的WSDL文档的链接。这将打开一个新标签包含文档的内容。将内容复制到一个文件命名enterprise.wsdl(你可以调用任何你想要的文件,确保它使用wsdl扩展)。Chrome等浏览器将预先考虑一个警告消息的文档内容。例如这是Chrome补充道:

这个XML文件似乎没有任何与之关联的样式信息。文档树如下所示。

你需要删除任何此类信息在WSDL文档的开始,因为它是无效的语法。保存更改后,将文件上传到DreamFactory服务器并将其DreamFactory内存储/ wsdl目录中。然后返回到配置选项卡并设置组织WSDL场到WSDL文件的名称(不包括路径)。

完成后用户名,密码,安全令牌,组织WSDL字段,通过按下保存更改保存按钮。祝贺您,Salesforce API刚刚生成的!

与Salesforce API进行交互

在保存你的新Salesforce API,头到API文档选项卡来学习更多关于生成的端点。也许最明显的是在探索性阶段,你要查看的GET / _table检索一个或多个表端点,因为执行它将所有表的列表可以查询和修改。在撰写本文时受到近500表,给你各种各样的关于管理Salesforce数据功能。

在可用的表是一个命名的账户。你可以从这个表检索数据导航到下一个可用端点的API文档接口。这是名字GET / _table / {table_name}检索一个或多个记录。单击试试按钮,进入账户table_name场,并按执行。作为回报,你会收到一个数组Salesforce数据库的帐户管理。下面我粘贴的部分例子例子Salesforce数据库记录中发现的例子:

{"属性":{“类型”:“账户”,“url”:“/服务/数据/ v46.0 / sobjects /账户/ 0016 a00000mjrn9qap”},“Id”:“0016 a00000mjrn9qap”、“IsDeleted”:假的,“MasterRecordId”:空,“名字”:“联合石油天然气公司”,"Type": "Customer - Direct", "ParentId": null, "BillingStreet": "1301 Avenue of the Americas \r\nNew York, NY 10019\r\nUSA", "BillingCity": "New York", "BillingState": "NY", "BillingPostalCode": null, "BillingCountry": null, ... "CustomerPriority__c": "High", "SLA__c": "Platinum", "Active__c": "Yes", "NumberofLocations__c": 955, "UpsellOpportunity__c": "Yes", "SLASerialNumber__c": "6654", "SLAExpirationDate__c": "2018-10-04" },

检索一个特定的帐户记录

检索一个特定的帐户,您可以使用GET / _table / {table_name} / {id}端点。例如上面的例子“联合石油天然气公司”账户与id相关联0016年a00000mjrn9qap。因此您可以获得这个特定记录通过请求以下URI:

/ api / v2 / salesforce a00000mjrn9qap / _table /账户/ 0016

检索特定字段

账户与数十名属性相关联,其中许多可能不感兴趣。您可以使用字段参数识别特定属性你想返回:

/ api / v2 / salesforce / _table /账户/ 0016 a00000mjrn9qap ? =字段名称、类型、BillingCity

这个请求会返回以下反应:

{"属性":{“类型”:“账户”,“url”:“/服务/数据/ v46.0 / sobjects /账户/ 0016 a00000mjrn9qap”},“名字”:“联合石油天然气公司”“类型”:“客户——直接”,“BillingCity”:“纽约”,“Id”:“0016 a00000mjrn9qap”}

更新记录

许多DreamFactory用户使用Salesforce连接器方便更新记录之外的Salesforce web界面。您可以轻松地使用补丁/ _table / {table_name}端点。例如,假设您想更新“联合石油天然气公司”账户记录包括计费纬度和经度。毕竟,一个永远不能太严格的计费需求时。

你会发送更新记录补丁要求:

/ api / v2 / salesforce a00000mjrn9qap / _table /账户/ 0016

请求的身体看起来像这样:

{“BillingLatitude”:“40.762025”,“BillingLongitude”:“-73.980074”}

在应对补丁请求你会接收返回的记录ID:

{" Id ": " 0016 a00000mjrn9qap "}

如果你想额外的字段返回的响应,使用字段参数:

/ api / v2 / salesforce / _table /账户/ 0016 a00000mjrn9qap ? =字段名称,BillingCity

在成功更新,返回以下响应:

{"属性":{“类型”:“账户”,“url”:“/服务/数据/ v46.0 / sobjects /账户/ 0016 a00000mjrn9qap”},“名字”:“联合石油天然气公司”“BillingCity”:“纽约”,“Id”:“0016 a00000mjrn9qap”}

同步与MySQL Salesforce数据

许多DreamFactory用户渴望与数据库同步Salesforce数据如MySQL。这可以通过使用一些不同的方法。最简单的涉及添加业务逻辑的一个暴露Salesforce API端点。例如,假设我们想另外检查一个MySQL数据库存在的帐户记录每次检索一个特定的帐户记录是通过Salesforce API。如果记录不存在在MySQL数据库中,我们将添加它。

为此,导航到脚本选项卡在你DreamFactory管理控制台,选择salesforceAPI,然后向下,直到你到达salesforce._table.Account.get.post_process端点。的post_process事件处理程序将执行被选中,是因为相关的业务逻辑帐户数据已经从Salesforce回来。

在这里你会看到脚本编程接口。四个脚本引擎支持,包括PHP、Python(2和3),NodeJS, V8JS。你可以链接到一个脚本中发现库托管在GitHub, GitLab,或BitBucket都,然而这个例子的目的我就使用荣耀文本区域中包含的接口。

回到我们之前的例子中,回想一下,这个请求:

/ api / v2 / salesforce / _table /账户/ 0016 a00000mjrn9qap ? =字段名称,BillingCity

将返回此响应:

{"属性":{“类型”:“账户”,“url”:“/服务/数据/ v46.0 / sobjects /账户/ 0016 a00000mjrn9qap”},“名字”:“联合石油天然气公司”“BillingCity”:“纽约”,“Id”:“0016 a00000mjrn9qap”}

JSON将自动转换为一个数组,用于脚本中美元的事件数组是注入脚本。特别地,你会发现它美元的事件(“响应”)(“内容”)。下面的示例脚本检索这个数组,并重新改名叫所需的数据在另一个数组美元的记录随后发布了另一个API命名是哪一个mysql,特别是API的计费表:

= $ $ api平台(“api”);/ /检索响应的身体。这包含返回的记录。responseBody =美元事件(“响应”)(“内容”);美元记录= [];美元记录[“资源”]=[['名字' = > responseBody美元“名称”,“billing_city”= > responseBody美元[“BillingCity”]]];$ url =“mysql / _table /计费/”;$ = $ api后- >发布;结果=美元post (url,记录,美元[]);返回结果美元;

记住所支持的脚本引擎(PHP、Python、NodeJS V8JS)不完整或蹒跚的版本。这些是同一DreamFactory引擎安装在同一台服务器上,因此您可以自由利用任何特定于语言包或库只需安装在服务器上。

结论

DreamFactory Salesforce的连接器可以显著降低所需的时间和精力与其他系统集成Salesforce。如果你想了解更多关于DreamFactory能为你做什么,邮件我们info@dreamfactory.com!

Baidu
map