繁体   English   中英

使用 api 在 Dynamics 365 中创建批量删除作业会导致错误提示实体不支持同步批量删除

[英]Creating a bulk delete job in Dynamics 365 using the api results in an error saying synchronous bulk delete is not supported for the entity

我正在尝试使用 web api 在 Dynamics 365 中创建批量删除作业。 作为参考,我使用了以下 web 页面:

我正在使用 api 版本 9.1。 我已经完成了大部分工作,并删除了很多验证错误,所以我知道我走在正确的轨道上。 但是,现在我收到以下错误消息:“实体 bookableresourcebooking 不支持同步批量删除”。 当我尝试在 Dynamics 中手动创建相同的批量删除作业时,没有出现错误。 谁能帮我解决这个错误? 我正在使用的相关代码:

      var relativeUrl = "BulkDelete()";
      var bulkDelete = new BulkDeleteRequest("Delete all future bookings");
      var querySet = new QuerySet();
      querySet.EntityName = "bookableresourcebooking";
      querySet.Distinct = false;
      var conditionStarttimeGreaterEqualToday = new Condition();
      conditionStarttimeGreaterEqualToday.AttributeName = "starttime";
      conditionStarttimeGreaterEqualToday.Operator = "OnOrAfter";
      conditionStarttimeGreaterEqualToday.Values = new List<ValueClass>();
      conditionStarttimeGreaterEqualToday.Values.Add(new ValueClass(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).ToUniversalTime().ToString("o"), "System.DateTime"));
      var conditionVoltooidOpEmpty = new Condition();
      conditionVoltooidOpEmpty.AttributeName = "new_voltooidop";
      conditionVoltooidOpEmpty.Operator = "Null";
      conditionVoltooidOpEmpty.Values = new List<ValueClass>();

      querySet.Criteria = new Criteria();
      querySet.Criteria.FilterOperator = "And";
      querySet.Criteria.Conditions.Add(conditionStarttimeGreaterEqualToday);
      querySet.Criteria.Conditions.Add(conditionVoltooidOpEmpty);

      bulkDelete.QuerySet.Add(querySet);
      await _crmClient.PostCRMData(relativeUrl, JsonConvert.SerializeObject(bulkDelete)); //Dependency injected httpclient.

额外信息:

  • bookableresourcebooking 是 Field Service 附带的标准实体
  • new_voltooidop up 是我添加到此实体的自定义日期时间字段

我们必须使这项工作异步,为此我们必须通过RunNow: false 然后这个错误就会消失。

我已经在 CRM REST Builder 中测试了这个工作代码。 但这是 JS 等价的。

var parameters = {};
var queryset1 = {
        EntityName: "account",
        ColumnSet: {
            AllColumns: true
        },
        Distinct: false,
    };

queryset1["@odata.type"] = "Microsoft.Dynamics.CRM.QueryExpression";
parameters.QuerySet = [queryset1];
parameters.JobName = "arun test";
parameters.SendEmailNotification = false;
var torecipients1 = {};
torecipients1.activitypartyid = "00000000-0000-0000-0000-000000000000"; //Delete if creating new record 
torecipients1["@odata.type"] = "Microsoft.Dynamics.CRM.activityparty";
parameters.ToRecipients = [torecipients1];
var ccrecipients1 = {};
ccrecipients1.activitypartyid = "00000000-0000-0000-0000-000000000000"; //Delete if creating new record 
ccrecipients1["@odata.type"] = "Microsoft.Dynamics.CRM.activityparty";
parameters.CCRecipients = [ccrecipients1];
parameters.RecurrencePattern = "FREQ=DAILY;";
parameters.StartDateTime = JSON.stringify(new Date("05/07/2021 13:30:00").toISOString());
parameters.RunNow = false;

var bulkDeleteRequest = {
    QuerySet: parameters.QuerySet,
    JobName: parameters.JobName,
    SendEmailNotification: parameters.SendEmailNotification,
    ToRecipients: parameters.ToRecipients,
    CCRecipients: parameters.CCRecipients,
    RecurrencePattern: parameters.RecurrencePattern,
    StartDateTime: parameters.StartDateTime,
    RunNow: parameters.RunNow,

    getMetadata: function() {
        return {
            boundParameter: null,
            parameterTypes: {
                "QuerySet": {
                    "typeName": "Collection(mscrm.QueryExpression)",
                    "structuralProperty": 4
                },
                "JobName": {
                    "typeName": "Edm.String",
                    "structuralProperty": 1
                },
                "SendEmailNotification": {
                    "typeName": "Edm.Boolean",
                    "structuralProperty": 1
                },
                "ToRecipients": {
                    "typeName": "Collection(mscrm.activityparty)",
                    "structuralProperty": 4
                },
                "CCRecipients": {
                    "typeName": "Collection(mscrm.activityparty)",
                    "structuralProperty": 4
                },
                "RecurrencePattern": {
                    "typeName": "Edm.String",
                    "structuralProperty": 1
                },
                "StartDateTime": {
                    "typeName": "Edm.DateTimeOffset",
                    "structuralProperty": 1
                },
                "RunNow": {
                    "typeName": "Edm.Boolean",
                    "structuralProperty": 1
                }
            },
            operationType: 0,
            operationName: "BulkDelete"
        };
    }
};

Xrm.WebApi.online.execute(bulkDeleteRequest).then(
    function success(result) {
        if (result.ok) {
            var results = JSON.parse(result.responseText);
        }
    },
    function(error) {
        Xrm.Utility.alertDialog(error.message);
    }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM