首页 > 其他分享 >Dynamics 365 插件开发教程

Dynamics 365 插件开发教程

时间:2024-07-29 10:57:50浏览次数:14  
标签:插件 创建 点击 context Dynamics 365

插件(Plugin)是 Dynamics 365 中一种非常强大的扩展机制,可以在系统中实现自定义的业务逻辑。插件是在服务器端运行的代码,能够在特定事件发生时被触发,例如创建、更新或删除记录时。本文将介绍如何在 Dynamics 365 中开发插件。

准备工作

在开始开发插件之前,需要准备以下工具和资源:

  1. Dynamics 365 环境: 确保你有一个可访问的 Dynamics 365 实例。
  2. Visual Studio: 用于编写和调试插件代码。
  3. Dynamics 365 SDK: 包含开发插件所需的工具和库。
  4. 基本知识: 了解 C# 编程语言和基本的 Dynamics 365 概念。

创建插件项目

首先,在 Visual Studio 中创建一个新的 Class Library 项目:

  1. 打开 Visual Studio,选择“文件” > “新建” > “项目”。
  2. 在弹出的对话框中,选择“类库 (.NET Framework)”,然后点击“下一步”。
  3. 为项目命名,例如“AccountPlugin”,选择合适的保存位置,点击“创建”。

引入 Dynamics 365 SDK 程序集

在项目中添加 Dynamics 365 SDK 的引用:

  1. 右键点击项目,选择“管理 NuGet 包”。
  2. 在浏览选项卡中,搜索并安装以下包:
    • Microsoft.CrmSdk.CoreAssemblies
    • Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool

编写插件代码

创建一个实现 IPlugin 接口的类。在此示例中,我们将创建一个在创建账户(account)记录时触发的插件:

using System;
using Microsoft.Xrm.Sdk;

public class AccountPlugin : IPlugin
{
    public void Execute(IServiceProvider serviceProvider)
    {
        // 获取插件执行上下文
        IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

        // 获取组织服务
        IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

        // 获取插件的输入参数
        if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
        {
            Entity entity = (Entity)context.InputParameters["Target"];

            // 插件业务逻辑:在创建账户时设置描述字段
            if (entity.LogicalName == "account")
            {
                entity["description"] = "这是通过插件设置的描述信息";
            }
        }
    }
}

编译插件

  1. 在 Visual Studio 中,右键点击项目,选择“生成” > “生成解决方案”。
  2. 确保项目成功编译,生成的 DLL 文件将位于项目的 bin 文件夹中。

注册插件

使用 Plugin Registration Tool 将插件注册到 Dynamics 365:

  1. 打开 Plugin Registration Tool,从 NuGet 包中安装或直接使用 Dynamics 365 SDK 提供的工具。

  2. 连接到你的 Dynamics 365 实例。

  3. 点击“注册” > “新建程序集”,选择编译生成的 DLL 文件。

  4. 点击“注册” > “新建步骤”,配置插件的触发条件,例如:

    • 消息:Create
    • 主体:account
    • 阶段:Pre-Operation
    • 执行模式:同步
  5. 保存并关闭注册工具。

测试插件

  1. 打开 Dynamics 365,导航到账户实体。
  2. 创建一个新的账户记录。
  3. 查看新账户记录的描述字段,应该显示“这是通过插件设置的描述信息”。

结论

通过上述步骤,你已经成功在 Dynamics 365 中开发并注册了一个简单的插件。插件可以帮助你实现自定义的业务逻辑,扩展 Dynamics 365 的功能。希望本教程能帮助你入门 Dynamics 365 插件开发。如果有更多需求,可以进一步研究插件的高级功能和调试技巧。

标签:插件,创建,点击,context,Dynamics,365
From: https://blog.csdn.net/qq_40998698/article/details/140762559

相关文章

  • Dynamics CRM 前端通过 API 实现功能扩展
    在现代企业管理中,客户关系管理(CRM)系统如DynamicsCRM已成为不可或缺的工具。为了满足不断变化的业务需求,企业需要定制和扩展CRM系统的功能。这篇文章将介绍如何在DynamicsCRM前端通过API实现功能扩展。什么是DynamicsCRMAPI?DynamicsCRM提供了多种API接口,......
  • vue的无缝滚动,使用vue-seamless-scroll插件完成滚动动画
    文章目录一、使用步骤1、npm安装2、引入3、使用二、总结一、使用步骤1、npm安装npminstallvue-seamless-scroll--save2、引入importvueSeamlessfrom'vue-seamless-scroll'components:{vueSeamless},3、使用我这里用的是vw和vh,你们使用的时候看个人需......
  • ComfyUI插件:ComfyUI Impact 节点(二)
    前言:学习ComfyUI是一场持久战,而ComfyUIImpact是一个庞大的模块节点库,内置许多非常实用且强大的功能节点,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、......
  • Jenkins之插件Publish Over SSH
    1、安装插件PublishOverSSH 2、配置ssh:  进行测试: 3、配置job: 如果需要展示复制过程: 则需要将如下打开: 另外的,如果需要将下面test目录下面的index.html文件copy到远程host主机,配置如下:[root@node1test1]#lltotal12-rw-r--r--.1rootroot5Jul......
  • 18、flask-进阶-插件-缓存flask-caching - 钩子函数(中间件)
    1.认识flask-caching插件使用插件1.安装$flaskinstallflask-caching2.初始化在exts.py中导入并初始化fromflask_cachingimportCache#初始化插件cache=Cache(config={'CACHE_TYPE':'simple'#缓存类型})#和app对象绑定definit_exts(app):......
  • 【Unity插件】Editor Console Pro:提升开发效率的神器
    在Unity开发过程中,控制台(Console)是我们排查错误、获取信息的重要窗口。而EditorConsolePro则是Unity编辑器控制台的强大替代品,为Unity的控制台带来了更多实用的功能和改进,极大地提升了开发效率。一、EditorConsolePro简介EditorConsolePro是一款在Unity......
  • ComfyUI插件:ComfyUI Impact 节点(一)
    前言:学习ComfyUI是一场持久战,而ComfyUIImpact是一个庞大的模块节点库,内置许多非常实用且强大的功能节点,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、......
  • ComfyUI插件:ComfyUI Impact 节点(一)
    前言:学习ComfyUI是一场持久战,而ComfyUIImpact是一个庞大的模块节点库,内置许多非常实用且强大的功能节点,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增......
  • Postman自定义插件全攻略:扩展你的API开发工具箱
    Postman自定义插件全攻略:扩展你的API开发工具箱Postman作为API开发的瑞士军刀,其强大的功能集已经为开发者所熟知。但你知道吗?Postman还允许开发者使用自定义插件来进一步扩展其功能。这些插件可以帮助自动化重复性任务、增强测试能力,甚至集成其他服务。本文将详细介绍如何......
  • ComfyUI插件:IPAdapter_plus(新版)节点
    ComfyUI插件:IPAdapter_plus(新版)节点前言:学习ComfyUI是一场持久战,而IPAdapter_plus是常用且便捷有效的风格迁移模型,可以通过提供参考图像去进行图像的生成,比如风格迁移,风格融合,人物脸部模拟等各种工作,请大家重点关注本篇内容,深刻理解节点用法!!祝大家学习顺利,早日成为ComfyUI的高手......