使用Apex代码,我如何选择属于特定'机会ID'的所有''OpportunityProducts'对象

时间:2011-12-07 10:09:44

标签: apex-code

我想定制属于'salesforce.com'平台的'Sales'应用程序。 有没有办法选择属于特定'机会ID'的所有'OpportunityProducts'对象?

[SELECT Id FROM  OpportunityProduct WHERE Opportunity =:opportunitId];

当我执行上面的代码以选择那些'OpportunityProduct'时,我收到了以下错误。如果有人有任何想法请更新我。谢谢。

Save error: sObject type 'OpportunityProduct' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names.

1 个答案:

答案 0 :(得分:2)

当您需要实际产品而不仅仅是订单项时,另一种方法是完成此操作,如下所示。首先获得机会:

List<Opportunity> opps = [SELECT Id, Name FROM Opportunity LIMIT 1000];

然后循环以创建机会ID列表

List<Id> oppIds = new List<Id>();
for(Opportunity o : opps)
{
   oppIds.add(o.Id);
}

现在获取属于您机会的实际产品 ......

List<OpportunityLineItem> oppProds = [SELECT Id, PricebookEntry.Product2.Name, PricebookEntry.Product2.Family 
   FROM OpportunityLineItem 
   WHERE OpportunityId IN :oppIds];

希望有所帮助。