这篇参照:https://resources.docs.Salesforce.com/sfdc/pdf/integration_Patterns_and_practices.pdf

这篇blog详细介绍 Remote Call-In 集成化方式,一言以蔽之:此类方式用以储存在Lightning PlatfORM中的数据信息由远程控制系统软件建立、查找、升级或删掉
先说一下对于 salesforce的 callout 及其 call in 。 简易的而言, callout便是 salesforce call外界系统软件。 Call in 便是外界系统软件 call salesforce。此方式用以 外界系统软件 call salesforce的情景。

一. 前后文
我们在salesforce中往前走sales cloud的步骤,从 lead 变换到 Account Opportunity,对Opportunity开展跟踪。当赢单之后建立订单信息。 可是订单信息由外界(远程控制)管理信息系统。当订单信息根据其解决环节时,远程控制系统软件必须升级Salesforce中的订单信息。

以上的情景是官方网的一个sample,自然除开这一情景之外,大家具体新项目中这类事例数不胜数。
例如对于中国的新项目,尤其是市场销售或是零售有关的实际操作,许多 实际操作全是根据平板电脑或是手机上开展实际操作,随后即时或是点特定按键同歩到salesforce端,这类都归属于 Remote Call-In的情景。

二. 难题和考虑到要素
难题: 远程控制系统软件怎样与Salesforce连接并开展身份认证,以通告Salesforce外界事情、建立纪录和升级目前纪录?

考虑到要素:

  • 远程控制启用Salesforce的目地是应用量化策略体系结构通告Salesforce外界产生的事情吗?或是目地是对特殊纪录实行实际操作?假如应用量化策略体系结构,则事情经营者(远程控制过程)将与Salesforce事情使用人分离出来。
  • 对Salesforce的启用是不是规定远程控制过程在再次解决以前等候回应?对Salesforce的远程控制启用自始至终是同歩的request-reply,可是假如不用远程控制过程来仿真模拟异步调用,则远程控制过程能够舍弃回应。
  • 每一个事务管理是对于单独Salesforce目标或是对于好几个有关目标开展实际操作?
  • 消息的格式是啥(比如,根据HTTP的SOAP或REST,或二者)?
  • 信息尺寸是相对性较小或是很大?
  • 假如远程控制系统软件适用SOAP,那麼远程控制系统软件是不是可以参加契约书优先选择(contract-first)方式 ?在应用SOAP API的地区,它是必不可少的,因此给予了预订义的WSDL。
  • 是不是必须开展transaction解决?
  • 对Salesforce订制的忍受水平怎样?是不是有充足的資源去做 salesforce的自订制

. 解决方法

根据以上的难题和考虑到要素,salesforce推荐了有关的解决方法,详细信息以下报表所显示

解决方法

兼容水平

Comments

SOAP API

Best

Salesforce给予了一个规范的SOAP API,远程控制系统软件能够应用该API开展下列实际操作:

 

–公布事情以通告您的Salesforce机构

–查看机构中的数据信息

–建立、升级和删掉数据信息

–获得机构的数据库

–运作应用工具以实行管理方法每日任务

•同歩API传出API启用后,远程控制手机客户端应用软件将等候,直至接到来源于服务项目的回应。不兼容对Salesforce的异步调用。

•转化成的WSDL Salesforce为远程控制系统软件给予了2个WSDL:

–公司WSDL给予特殊于Salesforce机构的强种类WSDL。

–合作方WSDL包括一个疏松种类的WSDL,它并不是特殊于Salesforce机构的。

安全性实行SOAP API的手机客户端务必具备合理的用户名,并得到对话以实行一切API启用。API重视Salesforce中根据登陆客户环境变量配备的目标级和字段名级安全系数。

•事务管理/递交个人行为默认设置状况下,假如一些纪录标识有不正确,则每一个API启用都容许一部分取得成功。这能够更改成“所有或无”个人行为,假如产生一切不正确,将回退全部結果。不太可能跨好几个API启用跨事务管理。为了更好地摆脱这一限定,一个API启用能够危害好几个目标。

•大批量数据信息—一切包括2000条之上纪录的数据信息实际操作全是Bulk API 2.0取得成功提前准备、实行和管理方法应用大批量架构线程工作流引擎的理想化挑选。低于2000条纪录的工作应当涉及到REST(比如,复合型)或SOAP中的“大批量化”同歩启用。

•量化策略构架服务平台事情的界定方法与Salesforce目标的界定方法同样。根据soapi公布事情与建立Salesforce纪录同样。仅适用建立和插进实际操作。

REST API

Best

Salesforce给予了一个规范的REST API,远程控制系统软件能够应用该API:

 

–公布事情以通告您的Salesforce机构

–查看机构中的数据信息

–建立、升级和删掉数据信息

–获得机构的数据库

–运作应用工具以实行管理方法每日任务

•同歩API传出API启用后,远程控制手机客户端应用软件将等候,直至接到来源于服务项目的回应。不兼容对Salesforce的异步调用。

•REST API与SOAP API-REST将資源(实体线/目标)公布为URI,并应用HTTP谓词界定对这种資源的CRUD实际操作。与SOAP不一样,restapi不用预订义的契约书,应用XML和JSON开展回应,而且具备疏松的种类。restapi是轻量的,它给予了一种与Salesforce互动的简易方式 。它的优势包含便于集成化和开发设计,是与挪动应用软件和Web应用程序流程相互配合应用的最好的选择。

•安全性实行REST API的手机客户端务必具备合理的用户名,并得到对话以实行一切API启用。API重视Salesforce中根据登陆客户环境变量配备的目标级和字段名级安全系数。

•事务管理/递交个人行为默认设置状况下,每一个纪录都被视作一个独立的事务管理并各自递交。一个纪录变更不成功不容易造成别的纪录变更回退。此个人行为能够更改成“都有或毫无”个人行为。应用restapi复合型資源在一个API启用中开展一系列升级。

•REST复合型資源应用这种REST API資源在单独API启用中实行好几个实际操作。还可以应用一个启用的輸出做为下一个启用的键入。要求的全部回应行为主体和HTTP情况都是在单独回应行为主体中回到。全部要求都算是一个合乎API限定的启用。

•大批量数据信息—一切包括2000条之上纪录的数据信息实际操作全是大批量API 2.0取得成功提前准备、实行和管理方法应用大批量架构的多线程工作流引擎的理想化挑选。低于2000条纪录的工作应当涉及到REST(比如,复合型)或SOAP中的“大批量化”同歩启用。

•量化策略构架服务平台事情的界定方法与Salesforce目标的界定方法同样。根据restapi公布事情与建立Salesforce纪录同样。仅适用建立和插进实际操作。

Apex web services

Suboptimal

Apex类方法能够做为web服务方式 公布给外界应用软件。此方式 是SOAP API的取代方式 ,一般仅在务必达到下列额外规定的状况下应用。

 

•必须全方位的事务管理适用(比如,在一个事务管理中建立账号、手机联系人和机遇)。

•在提交之前,务必在Salesforce端运用自定逻辑性。应用apexweb服务的益处务必与Salesforce中必须维护保养的附加编码开展衡量。不适感用以Platform Event,由于使用人处的事务管理预插进逻辑性不适感用以根据量化策略的系统架构。要通告Salesforce机构发生了事情,请应用SOAP API、REST API或Bulk API 2.0。

Apex REST services

Suboptimal

Apex类能够公布为投射到特殊uri的REST資源,并应用对于它界定的HTTP谓词(比如POST或GET)。您能够应用restapi复合型資源在单独事务管理中实行好几个升级。Apex REST服务项目与SOAP不一样,它不用远程服务器应用服务项目界定/承诺(WSDL)并转化成远程服务器底单。远程控制系统软件只必须可以产生HTTP要求并解决回到的結果(XML或JSON)。不适感用以Platform Event,由于使用人处的事务管理预插进逻辑性不适感用以根据量化策略的系统架构。要通告Salesforce机构发生了事情,请应用SOAP API、REST API或Bulk API 2.0。

Bulk API 2.0

Optimal for bulk

operations

bulkapi2.0根据REST基本原理,并对于载入或删掉大中型数据开展了提升。它与restapi具备同样的可浏览性和安全性个人行为。一切包括超出2000条纪录的数据信息实际操作全是BulkAPI2.0取得成功提前准备、实行和管理方法运用Bulk架构的多线程工作流引擎的理想化挑选。低于2000条纪录的工作应当涉及到REST(比如,复合型)或SOAP中的“大批量化”同歩启用。bulkapi2.0容许远程服务器应用软件根据递交Salesforce在后台管理解决的很多批来多线程查看、插进、升级、升級或删掉很多纪录。比较之下,soapi对于一次升级小量纪录的即时远程服务器应用软件开展了提升。虽然SOAP-API还可以用以解决很多纪录,但当数据包括数十万到上百万条纪录时,它就越来越不太好用了。它是因为其相对性较高的花销和较低的特性特性。

 

•量化策略构架服务平台事情的界定方法与Salesforce目标的界定方法同样。根据大批量API 2.0公布事情与建立Salesforce纪录同样。仅适用建立和插进实际操作。批处理命令作业处理时,批处理命令中的事情将多线程公布到Salesforce事情系统总线

 . 步骤手稿

下面的图表明了在应用RESTAPI(用以外界事情的通告)或SOAP API(用以查看Salesforce目标)完成此方式时的事情编码序列。应用restapi时,事情的次序是同样的。

下面的图为SOAP API步骤

 SalesforceIntegration概述(五)RemoteCall-In(远程控制外界->salesforce)插图

下面的图为REST API步骤

 SalesforceIntegration概述(五)RemoteCall-In(远程控制外界->salesforce)插图1

. 别的关键环节

1.启用体制:启用体制在于为完成此方式而挑选的解决方法。

启用体制

叙述

SOAP API

远程控制系统软件应用Salesforce公司或合作方WSDL转化成远程服务器底单,这种底单相反用以启用规范soapapi。

REST API

远程控制系统软件务必在浏览一切Apex REST服务项目以前开展身份认证。远程控制系统软件能够应用OAuth 2.0或登录名/登陆密码身份认证。在一切一种状况下,远程服务器都务必应用适度的值设定受权HTTP头(OAuth浏览动态口令或对话ID能够根据对soapapi的登陆启用得到)。随后,远程控制系统软件应用适度的形容词转化成REST启用(HTTP要求),并解决回到的結果(适用JSON和XML数据类型)。

Apex web service

远程控制系统软件应用订制Apex web服务WSDL来转化成远程服务器底单,这种底单相反用以启用订制Apex web服务。

Apex REST service

依据restapi,資源URI和可用的谓词是应用@RestResource、@HttpGet和@HttpPost注解界定的。

Bulk API 2.0

bulkapi2.0是一个根据REST的API,因而运用了与restapi同样的启用体制。

REST API to invoke Flow

应用restapi调用自定invocable实际操作节点以启用自动启动的流。

 2.Error Handling & Recovery

 集成化就牵涉到挥手实际操作及其根据 token或是Session等受权信息内容开展SOQL Query或是数据信息的DML实际操作。以中国为例子。由于salesforce在中国沒有网络服务器,而且浏览比较慢,根据SOAP / REST 规范的API全是同步控制,非常容易常常遇到请求超时状况,除此之外,大家还需要考虑到DML的程序流程难题或是 validation rule / trigger等 addError的个人行为。对于 Error Handling及其 Recovery官方网提议以下:

处理错误—全部远程控制加入方式 、规范或自定API都规定远程控制系统软件解决一切事后不正确,比如请求超时和再试管理方法。必需状况下能够引进分布式数据库,分布式数据库可用以给予处理错误和修复的逻辑性。

修复—假如服务水平规定规定,则必须建立自定再试体制。在这类状况下,保证幂等设计方案特点十分关键。Platform Event使定阅者可以在信息公布后的特殊时间范围内应用replay ID获得信息

 3.幂等性考虑到:幂等涵数作用确保反复启用是安全性的,不容易造成不良影响。假如未完成幂等性,则对同一信息的反复启用很有可能会造成不一样的結果,很有可能会造成数据库安全难题,比如,建立重复记录、反复处理事件等。在产生不正确或请求超时的状况下,远程控制系统软件务必管理方法好几个(反复)启用,以防止反复插进和沉余升级(尤其是在开启中下游触发器原理和工作流引擎标准时)。尽管能够在Salesforce中管理方法在其中一些状况(特别是在订制SOAP和REST服务项目的状况下),但大家提议远程控制系统软件(或分布式数据库)管理方法处理错误和幂等设计方案。

 4.时效性及其信息量

时效性:SOAP API 及其Apex Web service API全是同歩的实际操作,遵循着下列的 timeout limitation

Session timeout :依据Salesforce机构的对话请求超时设定,要是没有主题活动,对话将请求超时(不一定100%的接近,例如session setting设定的2钟头,有时即便超出2钟头也不会对话请求超时,有可能3、4钟头之后才会请求超时,不肯定,可是要遵循最坏状况的解决标准)

Query timeout:每一个SOQL的查看有一个单独的120秒的限定。

 信息量:信息量的考虑到必须在于大家选用了哪一个计划方案,能够看一下下边的报表

解决方法

通讯种类

限定点

SOAP API或是REST API

同歩

SOAP Login: SOAP login request 尺寸要限定在10K之内。每一个人每钟头启用 login函数数最多3600次,假如超出了这一限定,便会出错

Create/ Update/ Delete:一次实际操作数最多实际操作200条数据信息。假如实际操作数据信息超出了200条,必须好几个call,可是必须确保每一个call数最多200条数据信息

Query Results Size: 根据启用 query()及其queryMore默认设置是500,数最多能够2000.

Event Message—较大事情信息尺寸为1 MB。应用Salesforce API公布事情将也测算在规范API限定中。

Bulk API 2.0

同歩

Bulk API适用实际操作总数超出2000条的状况,假如实际操作的总数超出了2000条,最好是应用 bulk,而不是 SOAP/REST

 六: 普遍考试题

 Universal Containers (UC) has integrations developed between Salesforce and back-end ERP applications. During peak load, UC is getting an error at the integration layer indicating, “Login Rate Exceeded”. Which two recommendations would mitigate tHIS issue?

 Use a different user for each integration.

Cache the session ID to avoid a login call.

一个user1小时有数最多3600次 login启用的限定,假如发生了 Login Rate Exceeded难题,要不应用别的的账户,要不取得成功登陆之后储存session 信息内容,降低 login方式 的启用

汇总:篇中关键详细介绍了Remote Call in集成化方式的有关专业知识,这一集成化方式具体情景也常常使用。篇中有不正确地区热烈欢迎强调,又不明白热烈欢迎留言板留言。

创作者:zero

博客地址:http://www.cnblogs.com/zero-zyq/

文中热烈欢迎转截,但没经创作者允许务必保存此段申明,且在文章内容网页页面显著部位得出全文联接

本人安装了一些有关学习培训的PDF文档,假如必须免费下载请浏览百度云盘 点一下这里浏览 登陆密码:jhuy

假如文章内容的內容对您有协助,热烈欢迎关注点赞~

为便捷移动端查询blog,现已经将blog转移至微信公众平台:Salesforce基础学习培训,热烈欢迎诸位关心。