我们在这里使用CRM 2011。我们刚刚升级了所有JavaScript以使用XRM与CRM。在对JavaScript进行一些测试时,我们发现了一个缺陷。也就是说,当我们在下拉字段中更改值时,我们会以警报的形式出现此错误:
此字段的自定义事件出错。
字段:accessmode
事件:平变化
错误:'systemUserForm'未定义
问题是,JavaScript不是我们的。通过开发人员工具,它似乎是微软的JavaScript,可能是动态生成的。选择新值确实会改变它,但代码似乎希望根据所选值在/**
* Find the integer roots of a quadratic equation, ax^2 + bx + c = 0.
* @param a coefficient of x^2
* @param b coefficient of x
* @param c constant term. Requires that a, b, and c are not ALL zero.
* @return all integers x such that ax^2 + bx + c = 0.
*/
public static Set<Integer> roots(int a, int b, int c) {
Set<Integer> z = new HashSet<>();
int temp1 = (int)(Math.sqrt(b*b - 4*a*c));
if(a !=0){
if(temp1 >= 0){
Integer x1 = (int) ((-b + temp1) / (2*a));
Integer x2 = (int) ((-b - temp1) / (2*a));
z.add(x1);
z.add(x2);
} else if (temp1 < 0){
Integer x1 = (int) ((-b + temp1) / (2*a));
Integer x2 = (int) ((-b - temp1) / (2*a));
z.add(x1);
z.add(x2);
}
}else{
System.out.println("Error: division by zero.");
}
return z;
}
/**
* Main function of program.
* @param args command-line arguments
*/
public static void main(String[] args) {
System.out.println("For the equation x^2 - 4x + 3 = 0, the possible solutions are:");
Set<Integer> result = roots(1, -4, 3);
System.out.println(result);
}
上运行。当然,由于错误,它永远不会执行。
这是代码崩溃(我的行号):
DependentPicklist
它会在第4行抛出错误,但错误表明错误实际上是第5行。
我的问题是,我们如何修复微软动态生成的JavaScript?