在CRM 2013中,我编写了一个javascript来删除包含特定电子邮件地址的某些电子邮件参与者(在我的代码下面是test@test.com)。
有人告诉我,最好的方法是删除整个电子邮件参与者并重新构建它,因为没有好的方法可以从电子邮件中删除特定的参与者(如果有的话,请纠正我)。更好的方式)。
所以,首先我将所有的派对带到"到#34;电子邮件中的字段。然后我推动了令人满意的'参与者进入一个新阵列。包含test@test.com电子邮件的参与者将不会被推入此新阵列,即从列表中删除。
但是我在尝试从" toParty"中获取电子邮件地址值时遇到问题。列表。
这似乎不起作用,而是返回undefined。在这里,我要查看电子邮件的架构名称,即电子邮件地址1'。尝试电子邮件地址1'也不起作用。
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);
}
答案 0 :(得分:0)
在这种情况下使用oDataQuery。只需要为队列编写不同的函数,因为电子邮件地址字段在队列与联系人/帐户中不同。
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;
}