Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Dynamics中使用Odata客户端设置电子邮件的发件人和收件人?_Javascript_Dynamics Crm_Odata - Fatal编程技术网

Javascript 如何在Dynamics中使用Odata客户端设置电子邮件的发件人和收件人?

Javascript 如何在Dynamics中使用Odata客户端设置电子邮件的发件人和收件人?,javascript,dynamics-crm,odata,Javascript,Dynamics Crm,Odata,我正在尝试使用Dynamics中的活动方概念将发件人和收件人添加到电子邮件中。我使用的是简单的Odata客户端。但我得到了以下错误: 消息:“Create”方法不支持“activityparty”类型的实体。” 代码: parties = []; var sender = {}; var recipient = {}; sender["partyid_systemuser@odata.bind"] = "/systemusers(37d4b5e8-f0c8-e911-a976-000d3a13c

我正在尝试使用Dynamics中的活动方概念将发件人和收件人添加到电子邮件中。我使用的是简单的Odata客户端。但我得到了以下错误:

消息:“Create”方法不支持“activityparty”类型的实体。”

代码

parties = [];
var sender = {};
var recipient = {};
sender["partyid_systemuser@odata.bind"] = "/systemusers(37d4b5e8-f0c8-e911-a976-000d3a13cdfe)";
sender["participationtypemask"]= 1; 
recipient["partyid_systemuser@odata.bind"] = "/systemusers(37d4b5e8-f0c8-e911-a976-000d3a13cdfe)";
recipient["participationtypemask"]= 2; 
parties.push(sender);
parties.push(recipient);
entity["email_activity_parties"] = parties;
堆栈跟踪:


确保您没有使用诸如
/api/data/v8.0/activityparties
之类的url来创建活动实体。您应该始终将单个活动类型定位为
电子邮件
任务
电话呼叫
,就像端点
/api/data/v8.0/emails
,因为所有单个活动都将在后台创建
活动参与者

您不能直接创建活动方实体记录,因为该实体仅支持
RetrieveMultiple
消息,而不支持
create
Update

创建活动和设置活动方的示例代码

///------------ Create Phone Call Activity ----------

function createPhoneCall() {
    try {
        //declare variables
        var phonecallId = null;
        var stringJSONPhone = null;
        var urlPhone = null;

        //create activity party collection
        var parties = [];

        //create JSON object 
        var JSONPhone = {};

        //set fields using JSON object
        //Single line of text
        JSONPhone["subject"] = "Test Phone Call"; //Subject

        //Single line of text & format of phone 
        JSONPhone["phonenumber"] = "9876543210"; //Phone Number

        //Multiple Line of Text
        JSONPhone["description"] = "Phone Call Activity for Testing Purpose only...!"; //Description

        //Date and Time
        JSONPhone["scheduledend"] = new Date(); //Due

        //Lookup
        JSONPhone["regardingobjectid_account@odata.bind"] = "/accounts(B386D403-F7AD-E511-80DC-A45D36FC4F90)"; //Regarding is an account

        //ActivityParty (From)
        var sender = {};
        sender["partyid_systemuser@odata.bind"] = "/systemusers(D949B11D-9240-4037-8379-F31C7A36680E)";
        sender["participationtypemask"] = 1; //From

        //ActivityParty (To)
        var receiver1 = {};
        receiver1["partyid_account@odata.bind"] = "/accounts(B386D403-F7AD-E511-80DC-A45D36FC4F90)";
        receiver1["participationtypemask"] = 2; //To

        var receiver2 = {};
        receiver2["partyid_contact@odata.bind"] = "/contacts(DFE54660-37CD-E511-80DE-6C3BE5A831DC)";
        receiver2["participationtypemask"] = 2; //To

        var receiver3 = {};
        receiver3["partyid_lead@odata.bind"] = "/leads(ED81F0D9-37CD-E511-80DE-6C3BE5A831DC)";
        receiver3["participationtypemask"] = 2; //To

        //add this to collection
        parties.push(sender);
        parties.push(receiver1);
        parties.push(receiver2);
        parties.push(receiver3);

        //pass parties[] to phonecall_activity_parties
        JSONPhone["phonecall_activity_parties"] = parties;

        //Whole Number
        JSONPhone["actualdurationminutes"] = 25; //Duration

        //Two Options
        JSONPhone["directioncode"] = true;//Direction : 0-->False/Incoming, 1-->True/Outgoing

        //convert JSON object to string
        stringJSONPhone = JSON.stringify(JSONPhone);

        //url for ajax request to create phonecall activity
        urlPhone = Xrm.Page.context.getClientUrl() + "/api/data/v8.0/phonecalls";

        //ajax request to create phonecall activity
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: urlPhone,
            data: stringJSONPhone,
            beforeSend: function (CreatePhoneCallActivityRequest) {
                CreatePhoneCallActivityRequest.setRequestHeader("Accept", "application/json");
                CreatePhoneCallActivityRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                CreatePhoneCallActivityRequest.setRequestHeader("Prefer", "odata.include-annotations=*");
                CreatePhoneCallActivityRequest.setRequestHeader("OData-MaxVersion", "4.0");
                CreatePhoneCallActivityRequest.setRequestHeader("OData-Version", "4.0");
            },
            //Success Callback Function
            success: function (data, taxtStatus, getPhoneCallActivityResponse) {
                //get Response from Created Record
                phonecallId = getPhoneCallActivityResponse.getResponseHeader("OData-EntityId");

                //get EntityId from ResponseHeader of Created Record 
                phonecallId = phonecallId.split(/[()]/);
                phonecallId = phonecallId[1];

                //Display Enttity ID of Created Record
                Xrm.Utility.alertDialog("Entity ID : " + phonecallId);

            },
            //Error Callback Function
            error: function (CreatePhoneCallActivityRequest, textStatus, errorThrown) {
                Xrm.Utility.alertDialog("Something Wrong in Script...:(");
            }
        });
    } catch (e) {
        Xrm.Utility.alertDialog(e.message + "\n" + e.description);
    }
}

您能提供完整的代码吗?魔鬼可能在细节中。另外,这里有一篇文章描述了这个过程:添加了代码@ShaamaanI'm Middle。您提供的初始代码显然是JS。现在您已经添加了C#代码。只是慢点你到底想做什么?而且,如果使用C#,那就是一些奇怪的查询和执行。您正在使用官方SDK吗?