2016-04-12 73 views
1

我想要做的是,当我们点击回复按钮,发件人地址字段将填充电子邮件ID(默认队的默认队列的电子邮件ID )。当前场景使用登录用户填充。更改回复电子邮件地址到队列的电子邮件地址在动态crm 2011

我用下面的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

get属性值的方法是不正确的错误,以获得属性的值使用以下内容:

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

因此,在你的情况下它会是:

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

谢谢,这是有效的。但现在我面临另一个未定义的错误getExtapsParam var previousEmailId = getExtraqsParam(“_ InReplyToId”,window.parent.location.search); – user3495554

+0

你是否定义了一个方法“getExtraqsParam”?如果是,你可以在这里发布它,如果没有,你想在那行代码“previousEmailId”中实现什么? – dynamicallyCRM

+0

我没有。我想要做的是获得队列电子邮件地址。一旦我回复它将采取当前的用户ID,而不是我想要获得队列电子邮件ID。 – user3495554

相关问题