![]() |
#5 |
Участник
|
Цитата:
Сообщение от griefon
![]() Не очень понятно, где на какой строке у вас возникает ошибка, но в любом случае стоит делать вот так:
X++: function Form_onload() { if (crmForm.all.new_materialid.DataValue != null) { alert(GetAttributeValueFromID("new_competitormaterial", crmForm.all.new_materialid.DataValue[0].id, "new_links", "isTextField")); } } Код: griefon это проверка заполнено ли поле лукапа на форме сущности1, что тоже, кстати, надо было добавить! а у меня проблема была в получении данных из поля с формы связанной сущности2 - если оно не заполнено - возвращалась вышеупомянутая ошибка об объекте. иначе говоря, если значение у sAttributeName не содержит данных/равно null. сделал так: X++: function Form_onload() { if (crmForm.all.new_materialid.DataValue != null) { alert(GetAttributeValueFromID("new_competitormaterial", crmForm.all.new_materialid.DataValue[0].id, "new_links", "isTextField")); } } function GetAttributeValueFromID(sEntityName, sGUID, sAttributeName, isTextField) { var xml = "" + "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + GenerateAuthenticationHeader() + " <soap:Body>" + " <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" + " <Request xsi:type=\"RetrieveRequest\" ReturnDynamicEntities=\"false\">" + " <Target xsi:type=\"TargetRetrieveDynamic\">" + " <EntityName>" + sEntityName + "</EntityName>" + " <EntityId>" + sGUID + "</EntityId>" + " </Target>" + " <ColumnSet xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:ColumnSet\">" + " <q1:Attributes>" + " <q1:Attribute>" + sAttributeName + "</q1:Attribute>" + " </q1:Attributes>" + " </ColumnSet>" + " </Request>" + " </Execute>" + " </soap:Body>" + "</soap:Envelope>" + ""; var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false); xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute"); xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlHttpRequest.setRequestHeader("Content-Length", xml.length); xmlHttpRequest.send(xml); var result = null; var new_v = xmlHttpRequest.responseXML.selectSingleNode("//q1:" + sAttributeName); if(new_v != null) { if(isTextField) { result = xmlHttpRequest.responseXML.selectSingleNode("//q1:" + sAttributeName).text; } else { result = xmlHttpRequest.responseXML.selectSingleNode("//q1:" + sAttributeName).getAttribute('name'); } } if (result == null) { return ''; } else return result; } |
|
|
|