使用Salesforce中的APEX触发器将产品价格复制到自定义字段对象中

时间:2019-02-19 17:20:04

标签: triggers salesforce apex soql

使用APEX触发器在尝试更新产品(如果可能也插入)时,仅将产品的Cost_Price__c字段复制到自定义对象中。

我是如此亲密,但此刻我遇到的错误是:从PricebookEntry到String的非法分配

trigger updateAccount on Account (after update) {
  for (Account oAccount : trigger.new) {
    //create variable to store product ID
    string productId = oAccount.Product__c;

    //SQL statement to lookup price of product using productID
    PricebookEntry sqlResult = [SELECT Cost_Price__c 
        FROM PricebookEntry 
        WHERE Product2Id =: productId];

    //save the returned SQL result inside the field of Industry - Illegal assignment from PricebookEntry to String
    oAccount.Industry = sqlResult;
  }     
}

我是否正确地认为这是因为它从SOQL调用中返回了一组结果?我试过使用sqlResult [0],但它似乎仍然不起作用。

1 个答案:

答案 0 :(得分:0)

非法分配,因为您是将整个对象(即PriceBook条目)分配给字符串类型的字段,即“帐户上的行业”。

请使用以下代码进行分配。

oAccount.Industry = sqlResult [0] .Cost_Price__c;

如果这对您有用,请标记答案。

谢谢, 杜沙尔