【发布时间】:2020-07-31 08:06:53
【问题描述】:
我的组织中的订单对象中存在与机会对象的查找关系。在每个机会中,有 2 个机会拆分所有者。我需要获取不是 Opportunity Owner 的 Opportunity Split 所有者。
谁能告诉我如何实现这一目标?我需要将此信息连同与订单相关的所有其他详细信息一起发送到外部系统。
这可以通过 SOQL 实现吗?提前致谢。
【问题讨论】:
标签: salesforce integration apex soql
我的组织中的订单对象中存在与机会对象的查找关系。在每个机会中,有 2 个机会拆分所有者。我需要获取不是 Opportunity Owner 的 Opportunity Split 所有者。
谁能告诉我如何实现这一目标?我需要将此信息连同与订单相关的所有其他详细信息一起发送到外部系统。
这可以通过 SOQL 实现吗?提前致谢。
【问题讨论】:
标签: salesforce integration apex soql
我的组织中没有启用订单,所以可能有错别字,但大致如下:
获取此订单机会的所有拆分
SELECT OpportunityId,Opportunity.OwnerId, SplitAmount,SplitOwnerId,SplitPercentage
FROM OpportunitySplit
WHERE OpportunityId IN (SELECT OpportunityId FROM Order WHERE Id = '...')
SOQL 不允许您比较字段与字段(Opp 所有者与拆分所有者),只能比较字段与值。所以要么你把这个结果手动过滤掉,要么你可以作弊。尝试在OpportunitySplit 上创建一个类型为复选框的新公式字段。称它为IsOpportunityOwner__c 或其他名称,值Opportunity.OwnerId = SplitOwnerId。如果一切正常,您可以在 SOQL 中对其进行过滤
WHERE OpportunityId IN (SELECT OpportunityId FROM Order WHERE Id = '...')
AND IsOpportunityOwner__c = false
【讨论】:
select id, name, (select id, name from orders), (select splitownerid from opportunitysplits) from opportunity 之类的子查询做一些事情,但这只能“离开”1 个关系。 opp+splits 和 order+lines 会很棘手,可能需要 2 个查询。