Power Apps 学习笔记 -- Plugin

news2024/11/16 5:45:50

文章目录

    • 1. Plugin 简介
    • 2. Plugin 配置
      • 2.1 步骤Step核心分析
    • 3. Plugin 代码

1. Plugin 简介

  Plugin基础教程 : Plugin基础教程

插件Plugin:
1. 插件Plugin通常用于默认数据处理操作区间,增加数据默认行为的方法。(无重用性)

2. Plugin 配置

 .NET环境:.NET环境

##安装配置
 1. 安装.NET 环境
 2. 安装 PowerPlatform CLI (使用.NET命令行安装)
dotnet tool install --global Microsoft.PowerApps.CLI.Tool
 3. 安装 Plugin Registration Tool
pac tool prt
##使用Plugin
1. 创建 Class Library(.NET FrameWork)
2. Manuget包:Microsoft.CrmSdk.CoreAssemblies
3. 代码编写
4. 进入属性当中进行密钥签名、检查属性为Debug
5. 解决方案生成 --> 生成文件资源管理器 \bin\Debug\BasicPlugin.dll
6. 登录进入Plugin Registration Tool (注意选择对应环境)
7. 注册程序集 Assembly(注意这里必须全选所有插件,否则会导致其他已有插件被撤掉)
8. 注册步骤Step(核心:定义插件的触发条件、)
9. 运行
10. 调试(install profiler - start profiling - 执行操作 - 附加进程 - startExecution) 

2.1 步骤Step核心分析

  事件执行管道模型(Plugin插件遵循其规律)
在这里插入图片描述

  PreCalidation: 数据库事务管理前,可加入用户过滤等相关取消逻辑的操作。可用于用户安全验证、权限检查等.
  PreOperation: 核心操作前,可调整传入核心操作消息实体的值。可用于核心操作实体值修改等
  MainEvent: 该阶段是执行关键操作(增删改等)的阶段,不允许注册插件.
  PostOperation: 核心操作后,可以获取消息最初传入、操作结束后消息返回的值。尽可能不要修改实体值,避免触发其他事件。
可执行事务管理外的异步操作。可用于创建、修改、更新实体等操作。

  Step注册参数含义
在这里插入图片描述

3. Plugin 代码

 IPluginExecutionContext接口:IPluginExecutionContext接口

  IPulginExecutionConext: 提供了有关 plugin 执行上下文的信息,包括当前操作的实体记录、操作的类型、执行 plugin 的用户等,
可以使用相关属性和方法进行访问.
using System;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;

namespace BasciPlugin {
    public class FollowupPlugin : IPlugin {
        public void Execute(IServiceProvider serviceProvider) {
            // 跟踪日志
            ITracingService tracingService =(ITracingService)serviceProvider.GetService(typeof(ITracingService));
            // Plugin上下文信息
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            // InputParameters包含请求的实体集(可以是EntityCollection)
            if(context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) {

                // 组织服务工厂及相关 
                IOrganizationServiceFactory serviceFactory =(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
                try {
                    // context.OutputParameters 核心操作后的响应消息参数
                    // 具体的Plugin相关操作
                    tracingService.Trace("FollowupPlugin: Creating the task activity.");
                }

                catch(FaultException<OrganizationServiceFault> ex) {
                    throw new InvalidPluginExecutionException("An error occurred in FollowUpPlugin.", ex);
                }

                catch(Exception ex) {
                    tracingService.Trace("FollowUpPlugin: {0}", ex.ToString());
                    throw;
                }
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像分割 - 轮廓拟合(最小外接矩形和圆形)

1、前言 拟合:用一条光滑的曲线将平面上的点连接起来 轮廓拟合:将凹凸不平的轮廓用平整的几何图形体现出来 本章将介绍如何用最小外接矩形或者最小外接圆形将下面的图像轮廓拟合 几何图形的轮廓绘制,参考前面的文章:图像分割 - 查找图像的轮廓(cv2.findContours函数) 2、…

rk3568-一种基于wifi的网络环境搭建方案

前言&#xff1a; PC--Ubuntu--开发板 三者之间的网络互相ping通很重要&#xff0c;尤其是ubuntu和开发板互ping成功最关键&#xff0c;关系到nfs&#xff0c;tftp等常用的开发手段。现在大多数开发板都带有wifi芯片&#xff0c;现在提供一种方案可以三个设备无线地搭建网络环境…

这4款一键生成的AI写作软件值得一试

自今年初以来&#xff0c;各类AI工具如潮水般涌现&#xff0c;包括AI写作、AI绘画、AI音频处理和AI抠图等等。这些工具层出不穷&#xff0c;为我们的工作和生活带来了极大的便利。学会充分利用这些AI工具可以显著提升我们的生产效率。 软件一&#xff1a;爱制作AI 推荐指数&am…

在实训云平台上配置云主机

文章目录 零、学习目标一、实训云升级二、实训云登录&#xff08;一&#xff09;登录实训云&#xff08;二&#xff09;切换界面语言&#xff08;三&#xff09;规划云主机实例 三、创建网络三、创建路由器2024-2-29更新到此四、添加接口五、创建端口六、添加安全组规则七、创建…

一文详解CRM系统是什么?让你轻松了解CRM的全貌!

互联网上关于CRM管理系统的介绍文章各式各样&#xff0c;但是很多都是为了做品牌推广&#xff0c;并不能真正帮助读者理解CRM这一系统。这篇文章有别于您读到的其他文章&#xff0c;将从CRM系统的概念理解、常见分类、基础功能、应用阶段、发展趋势、系统定价和选型技巧这七个方…

Tomcat 下部署若依单体应用可观测最佳实践

实现目标 采集指标信息采集链路信息采集日志信息采集 RUM 信息会话重放 即用户访问前端的一系列过程的会话录制信息&#xff0c;包括点击某个按钮、操作界面、停留时间等&#xff0c;有助于客户真是意图、操作复现 版本信息 Tomcat (9.0.81)Springboot(2.6.2)JDK (>8)DDT…

mount命令最新详细教程

背景 需要在设备上面&#xff0c;自动化运行u盘里面的脚本&#xff0c;并且进入一个产测模式。因此实际使用了这个mount命令&#xff0c;所以&#xff0c;写了这么一篇供大家参考。 一. 定义 mount命令在Linux和类Unix系统中用于挂载文件系统&#xff0c;即将存储设备…

Android NDK底层BUG,记录:connect、socket(AF_INET, SOCK_STREAM, 0) 等系统套接字接口函数崩溃问题。

在 Android NDK 之中&#xff0c;看上去调用 connect、socket 函数是不会崩溃的&#xff0c;但这是否定的&#xff0c;它在特定的情况下存在必定的崩溃的问题。 但是这种情况放到MACOS、LINUX、WINDOWS都不会崩溃&#xff0c;而它崩溃的点出现在操作系统底层。 人们需要参考这…

ssm656基于JAVA的校园失物招领平台的设计与实现

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一 、设计说明 1.1 课题…

计算机网络:数据链路层知识点汇总

文章目录 一、数据链路层功能概述二、封装成帧和透明传输三、差错控制&#xff08;检错编码&#xff09;四、差错控制&#xff08;纠错编码&#xff09;五、流量控制与可靠传输机制六、停止-等待协议七、后退N帧协议&#xff08;GBN&#xff09;八、选择重传协议&#xff08;SR…

一周学会Django5 Python Web开发-Django5列表视图ListView

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计27条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

【ZooKeeper 】安装和使用,以及java客户端

目录 1. 前言 2. ZooKeeper 安装和使用 2.1. 使用Docker 安装 zookeeper 2.2. 连接 ZooKeeper 服务 2.3. 常用命令演示 2.3.1. 查看常用命令(help 命令) 2.3.2. 创建节点(create 命令) 2.3.3. 更新节点数据内容(set 命令) 2.3.4. 获取节点的数据(get 命令) 2.3.5. 查看…

StarRocks实战——vivo基于 StarRocks 构建实时大数据平台

目录 前言 一、数据挑战 1.1 时效性挑战&#xff0c;业务分析决策需加速 1.2 访问量挑战&#xff0c;性能与稳定性亟待提高&#xff0c;支撑业务稳定运行 1.3 计算场景挑战&#xff0c;难以满足业务复杂查询需求 1.4. 运维挑战&#xff0c;用户查询体验需优化 二、OLA…

Huggingface初上手即ERNIE-gram句子相似性实战

大模型如火如荼的今天&#xff0c;不学点语言模型&#xff08;LM&#xff09;相关的技术实在是说不过去了。只不过由于过往项目用到LM较少&#xff0c;所以学习也主要停留在直面——动眼不动手的水平。Huggingface&#xff08;HF&#xff09;也是现在搞LM离不开的工具了。 出于…

Newtonsoft.Json

目录 引言 1、简单使用 1.1、官方案例 1.2、JsonConvert 2、特性 2.1、默认模式[JsonObject(MemberSerialization.OptIn/OptOut)] 2.2、序列化为集合JsonArrayAttribute/JsonDictionaryAttribute 2.3、序列化该元素JsonProperty 2.4、忽略元素JsonIgnoreAttribute 2.5、…

自动化构建平台(一)Linux下搭建私有代码仓库Gitblit的安装和使用详解

文章目录 前言一、Gitblit的安装和使用1、本地安装2、docker下安装3、Gitblit使用简介4、Gitblit仓库权限控制5、Gitblit邮件配置 总结 前言 代码版本管理&#xff0c;git模式应该是目前最流行的代码管理软件。目前支持git的管理软件有很多。 Gitblit是一个小型的代码仓库管理…

华为自动驾驶技术详解报告分享

ADS2.0首发搭载问界M5智驾版&#xff0c;城市NCA计划年底全国开通。2023年4月16日华为在智能汽车解决方案发布会上发布了最新的ADS2.0产品&#xff0c;硬件数量减少至27个(11个摄像头12个超声波雷达3个毫米波雷达1个激光雷达,ADS1.0有34个)&#xff0c;车载计算平台改为MDC610&…

手把手教你魔改YOLOv9!

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、本文介绍 本文将一步步演示如何在YOLOv9中添加 / 替换新模块&#xff0c;寻找模型上的创新&#xff01; 适用检测目标&#xff1a; YOLOv9模块…

供水管网水力模型的建立与应用

阐述管网水力模型构建流程,建立供水管网水力模型。通过数据录入生成管网基本拓扑结构及物理信息,在模型简化之后利用监测数据进行模型校核,保障管网模型满足精度要求。利用管网模型进行管网工况分析,掌握管网内压力分布与管道流速分布状态,提出管网运行薄弱环节。 给…

Docker容器(3)单容器管理

一、单容器 1.1概念简介 Docker三个重要概念: 仓库(Repository); 镜像(Image); 容器(Container). *Docker的三个重要概念是仓库(Repository)、镜像(Image)和容器(Container)**。具体如下&#xff1a; **镜像(Image)**&#xff1a;Docker镜像是创建容器的基础&#xff0c;它类似…