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

时间:2014-08-13 14:44:47

标签: javascript silverlight dynamics-crm dynamics-crm-2013

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

e-mail
telephone

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

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

快乐编码

·阿尔

2 个答案:

答案 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调用此函数时遇到的一些麻烦,它无法正常工作,但这超出了此问题的范围。希望这有助于某人。