CRM Javascript: 获取参与者列表的电子邮件地址

CRM Javascript: Getting Email Address of the Participant List

在 CRM 2013 中,我正在写一个 javascript 来删除某些包含特定电子邮件地址的电子邮件参与者(在我下面的代码中它是 test@test.com)。

有人告诉我最好的方法是删除整个电子邮件参与者并重新构建它,因为没有好的方法可以只从电子邮件中删除特定的参与者(如果有,请纠正我更好的方法)。

首先,我在电子邮件的 "to" 字段中找到了所有参与者。然后我将 'satisfactory' 参与者推入一个新数组。包含 test@test.com 电子邮件的参与者将不会被推入这个新数组,即从列表中删除。

但是我在尝试从 "toParty" 列表中获取电子邮件地址值时遇到问题。

这似乎不起作用,而是返回 undefined。在这里,我将使用电子邮件的架构名称 'EMailAddress1'。尝试 'emailaddress1' 也不行。

toParty[indxAttendees].EMailAddress1 --> doesn't work

非常感谢任何想法。

var toParty = Xrm.Page.getAttribute("to").getValue();

    for (var indxAttendees = 0; indxAttendees < toParty.length; indxAttendees++) {


        var partyListData = new Array();

        if (toParty[indxAttendees].EMailAddress1 != "test@test.com") 
        {

            //alert("Email address " + indxAttendees + " :" + toParty[indxAttendees].EMailAddress1); --> this will be undefined value
            partyListData[indxAttendees] = new Object();

            //get ID
            partyListData[indxAttendees].id = toParty[indxAttendees].id;
            alert("ID " + indxAttendees + " :" + toParty[indxAttendees].id);

            //get Name
            partyListData[indxAttendees].name = toParty[indxAttendees].name;
            alert("Name " + indxAttendees + " :" + toParty[indxAttendees].name);               

            partyListData[indxAttendees].entityType = toParty[indxAttendees].entityType;
            alert("Entity Type " + indxAttendees + " :" + toParty[indxAttendees].entityType);
            }

在这种情况下可以使用 oDataQuery。只需为队列编写不同的函数,因为队列中的电子邮件地址字段与 contact/account.

不同
if ((entityType == "contact") || (entityType == "account")) {
    select = "$select=EMailAddress1&$filter=" + entityType.charAt(0).toUpperCase() + entityType.slice(1) + "Id eq guid'" + entityId + "'";        
    var entitySet = entityType.charAt(0).toUpperCase() + entityType.slice(1) + "Set";

    XrmServiceToolkit.Rest.RetrieveMultiple(entitySet, select,
   function (results) {
       if (results.length > 0) {
           result = results[0].EMailAddress1;
       }
   }, function (error) { alert(error); }, function onComplete() { }, false);
        return result;
}