接上一篇文章Dynamics 365: 从0到1了解如何创建Custom API(1) - 在Power Apps中创建-CSDN博客
这次我们主要写一个插件,与我们之前创建的Custom API进行关联。
1. 编写插件代码
因为代码太少了,我就不写注释了,大家如果有不懂的可以在评论里给我留言。
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using System;
namespace StoneSalesPluginDemo
{
public class GetAccountNameByID : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
try
{
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService adminOrgSvc = serviceFactory.CreateOrganizationService(null);
string accountName = string.Empty;
if (context.InputParameters.TryGetValue("AccountID", out Guid accountId))
{
tracingService.Trace($"AccountID:{accountId}");
Entity accountEntity = adminOrgSvc.Retrieve("account", accountId, new ColumnSet("name"));
if (accountEntity != null)
{
accountName = accountEntity.GetAttributeValue<string>("name");
tracingService.Trace($"AccountName:{accountName}");
}
}
context.OutputParameters["AccountName"] = accountName;
}
catch (Exception)
{
throw new NotImplementedException();
}
}
}
}
2. 注册插件
编译没问题后将这个新的DLL注册到PRT上
注册好后,我们在PRT上就可以找到我们专门为Custom API写的代码了
3.关联Custom API与插件
找到我们之前创建的Custom API, 将刚刚注册的插件填入到"插件类型"字段中
4. 测试Custom API
测试Custom API的方法有很多种,前端js,后端通过组织服务,或者通过postman都可以调用。这里我们偷个懒,使用XrmToolBox中的Custom API Tester这个工具来测试一下:
注意事项:
- 插件的.Net Framework版本目前最高只支持到4.7.1