在 salesforce 中创建潜在客户时,我想将所有潜在客户详细信息及其帐户详细信息从 REST API 调用发送到 SAP hybris。
任何人都可以建议任何与如何将 salesforce 数据发送到 SAP 等外部系统相关的源代码吗?
下面是我用来创建自定义 API 的源代码。
我还想在创建或更新潜在客户时使用触发器,是否需要任何批量化或需要包装类来将数据从 salesforce 发送到外部站点(从 REST API)。
代码:
public class CalloutExampleToCreateMultipleContacts {
public static final String CONSUMER_Key = '';
// paste your client id here
public static final String CONSUMER_SECRET = '';
// paste the client secret here
public static final String USERNAME = '[email protected]';
// paste your your name here
public static final String PASSWORD = '';//paste the salesforce password and the security token
public static void insertLead(List<Lead> LeadList){
AccessTokenWrapper accessTokenWrapperObj = genrateToken();
//this is the wrapper class of token generation
system.debug('--access token->'+accessTokenWrapperObj);
if(accessTokenWrapperObj != null && accessTokenWrapperObj.access_token != null){
String endpoint = 'https://cloudanalogy123-dev- ed.my.salesforce.com/services/apexrest/createContact22/';
String requestBody = JSON.serialize(LeadList);
HTTP http = new HTTP();
HttpRequest request = new HttpRequest();
request.setBody(requestBody);
request.setMethod('POST');
request.setHeader('Authorization', 'Bearer '+accessTokenWrapperObj.access_token);
request.setHeader('Content-type','application/json');
request.setHeader('Accept','application/json');
request.setEndpoint(endpoint);
HttpResponse response = http.send(request);
System.debug('Status code:'+response.getStatusCode()+'==>'+response.getBody());
}
}
// function to get the access token
public static AccessTokenWrapper genrateToken()
{
String requestBody = 'grant_type=password&client_id='+CONSUMER_Key+'&client_secret='+CONSUMER_SECRET+'&username='+USERNAME+'&password='+PASSWORD;
String endpoint = 'https://login.salesforce.com/services/oauth2/token';
HTTP http = new HTTP();
HttpRequest request = new HttpRequest();
request.setBody(requestBody);
request.setMethod('POST');
request.setEndpoint(endpoint);
HttpResponse response = http.send(request);
System.debug('response==>'+response.getBody()+'Status code:'+response.getStatusCode());
if(response.getStatusCode() == 200){
system.debug('');
return
(AccessTokenWrapper)System.JSON.deserialize(response.getBody(), AccessTokenWrapper.class);
}
else{
return null;
}
}
// wrapper class to store the access token values
public class AccessTokenWrapper{
public string access_token;
public string instance_url;
public string id;
public string token_type;
public string issued_at;
public string signature;
}
}
采用编写 REST API 调用的方法有一些缺点。 特别是如果您有数百万行数据。您需要一个可扩展的解决方案。喜欢:
我建议您设置 Salesforce 实例的 Heroku Connect Postgres 镜像。顺便说一句,如果您有企业许可证,Salesforce 会为您提供一些“免费”Heroku Connect 资源。
Heroku Connect 安装后,将 RDB 同步软件包(例如 SymmetricDS)安装到 Postgres 实例,然后将 SymDS 的触发器加载到 SAP Hybris 附加到的关系数据库中。