time 
设为首页】【收藏本站
当前位置: 主页 > ERP > CRM > 【Dynamics CRM插件开发教程】10、Create类型插件实例之七

【Dynamics CRM插件开发教程】10、Create类型插件实例之七

时间:2014-10-17 16:15 点击:514次 字体:[ ]




 

前面文章讲述了Create消息在Pre-opertaion和Post-operation阶段的插件,还有一个阶段可以注册插件,那就是Pre-Validation阶段,今天就是讲述这个,这个阶段的插件不一定在事务范围内,所以一般用来验证,我这里做个简单的例子。

还是打开CRM Explorer,选中实体后右击,选择 Create Plug-in 。

【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
在出来的Create Plug-in框中设置如下,可以看到不能设置为异步执行,也不能使用映像(Image)。
【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
点击OK按钮后会自动打开PreValidatenew_TestCreate.cs,如下:
【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
我这里做个简单的校验,就是如果输入了单行文本_电话字段,那么就要以 +86- 开头,且后面跟上的是11位数字。建议是通过字段更改或者保存时通过js来校验,为了更加严谨,插件中的校验必不可少,因为js的校验有可能被跳过,但是插件进行的校验则无法被跳过,至少我不知道怎么跳过插件的校验。

插件中使用的代码如下,我使用正则表达式来校验。
            IPluginExecutionContext context = localContext.PluginExecutionContext;
            if (context.InputParameters.Contains("Target") &&
            context.InputParameters["Target"] is Entity)
            {
                Entity currentEntity = (Entity)context.InputParameters["Target"];
                //如果用户输入了单行文本_电话字段,则进行校验
                if(currentEntity.Contains("new_phonetext"))
                {
                    var phoneText = currentEntity.GetAttributeValue<string>("new_phonetext");
                    Regex rx = new Regex(@"^+86-d{11}$");
                    if (!rx.IsMatch(phoneText)) //不匹配
                    {
                        throw new FaultException("字段 单行文本_电话 的输入不正确!应该以+86-开头,后面跟上11位数字!");
                    }
                }
            }
 
保存以后部署插件:
【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
我们去测试下:
没有以 + 开头。
【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
最后一个是字母,不是数字。
【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
 可以看到前面的测试基本满足需要了,如果没有通过Pre-Validation阶段的验证,我就抛出了异常,所以不会执行Pre-operation阶段的代码来生成流水号了,下面我录入一个正确的试试,可以看到正确执行了Pre-Operation阶段的代码生成了流水号,执行Post-operation阶段的代码生成了注释。
 
【Dynamics CRM插件开发教程】10、Create类型插件实例之七_www.fengfly.com
 
 


本文地址 : http://www.fengfly.com/plus/view-215422-1.html
标签: Dynamics CRM 插件开发 Create类型
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: