将回复电子邮件地址更改为动态crm 2011中的队列电子邮件地址

时间:2016-04-12 18:32:54

标签: javascript dynamics-crm-2011

我想要做的是当我们点击“回复”按钮时,“发件人地址”字段将填充email-id(默认团队的默认队列' email-id)。当前方案由登录用户填充。

我使用了以下js代码onLoad,但是我收到的错误是"对象不支持属性或方法getAttributeValue



function CheckEnquiryReplyAddress() {
 // Only complete this validate on Create Form
 var formType = Xrm.Page.ui.getFormType();
 var emailStatus = Xrm.Page.getAttributeValue("statecode").getValue();
 var emailDirection = Xrm.Page.getAttributeValue("directioncode").getValue();



 if (formType == 1 || (formType == 2 && emailStatus == "Open")) {  
                                             
                                       
  if (emailDirection == "1"){
  var previousEmailId=getExtraqsParam("_InReplyToId", window.parent.location.search);

   //getting context from the parent window
   var context = Xrm.Page.context;

   try {
    var serverUrl = context.getServerUrl();
    //The XRM OData end-point
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    var query="/EmailSet?$select=ActivityId,ActivityTypeCode,DirectionCode,";
    query=query+"ToRecipients,Email_QueueItem/QueueId&$expand=Email_QueueItem&$filter=ActivityId eq guid'" + previousEmailId +"'";
    query =serverUrl+ODATA_ENDPOINT+ query;

    var request= new XMLHttpRequest();
    request.open("GET", query, false);
    request.setRequestHeader("Accept", "application/json");
    request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
    request.onreadystatechange=function(){ CompleteEnquiryReplyCheck(request,serverUrl);}
    request.send(null);
   }
   catch(e) {
    alert(e.Description);
   }
  }
 }

          
}
function CompleteEnquiryReplyCheck(request,url)
{
 if (request.readyState==4) {
  if(request.status==200) {
   var queue=JSON.parse(request.responseText).d.results[0];
   
   if (queue != null) {
    var queueId = queue.Email_QueueItem.results[0].QueueId.Id;
    var lookup = new Array();
      var lookupItem = new Object();
  
    lookupItem.id = queueId;
    lookupItem.name = queue.Email_QueueItem.results[0].QueueId.Name;
    lookupItem.typename = "queue";
     
    lookup[0] = lookupItem;
  
    Xrm.Page.getAttribute("from").setValue(lookup);
   }
  }
    }
}




1 个答案:

答案 0 :(得分:1)

get属性值方法不正确,要获取属性的值,请使用以下命令:

 var attributeValue = Xrm.Page.getAttribute("attributeName").getValue();

所以,在你的情况下,它将是:

  var emailStatus = Xrm.Page.getAttribute("statecode").getValue();
  var emailDirection = Xrm.Page.getAttribute("directioncode").getValue();