zoukankan      html  css  js  c++  java
  • Dynamics CRM插件开发及调试

    本文介绍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:DynamicsCRMSDK2016UR1SDKToolsPluginRegistration 和 C:DynamicsCRMSDK2016UR1SDKBin

    步骤二:在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.这时就会看到断点生效,进行调试

  • 相关阅读:
    UIImageView变灰
    IOS 瀑布流
    IOS9适配 MARK
    MAC PHP MARK
    IOS第三方库 MARK
    IOS聊天对话界面
    UILabel自适应宽度的函数详解
    UIControl的使用
    IOS @2X.png
    自定义UIAlertView
  • 原文地址:https://www.cnblogs.com/cuig/p/9077461.html
Copyright © 2011-2022 走看看