Salesforce 根据外部 ID 重定向到 Salesforce ID

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

我想使用我们的外部 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)。

最好的方法是什么(如果可能的话)?

提前致谢!

salesforce apex
1个回答
0
投票

您可以创建一个 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>

这应该让你开始,但是当没有找到机会时它会失败。

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