如何确定Dynamics CRM 2013中的实体形式是否满足所有业务规则?



我有一个有两个字段的表单

e-mail
telephone

和一个业务规则,该规则验证至少设置了其中一个。CRM中有一个Silverlight应用程序需要知道表单是否可以保存。这应该在不保存它的情况下完成,因此调用save()并捕获异常不是一个选项。我可以从Silverlight应用程序中调用Javascript,所以JS解决方案也很好。

SL应用程序(或JS函数)如何知道表单是否可以保存?

快乐编码

Arne

您说您的业务规则"验证"是否填写了其中一个。如果是这种情况,该采取什么行动?我可以想到几种方法,例如测试一个是否为NULL,使另一个为必需。

您可以只测试,看看两者是否都为null,并对其中一个或两个显示错误消息。显示来自规则的错误消息将阻止保存该记录。我不确定这是否足以阻止您的SL应用程序尝试保存它。

我解决了这个问题。为了对某些人有所帮助,我创建了一些业务规则,在满足某些条件时将字段设置为强制性的。然后,我创建了一个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调用这个函数时,你会遇到一些麻烦,但这超出了这个问题的范围。

相关内容

最新更新