0
下面是查询,它会让我所有的联系人都有高清质量订单。如何更新子查询字段? salesforce,soql,apex
`Orderc__c[] orders = [SELECT id,customer__c, Customer__r.Number_of_HD_Orders__c,` `Quality_Code__c FROM Orderc__c where Quality_Code__c='HD'];`
然后我改变使用这些代码来更新HD订单数量为每个联系人:
for(Orderc__c o: orders){
if(o.Customer__r.Number_of_HD_Orders__c==null)
o.Customer__r.Number_of_HD_Orders__c=0.0;
o.Customer__r.Number_of_HD_Orders__c++;
}
现在的问题是,我怎么可以更新联系人。作为“更新订单”;将不会更新联系人。
感谢您的信息。但是您的代码将导致错误:列表中出现重复的ID。我不知道为什么它不允许列表中的重复ID(不是一组)。我认为这是由一些联系人引起的多个高清订单。所以我如何解决这个问题? – 2012-04-04 05:17:33
在将联系人添加到地图之前,请先使用地图而不是列表,然后查看它是否已存在。如果是这样,请增加那个,否则添加它。然后,只需更新地图的值:'update mymap.values();' – 2012-04-04 05:29:38
nvm,我简单地需要将联系人添加到一个集合,然后将该集合添加到列表中。并更新列表。因为DML仅适用于未设置列表。 – 2012-04-04 05:30:27