前言

本次示例

在本次示例中,我将在客户实体的表单上添加 “随机创建联系人” 按钮,

点击按钮后将调用使用 C# 创建的 Action,为客户随机创建一条联系人记录

步骤

步骤 1 新建项目

新建项目 –> 选择 类库(.NET Framework) –> 点击 确认

截图-新建项目-01

截图-新建项目-01

输入 一个有意义的项目名称 –> 选择 项目存储路径 –> 选择 框架 –> 点击 创建

截图-新建项目-02

截图-新建项目-02

步骤 2 NuGet 安装

右击你的项目 –> 选择 管理 NuGet 程序包 –> 搜索 Microsoft.CrmSdk.CoreAssemblies –> 点击 安装

截图-NuGet安装-01

截图-NuGet安装-01

步骤 3

Class1.cs 文件重命名为 ExampleRandomlyCreateContactAction(或任何你想要的名称)并添加下面的代码,其中我们使用 IPlugin

Execute 方法中的代码来随机创建新的联系人:

ExampleRandomlyCreateContactAction.cs
using Microsoft.Xrm.Sdk;
using System;

namespace Blog.D365.Example.CreateCustomAction
{
    public class ExampleRandomlyCreateContactAction : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = factory.CreateOrganizationService(context.UserId);
            IOrganizationService serviceAdmin = factory.CreateOrganizationService(null);
            try
            {
                Entity create_Contact = new Entity("contact");
                create_Contact["parentcustomerid"] = new EntityReference();
                create_Contact["lastname"] = GenerateRandomName();
                create_Contact["mobilephone"] = GenerateRandomPhoneNumber();
                service.Create(create_Contact);
            }
            catch (Exception e)
            {
                throw new InvalidPluginExecutionException(e.Message);
            }
        }
        private string GenerateRandomPhoneNumber()
        {
            Random random = new Random();
            string phoneNumber = "1";
            for (int i = 1; i < 11; i++)
                phoneNumber += random.Next(0, 10).ToString();
            return phoneNumber;
        }
        private string GenerateRandomName()
        {
            string[] firstNames = { "张", "李", "王", "赵", "刘", "陈", "杨", "黄", "吴", "周" };
            string[] lastNames = { "伟", "芳", "娜", "敏", "静", "磊", "强", "军", "洋", "莉" };
            Random random = new Random();
            string firstName = firstNames[random.Next(firstNames.Length)];
            string lastName = lastNames[random.Next(lastNames.Length)];
            return $"{firstName}{lastName}";
        }
    }
}

步骤 4 项目添加 “签名”

右击你的项目 –> 选择 属性 –> 切换到 签名 –> 勾选 为程序签名 –> 点击 下拉

截图-项目添加签名-01

截图-项目添加签名-01

选择 新建

截图-项目添加签名-02

截图-项目添加签名-02

输入 一个有意义的名称 –> 取消 使用密码保护密钥文件 –> 点击 确定

截图-项目添加签名-03

截图-项目添加签名-03

步骤 5 创建 Action

进入 Power Apps –> 打开 解决方案 –> 点击 New –> 点击 Automation –> 点击 Process –> 点击 Action

截图-创建 Action -01

截图-创建 Action -01

输入 一个有意义的 Action 名称 –> 选择 Tab –> 选择 Account –> 点击 创建

截图-创建 Action -02

截图-创建 Action -02

创建后 –> 点击 激活

截图-创建 Action -02

截图-创建 Action -02

步骤 5 插件注册

测试

总结

参考