我有一个通过 API 从 Salesforce 读取潜在客户记录的应用程序,我想将潜在客户所有者字段链接到应用程序中的属性。潜在客户所有者字段不在可用字段列表中,但所有自定义字段都在列表中。
因此,我对解决方案的第一次尝试是创建一个显示潜在客户所有者姓名的自定义字段。在 SF 公式编辑器中,据我所知,它不显示实际数据字段,而是显示 ID 字符串。在我需要它的情况下,这毫无意义。
alt text http://skinny.fire-storm.net/forposting/insertfield.JPG
有没有办法获取 ID 字符串引用的对象中的数据?
alt text http://skinny.fire-storm.net/forposting/havewant.JPG
我有红盒,但需要绿盒。
编辑:我无法更改调用 API 的应用程序代码。我只能改变销售人员。所以,这更像是一个 salesforce super 用户/公式编写者的问题,而不是关于编写调用 SF API 的代码的问题。
最佳答案
Salesforce 允许通过他们所谓的 relationship queries 访问相关数据。您可以像这样指定查询,而不是加入:
System.debug([SELECT Owner.Name FROM Lead WHERE Id = '00QS00000037lvv'].Owner.Name);
尝试在系统日志中运行它,只需将潜在客户 ID 替换为您正在查看的 ID。
通过API访问数据时,原理是一样的,你的代理对象应该允许你访问Lead.Owner.Name。
编辑:
我同意 eyecream 的观点,因为您无法更改应用程序代码,因此创建 Apex 触发器将是最好的方法。下面是一些帮助您入门的代码:
trigger Lead_UpdateOwner on Lead(before insert, before update)
{
Map<Id, String> ownerMap = new Map<Id, String>();
for (Lead lead : Trigger.new)
{
ownerMap.put(lead.OwnerId, null);
}
if (ownerMap.size() > 0)
{
for (User[] users : [SELECT Id, Name FROM User WHERE Id IN :ownerMap.keySet()])
{
for (Integer i=0; i<users.size(); i++)
{
ownerMap.put(users[i].Id, users[i].Name);
}
}
for (Lead lead : Trigger.new)
{
lead.OwnerName__c = ownerMap.get(lead.OwnerId);
}
}
}
Lead.OwnerName__c 需要是包含所有者名称的潜在客户对象上的自定义字段的名称。输入文本,长度为 121。
关于salesforce - 如何在潜在客户自定义公式字段中获取潜在客户所有者的姓名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2649588/