我想使用我们的外部 ID(存储在 Salesforce 中)将某人发送到 Salesforce,然后让一些流程将他们弹回 Salesforce 中的正确页面。
所以,例如,我有一个帐户和机会的外部 ID。假设它们是 Account.AccountExtID__c 和 Opportunity.OpportunityExtID__c。
我想做的是使用我的外部 ID 构建 URL(即 https://thisismyorg.my.salesforce.com/OpportunityExtID__c),然后让 Salesforce 在相关对象上查找 OpportunityExtID__c(通过 SOQL 或其他方式) ),然后将用户重定向到正确的页面 (https://thisismyorg.my.salesforce.com/006xxxxxxxxxxx)。
最好的方法是什么(如果可能的话)?
提前致谢!
您可以创建一个 visualforce 页面以使用外部 ID(任何)重定向到机会。 网址类似于:https://thisismyorg.my.salesforce.com/apex/OppExt?extId=OpportunityExtID__c
创建一个类似于这个的顶点控制器:
public class OpportunityRedirectController {
public Opportunity opp { get; set; }
public String extId { get; set; }
public OpportunityRedirectController() {
extId = ApexPages.currentPage().getParameters().get('extId');
opp = [SELECT Id FROM Opportunity WHERE External_Id__c = :extId limit 1];
}
public PageReference redirect() {
PageReference pageRef = new PageReference('/' + opp.Id);
pageRef.setRedirect(true);
return pageRef;
}
}
将 External_Id__c 字段更改为您的外部 ID,如果您有多个,请将其更改为: 公共类 OpportunityRedirectController {
public Opportunity opp { get; set; }
public String extId { get; set; }
public OpportunityRedirectController() {
extId = ApexPages.currentPage().getParameters().get('extId');
opp = [SELECT Id FROM Opportunity WHERE External_Id__c = :extId OR External_Id_2__c = :extId limit 1];
}
public PageReference redirect() {
PageReference pageRef = new PageReference('/' + opp.Id);
pageRef.setRedirect(true);
return pageRef;
}
}
比创建一个包含这些内容的页面:
<apex:page controller="OpportunityRedirectController" action="{!redirect}">
</apex:page>
这应该让你开始,但是当没有找到机会时它会失败。