如何使用动态CRM端点从列表中删除联系人

Hoo*_*tor 5 javascript api crm dynamics-crm dynamics-crm-2011

我有一个使用内置DYNAMIC CRM端点的Angular应用程序,主要是"/XRMServices/2011/OrganizationData.svc",还有一些函数的"/api/data/v8.0",包括对Add Members的调用到营销列表.

此代码非常适合将成员添加到列表中:

function attachContactToList(memberGuid, listGuid) {
    var data = {
        "EntityId": memberGuid
    };
    var req = new XMLHttpRequest();
    req.open("POST", "<<path to CRM Service>>/api/data/v8.0/lists("+ listGuid + ")/Microsoft.Dynamics.CRM.AddMemberList", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.onreadystatechange = function () {
        if (this.readyState == 4 /* complete */) {
            req.onreadystatechange = null;
            if (this.status == 200) {
                notifier.alert("Added to List.");
            } else {
                raiseError(JSON.parse(this.response).error);
            }
        }
    };
    req.send(JSON.stringify(data));
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用RemoveMemberList调用从列表中删除成员时,它会失败.以下是删除的代码:

function deleteListFromContact(memberGuid, listGuid) {
    var data = {
        "EntityId": memberGuid
    };
    var req = new XMLHttpRequest();
    req.open("POST", "<<path to CRM Service>>/api/data/v8.0/lists(" +  listGuid + ")/Microsoft.Dynamics.CRM.RemoveMemberList", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.onreadystatechange = function () {
        if (this.readyState == 4 /* complete */) {
            req.onreadystatechange = null;
            if (this.status == 200) {
                notifier.alert("Removed from List.");
            } else {
                raiseError(JSON.parse(this.response).error);
            }
        }
    };
    req.send(JSON.stringify(data));
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

{
  "error":{
    "code":"","message":"Request message has unresolved parameters.","innererror":{
      "message":"Request message has unresolved parameters.","type":"Microsoft.Crm.CrmHttpException","stacktrace":"   at Microsoft.Crm.Extensibility.OData.CrmODataRoutingConvention.SelectAction(ODataPath odataPath, HttpControllerContext controllerContext, ILookup`2 actionMap)\r\n   at System.Web.OData.Routing.ODataActionSelector.SelectAction(HttpControllerContext controllerContext)\r\n   at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.这是我整个申请中唯一的绊脚石,一旦纠正了......我很高兴.

谢谢

Dar*_*ryl 1

删除成员列表请求当前尚未实现:

https://msdn.microsoft.com/en-us/library/mt628816.aspx

某些组织服务消息缺少功能和操作 下表列出了应用 Microsoft Dynamics CRM Online 2016 Update 1 和 Microsoft Dynamics CRM 2016 Service Pack 1 后没有相应功能或操作的消息。

+------------------------------+-----------------------------------+----------------------------------+
| GrantAccessRequest           | GrantAccessRequest                | ModifyAccessRequest              |
+------------------------------+-----------------------------------+----------------------------------+
| QualifyLeadRequest           | ReactivateEntityKeyRequest        | RemoveMemberListRequest          |
+------------------------------+-----------------------------------+----------------------------------+
| RemoveItemCampaignRequest    | RemoveItemCampaignActivityRequest | RetrieveByResourcesServiceReques |
+------------------------------+-----------------------------------+----------------------------------+
| RetrieveFilteredFormsRequest |                                   |                                  |
+------------------------------+-----------------------------------+----------------------------------+
Run Code Online (Sandbox Code Playgroud)

您必须使用“/XRMServices/2011/OrganizationData.svc”或等到下一个版本。