码迷,mamicode.com
首页 > 其他好文 > 详细

Dynamics CRM插件开发及调试

时间:2018-05-23 17:01:44      阅读:1761      评论:0      收藏:0      [点我收藏+]

标签:操作   star   val   逻辑   安装   截图   tools   only   void   

本文介绍Dynamics CRM插件开发及插件调试

工具:VS2015、Developer Toolkit for Microsoft Dynamics 365、PluginRegistration

需求:我需要用插件开发的方式给客户实体的客户编码字段赋值

步骤一:首先需要下载安装Developer Toolkit for Microsoft Dynamics 365工具,安装完成后在VS中会出现Dynamics 365模板, 在VS中添加Developer Toolkit 路径。

打开 Visual Studio > 工具 > 选项 ,找到Dynamics 365 Developer Toolkit中的Tool Paths,设定好自己的插件注册工具文件路径和CRM SDK的Bin目录,我这里分别设置为 C:\DynamicsCRM\SDK2016UR1\SDK\Tools\PluginRegistration 和 C:\DynamicsCRM\SDK2016UR1\SDK\Bin

 

步骤二:在VS中使用Dynamics 365模板新建项目,具体操作如下截图:

 1.新建解决方案也可以选择第一项,可创建多个类型的项目如插件和工作流。这里只选择插件项目

技术分享图片

2.建立与CRM服务器的连接。也可以不用连接,放到后面的PluginRegistration工具连接,我这里主要是使用PluginRegistration工具,这个Developer Toolkit for Microsoft Dynamics 365工具我主要用来建解决方案

技术分享图片

3.添加类,编写插件

技术分享图片

 

4.这里将代码复制过来(我是参照石头居的博客)

using System;

// Microsoft Dynamics CRM的命名空间之一
using Microsoft.Xrm.Sdk;

namespace Microsoft.Crm.Sdk.Samples
{
    public class AccountNumberPlugin: IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            // 获取执行上下文
            IPluginExecutionContext context =

                (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            // InputParameters属性包含所有输入参数数据
            if (context.InputParameters.Contains("Target") &&
                context.InputParameters["Target"] is Entity)
            {
                // 从输入参数中获取Target参数
                Entity entity = (Entity)context.InputParameters["Target"];
                //检测输入的Target参数,判断其逻辑名称是否是account.
                if (entity.LogicalName == "account")
                {
                    // 判断客户记录的客户编码字段accountnumber是否有值
                    if (entity.Attributes.Contains("accountnumber") == false)
                    {
                        // 没有客户编码,那么赋一个随机数字
                        Random rndgen = new Random();
                        entity.Attributes.Add("accountnumber", rndgen.Next().ToString());
                    }
                    else
                    {
                        // 抛出一个错误,注意,错误的类型!
                        throw new InvalidPluginExecutionException("The account number can only be set by the system.");
                    }                    
                }
            }
        }
    }
}

 5.添加签名  右键解决方案>属性

技术分享图片

 

 5.创建完成之后重新生成一下解决方案

 6.用pluginsRegistration工具进行注册。工具位置在SDK>Tools文件夹中。先注册项目然后新建步骤。

技术分享图片

技术分享图片

 

技术分享图片

 

技术分享图片

技术分享图片

7.完成。看一下运行的效果看看插件是否生效

技术分享图片

步骤三:插件调试  写的代码没有生效或者是出错,需要进行插件的调试

1.打开pluginRegistration工具安装分析器 profiler

 

 技术分享图片

2.选中要调试的插件,step,点击Start Profiling

技术分享图片

 

3.去CRM中操作实体,下载日志文件

 

技术分享图片

 

 4.回到插件注册器关掉profiling

技术分享图片

 

5.点击Debug

技术分享图片

 

6.到VS2015,设置断点,附加PluginRegistration进程

技术分享图片

 

 7.再回到插件工具点击执行

技术分享图片

 

8.这时就会看到断点生效,进行调试

技术分享图片

 

Dynamics CRM插件开发及调试

标签:操作   star   val   逻辑   安装   截图   tools   only   void   

原文地址:https://www.cnblogs.com/cuig/p/9077461.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!