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;
}
在 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;
}