Dynamics CRM 365零基础入门学习(三)Dynamics 通过Web API 来调用自定义的Action(使用插件)

本文介绍了如何在Dynamics CRM 365中实现一个Search Product功能,通过创建自定义Action并绑定插件,前端使用Js调用。详细步骤包括创建html页面、定义Action、开发Plugin项目、使用FetchXML查询数据以及前端调用Action。
摘要由CSDN通过智能技术生成

今天想实现一个Search Product的功能,首先要将数据展示在页面,然后前端根据查询需求进行处理。之前是在salesforce中实现的,可以定义一个Search Product的页面,然后在页面中访问查询数据的Webservice即可。但是在Dynamic 365中并没有这种直接调用的方式,最终找到一种方式就是,前端页面通过Js调用工作流中的Action,而在Action上绑定了插件。


实现效果

这里写图片描述

(1) 实现html页面并导入系统

在设置中找到自定义项,然后进去自定义系统,选择Web资源,然后将之前做好的页面上传到系统。
这里写图片描述

(2) 自定义Action

首先新建一个action,实体设置上可以设置为全局的,也可以单独设定某个实体。

注意:

注册该action,方法同插件注册,在注册step时message选择我们的action的唯一名称,很多人在这一步的message里不显示action的名字,确保两点:第一你的action激活了,第二你的插件注册器是在你激活action后再打开的。
这里写图片描述
设置好action,这边设置了两个输入参数和一个输出参数,设置完后保存并且激活。

(3) 开发Plugin项目

这里我们简单介绍一下插件的基本用法
1. 要继承IPlugin,并实现Excute方法。
2. 从Service provider里获取执行上下文
3. 我们可以检查出发插件的实体名称
4. 还可以检查触发的事件,是creat, update还是delete
5. 输入参数里获取触发的实体
6. 通过service factory获取IOrganizationService,当CreateOrganizationService方法的参数为null时,表示的是系统用户,当参数为context.UserId 或Guid.Empty时,表示的是当前用户
7. 最后是DoAction方法,插件的逻辑就可以在这里实现了。
以下是实现插件的代码:

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);
            //传入两个参数
            String InParameters1 = context.InputParameters["InParameters1"] as String;
            String InParameters2 = context.InputParameters["InParameters2"] as String;
            //查询
            //EntityReference entityRef = context.InputParameters["Target"] as EntityReference;
            string fetchProductXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
                                                                  <entity name='new_be_eligible_pn__c&#
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值