2014-09-29 14 views
2

以下代碼將在CRM中創建電子郵件活動,但我無法弄清楚如何添加多個收件人。如果我嘗試添加第二個收件人,它只會替換第一個收件人。使用CRM2011-2013中的REST端點創建電子郵件活動

function CreateEmail() { 
    alert("CreateEmail Begin"); 

    var email = new Object(); 
    email.Subject = "Sample Email Using REST"; 
    SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); }); 
    } 

    // Email Call Back function 
    function EmailCallBack(result) 
    { 
    var activityParty=new Object(); 
    // Set the "party" of the ActivityParty // EntityReference of an entity this activityparty relatated to. 
    activityParty.PartyId = { 
     Id: "8384E684-7686-E011-8AF0-00155D32042E",//replace this with the contactid from your system. 
     LogicalName: "contact" 
    }; 
    // Set the "activity" of the ActivityParty 
    // EntityReference. 
    activityParty.ActivityId = { 
     Id: result.ActivityId, 
     LogicalName: "email" 
    }; 
    // Set the participation type (what role the party has on the activity). 
    activityParty.ParticipationTypeMask = { Value: 2 }; // 2 mean ToRecipients 
    SDK.JScriptRESTDataOperations.Create(activityParty, "ActivityParty",ActivityPartyCallBack , function (error) { alert(error.message); }); 
    } 

    function ActivityPartyCallBack(reuslt) 
    { 
    alert("Process Completed"); 
    } 

回答

2

這是創建一個包含多個收件人的電子郵件的代碼片段。關鍵是設置email_activity_parties屬性,以便我們可以傳遞一個對象。

基本上email_activity_parties讓我們提交一個對象數組而不是頂級對象。

function CreateEmail() { 
    debugger; 

    var email = new Object(); 

    email.Subject = "my email"; 
    email.Description = "my email description"; 

    var activityParties = new Array(); 

    var partyObj0 = new Object(); 
    partyObj0.PartyId = { Id: "a9568879-e61c-e411-80bb-000c29c1100f", LogicalName: "systemuser" }; 
    partyObj0.ParticipationTypeMask = { Value: 1 }; 
    activityParties[0] = partyObj0; 

    var partyObj1 = new Object(); 
    partyObj1.PartyId = { Id: "b23f7a24-2223-e411-80c8-000c29c1100f", LogicalName: "contact" }; 
    partyObj1.ParticipationTypeMask = { Value: 2 }; 
    activityParties[1] = partyObj1; 

    var partyObj2 = new Object(); 
    partyObj2.PartyId = { Id: "ffd09f25-1748-e411-80cb-000c29c1100f", LogicalName: "contact" }; 
    partyObj2.ParticipationTypeMask = { Value: 2 }; 
    activityParties[2] = partyObj2; 

    //set email.email_activity_parties to activityParties 

    email.email_activity_parties = activityParties; 
    SDK.REST.createRecord(email, "Email", EmailCallBack, function (error) { alert(error.message); }); 
} 

// Email Call Back function 
function EmailCallBack(result) { 
    debugger; 

} 
0

不要有一個REST示例我害怕,但在C#SOAP中你必須傳遞一個實體集合,或許它在REST中是一樣的?

Entity e = new Entity("phonecall"); 
e["to"] = new Entity[] 
{ 
    ToActivityParty(new EntityReference("contact", contact1)), 
    ToActivityParty(new EntityReference("contact", contact2)), 
}; 

static Entity ToActivityParty(EntityReference entityReference) 
{ 
    Entity party = new Entity("activityparty"); 
    party["partyid"] = entityReference; 
    return party; 
} 
+0

是的我知道,但通過什麼類型的JavaScript對象是一個大問題。 – GoBeavs 2014-09-29 20:51:02

相關問題