CRM:回复电子邮件时设置多个电子邮件地址的Javascript

时间:2016-02-02 21:30:23

标签: javascript dynamics-crm crm dynamics-crm-2013

在CRM 2013上,我试图在用户点击“全部回复”时将多个参与者插入电子邮件“到”字段。但是,我需要从“收件人”行中删除某些电子邮件地址。所以我创建了一个数组来循环并获取除了需要删除的电子邮件地址之外的所有电子邮件地址。

但问题是,只有在删除不需要的参与者后只剩下一个参与者时,它才有效。如果有两个或更多参与者,则脚本根本不会填充任何参与者。

有没有办法填充多个电子邮件参与者?还是有比我在这里尝试做的更好的方法?

这是我的代码:

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

var partyListArray = new Array();
for (var indxAttendees = 0; indxAttendees < toParty.length; indxAttendees++) {
  // using oData to get participant email address
  var email = getParticipantEmail(
    toParty[indxAttendees].entityType, 
    toParty[indxAttendees].id
  );
  if (email != "test@test.com") {
    partyListArray[indxAttendees] = new Object();
    partyListArray[indxAttendees].id = toParty[indxAttendees].id;
    partyListArray[indxAttendees].name = toParty[indxAttendees].name;
    partyListArray[indxAttendees].entityType = toParty[indxAttendees].entityType;
  }
}

Xrm.Page.getAttribute("to").setValue(null);
Xrm.Page.getAttribute("to").setValue(partyListArray);

1 个答案:

答案 0 :(得分:1)

您可以从数组本身删除所需的内容,而不是创建一个全新的数组。试试这个:

&#13;
&#13;
var emails = [{email: "add1@domain.com"}, {email: "add2@domain.com"}, {email: "address@toBe.Removed"},  {email: "add3@domain.com"}, {email: "add4@domain.com"}];

var removeIndex = emails.map(function(item) { return item.email; }).indexOf("address@toBe.Removed");

removeIndex > -1 && emails.splice(removeIndex, 1);
&#13;
&#13;
&#13;