我有一个包含两个字段的表单
e-mail
telephone
以及验证至少设置了其中一个的业务规则。 CRM中有一个Silverlight应用程序需要知道表单是否可以保存。这应该在不保存的情况下完成,因此调用save()和捕获异常不是一种选择。我可以从Silverlight应用程序调用Javascript,因此JS解决方案也可以。
SL应用程序(或JS函数)如何知道表单是否可以保存?
快乐编码
·阿尔
答案 0 :(得分:1)
您说您的业务规则"验证"填写一个或另一个。如果是这样的话,需要采取什么行动?我可以想到几种方法,例如测试一个是否为NULL,另一个是必需的。
您可以只测试两者是否为空,并显示一条或两条错误消息。从规则显示错误消息将阻止保存记录。这是否足以阻止您的SL应用程序尝试保存它,我不确定。
答案 1 :(得分:0)
我解决了这个问题。如果这有助于某人,我创建了业务规则,在满足某些条件时强制字段。然后我创建了一个JS函数,用于检查是否所有必填字段都已填充。此功能对我来说无法正常工作。这是工作版本:
function IsAllMandatoryFieldsPopulated() {
var populated = true;
Xrm.Page.data.entity.attributes.forEach(function (attribute, index) {
if (attribute.getRequiredLevel() == 'required') {
if(attribute.getValue() === null) {
populated = false;
}
}
});
if (populated)
return '';
return 'Put your validation message here';
}
由于您从SL调用此函数时遇到的一些麻烦,它无法正常工作,但这超出了此问题的范围。希望这有助于某人。