所以这就是我们要做的事情;
我们有一个设置,用户输入五个主要变量,从这些变量我们可以生成另外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/
但我似乎无法弄清楚将变量传递给班级。