使用顶点触发器和类将旧值与新值进行比较

时间:2013-11-21 21:23:00

标签: salesforce apex-code apex

所以这就是我们要做的事情;

我们有一个设置,用户输入五个主要变量,从这些变量我们可以生成另外30个变量。

例如,用户输入Qty.5并选择产品。从这里我们的顶点代码计算螺栓和螺钉的数量以及你有什么,并在记录中显示它们。

从这里我们希望用户能够编辑计算字段,计算使用新输入的变量。为此,我们需要能够在更新之前比较字段的值。

当前触发设置:

trigger Basin_Calcs on Basins__c (before insert, before update) 
{
    List<Basins__c> calcs = Trigger.new;
    for (Basins__c p:calcs){
        Basins__c pOld = System.Trigger.oldMap.get(p.Id);

        if (p.Basin_Geometry__c == 'Channel'){
        BasinCalcClass.chaBasinCalc(calcs);
        }
    }
}

当前班级设置:

public class BasinCalcClass{
    public static void recBasinCalc(List<Basins__c> calcs, Map<ID, Basins__c> pOld){

        for (Basins__c p:calcs){
           Basins__c beforeupdate = pOld.get(p.Id);


           double L = p.Rectangular_Length__c;
        }
    }
}

所以我认为到目前为止这是半正确的。第一个问题是在触发器中调用类。

BasinCalcClass.chaBasinCalc(calcs);

我还试图通过两个计算和pOld,但都不起作用?也许它与地图有关?

我们希望将旧变量传递给类,以便我们可以将它们与新变量进行比较,并确定要运行的代码。

第二个问题是比较旧的和新的。我想我可以这样做;

if(p.Rectangular_Length__c == pOld.Rectangular_Length__c){blah}

这是对的吗?

我们一直在使用这些作为参考;

https://salesforce.stackexchange.com/questions/9752/apex-checking-trigger-old-versus-trigger-new

http://techman97.wordpress.com/2011/10/22/comparing-new-values-vs-old-values-in-apex-trigger/

但我似乎无法弄清楚将变量传递给班级。

0 个答案:

没有答案