|
|
#1 |
|
Участник
|
В форме Звонок нужно выбирать в Получателя, после чего будет авто подставляться его телефон в поле Телефон формы Звонок.
Я последовал примеру из SDK, но не получается в плагине получить Guid контакта, выбираемого в partylist подскажите, что я делаю не так? вот часть кода Код: ICrmService crmService = context.CreateCrmService(true);
phonecall phonecall = new phonecall();
activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.phonecall.ToString();
toparty.partyid.Value = new Guid(toparty.partyid.Value.ToString());
phonecall.to = new activityparty[] { toparty };
phonecall _phonecall = (phonecall)crmService.Retrieve(EntityName.phonecall.ToString(), toparty.partyid.Value, new AllColumns());
toparty = phonecall.to[0];
contact _contact = (contact)crmService.Retrieve(EntityName.contact.ToString(), toparty.partyid.Value, new AllColumns());
new_attrib = _contact.telephone1.ToString();
entity.Properties.Add(new StringProperty("phonenumber", new_attrib)); |
|
|
|
|
#2 |
|
Участник
|
Простите, конечно, но ваш код - это жесть!
![]() Для начала: Код: phonecall phonecall = new phonecall(); ![]() А вот это шедевр: Код: activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.phonecall.ToString();
toparty.partyid.Value = new Guid(toparty.partyid.Value.ToString());![]() Дальше можно не продолжать... |
|
|
|
|
#3 |
|
Участник
|
А может быть это проще сделать через workflow?
|
|
|
|
|
#4 |
|
Участник
|
Вам сначала надо с самой задачей разобраться.
Что делать, если получателей несколько? Чей телефон брать? |
|
|
|
|
#5 |
|
Участник
|
брать телефон нужно первого получателя, поскольку в 99% получатель будет всегда один
И наверное все-таки правильнее всего на OnChange по полю получателя повесить javascript, который будет вытаскивать телефон |
|
|
|
|
#6 |
|
Участник
|
|
|
|
|
|
#7 |
|
Участник
|
Спасибо за помощь
Вот в итоге нашел решение на Onchange event Код: if (crmForm.all.to.DataValue != null && crmForm.all.directioncode.DataValue == true)
{
var lookUp = new Array();
lookUp = crmForm.all.to.DataValue;
var pId = lookUp[0].id;
var pType = lookUp[0].typename;
var phoneField = "telephone1";
if (pType == "systemuser")
{
phoneField = "address1_telephone1";
}
var authenticationHeader = GenerateAuthenticationHeader();
// Define the SOAP XML to access Microsoft Dynamics CRM Web service.
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\">" +
authenticationHeader+
"<soap:Body>" +
"<Retrieve xmlns="+
"\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
"<entityName>" + pType + "</entityName>" +
"<id>" + pId + "</id>" +
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'><q1:Attributes><q1:Attribute>" + phoneField + "</q1:Attribute></q1:Attributes></columnSet>" +
"</Retrieve>"+
"</soap:Body>" +
"</soap:Envelope>";
// Create an instance of an XMLHTTP object.
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
// Configure the XMLHttp object for the
// Microsoft CRM Web services.
xmlHttpRequest.Open(
"POST",
"/mscrmservices/2007/CrmService.asmx",
false
);
xmlHttpRequest.setRequestHeader(
"SOAPAction",
"http://schemas.microsoft.com/crm/2007/WebServices/Retrieve"
);
xmlHttpRequest.setRequestHeader(
"Content-Type", "text/xml; charset=utf-8"
);
xmlHttpRequest.setRequestHeader(
"Content-Length", xml.length
);
// Send the XMLHttp request.
xmlHttpRequest.send(xml);
// Capture the XMLHttp response in XML format.
var resultXml = xmlHttpRequest.responseXML;
var pNum = null;
if (resultXml.selectNodes("//q1:" + phoneField).length == 1)
{
crmForm.all.phonenumber.DataValue = resultXml.selectSingleNode("//q1:" + phoneField).text;
}
} |
|
|
|
|
#8 |
|
Участник
|
Вот и прекрасно! Все бы вопросы так решались!
|
|
|
|
| За это сообщение автора поблагодарили: zkk (1). | |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|