我有一个应用程序通过API从Salesforce读取Lead记录,我想将Lead Owner字段链接到应用程序中的属性."所有者"字段不在可用字段列表中,但所有自定义字段都在.
因此,我首次尝试解决方案是创建一个显示"所有者"名称的自定义字段.在SF公式编辑器中,据我所知,它不显示实际的数据字段,而是显示ID字符串.在我需要的环境中,这是毫无意义的.
alt text http://skinny.fire-storm.net/forposting/insertfield.JPG
有没有办法可以获取ID字符串引用的对象中的数据?
alt text http://skinny.fire-storm.net/forposting/havewant.JPG
我有RED BOX但需要GREEN BOX.
编辑:我无法更改调用API的应用程序代码.我只能改变销售人员.因此,这更像是一个salesforce超级用户/公式编写者问题,而不是编写调用SF API的代码的问题.
Salesforce允许通过他们称之为关系查询的方式访问相关数据.您可以像这样指定查询,而不是加入:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
lead.OwnerName__c需要是将保留所有者名称的主导对象上的自定义字段的名称.输入文字,长度121.
归档时间: |
|
查看次数: |
23055 次 |
最近记录: |