Dynamics 365绕过自定义插件逻辑处理数据

有时您希望能够在不应用自定义业务逻辑的情况下执行数据操作。例如,如果您要导入许多您知道已经符合您业务的数据一致性逻辑的记录。您希望尽快完成此操作,因此您希望避免为每个请求处理自定义逻辑所花费的额外时间。

一种选择是定位并禁用包含业务逻辑的自定义插件。但这意味着当这些插件被禁用时,所有用户的逻辑都将被禁用。这也意味着您必须注意仅禁用正确的插件,并记住在完成后重新启用它们。

此处描述的选项允许您针对配置为使用此选项的应用程序发送的特定请求禁用自定义同步插件。

对于这些类型的情况,您可以选择禁用通常会应用的自定义业务逻辑。有两个要求:

  • 您必须使用 BypassCustomPluginExecution 选项发送请求。
  • 发送请求的用户必须具有 prvBypassCustomPlugins 权限。默认情况下,只有具有系统管理员安全角色的用户才有此权限。

使用Web API

要使用 Web API 应用此选项,请MSCRM.BypassCustomPluginExecution : true在请求中作为标头传递。

POST https://yourorg.api.crm.dynamics.com/api/data/v9.1/accounts HTTP/1.1
MSCRM.BypassCustomPluginExecution: true
Authorization: Bearer [REDACTED]
Content-Type: application/json
Accept: */*

{
  "name":"Test Account"
}

使用组织服务

您可以将 CrmServiceClient.BypassPluginExecution 属性设置为 true
以下示例在创建新帐户记录时设置CrmServiceClient.BypassPluginExecution 属性:

var svc = new CrmServiceClient(conn);

svc.BypassPluginExecution = true;

var account = new Entity("account")
{
    Attributes = {
        { "name", "Test Account" }
    }
};

svc.Create(account);

您可以使用 Request 类之一将该值设置为可选参数
以下示例BypassCustomPluginExecution在创建新帐户记录时设置可选参数:

var svc = new CrmServiceClient(conn);

var account = new Entity("account")
{
    Attributes = {
        { "name", "Test Account" }
    }
};

var createRequest = new CreateRequest
{
    Target = account
};
createRequest.Parameters.Add("BypassCustomPluginExecution", true);

svc.Execute(createRequest);

具体官方介绍详见Bypass Custom Business Logic (Microsoft Dataverse) - Power Apps | Microsoft Docs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值