【问题标题】:How to get the Opportunity split record from Order Object如何从订单对象中获取机会拆分记录
【发布时间】:2020-07-31 08:06:53
【问题描述】:

我的组织中的订单对象中存在与机会对象的查找关系。在每个机会中,有 2 个机会拆分所有者。我需要获取不是 Opportunity Owner 的 Opportunity Split 所有者。

谁能告诉我如何实现这一目标?我需要将此信息连同与订单相关的所有其他详细信息一起发送到外部系统。

这可以通过 SOQL 实现吗?提前致谢。

【问题讨论】:

    标签: salesforce integration apex soql


    【解决方案1】:

    我的组织中没有启用订单,所以可能有错别字,但大致如下:

    获取此订单机会的所有拆分

    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
    

    【讨论】:

    • 感谢您的回答。后者是不可能的,因为组织中已经有很多机会拆分记录。问题是我已经在 orderlineitem 上编写了一个 soql 查询,以通过 orderLineItem 到 Order 到 Opportunity 的关系查询 Opportunity。有没有办法我也可以通过这种方式查询机会拆分?
    • 公式字段有点像普通 SQL 中视图中的列。您不需要更新旧数据,它会即时计算。搏一搏。至于查询加入一切......棘手。您可能可以使用select id, name, (select id, name from orders), (select splitownerid from opportunitysplits) from opportunity 之类的子查询做一些事情,但这只能“离开”1 个关系。 opp+splits 和 order+lines 会很棘手,可能需要 2 个查询。
    猜你喜欢
    • 2015-05-05
    • 2014-11-21
    • 2021-11-04
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    相关资源
    最近更新 更多