【问题标题】:how to Auto Populate field values before insert and before update?如何在插入之前和更新之前自动填充字段值?
【发布时间】:2017-12-07 02:14:03
【问题描述】:

我的情况:- 我有两个自定义对象 order-master 和 Sellar- 产品在order-master上有查找关系。当我选择卖方时- 产品我需要在 order-master 中填充其 mrp__c、Selling_price_cc。 我为此编写了一个触发器(工作)并在保存后获取值 卖方主记录,但在提交记录之前我需要值。

trigger AutoPopulate on Order_Master__c (before insert, before update) {
Set <ID> SetSpIds = new Set<ID>();

for(Order_Master__c om : trigger.new){
if(om.SellerProductId__c != null){
 SetSpIds.add(om.SellerProductId__c);
 }
   } 

   MAP<ID, Sellar_Products__c> mapSp = new MAP<ID, Sellar_Products__c>
    ([select MRP__c, Offer_Rate__c, Selling_Price__c from Sellar_Products__c 
             where id in:SetSpIds]);
  for(Order_Master__c om : trigger.new){
 if(om.SellerProductId__c != null){
 Sellar_Products__c Sp = mapSp.get(om.SellerProductId__c);
 om.Item_Price__c = Sp.MRP__c;
 om.Discount__c = Sp.Offer_Rate__c;
  om.Total_cost__c = Sp.Selling_Price__c;
    }

 }
}

【问题讨论】:

    标签: triggers salesforce apex-code apex


    【解决方案1】:

    您无法从触发器中设置此类值,因为触发器没有 UI。如果您想在其中包含一些预填充的值,您可以使用控制器创建一个新的 VF 页面并覆盖此对象布局上的默认按钮。

    您可以在下面的链接中看到一个很好的示例,说明如何使用 PageLoadEvent 操作执行 VF 并预填充您想要的数据。请注意,从字段设置中设置默认值的建议并不是最好的解决方案,因为它在某些情况下可能会适得其反,但您也可以尝试一下,因为它是最快且易于尝试的解决方案。

    https://salesforce.stackexchange.com/questions/30231/how-to-set-initial-value-of-any-field-on-standard-record-via-trigger

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多