Principales respuestas
Buscar el telefono de la cuenta desde la pantalla de oportunidades.

Pregunta
-
Hola, soy nuevo con el CRM y tengo que escribir un codigo que no se como hacer y os agradeceria a alguno que me inidicaseis como hacerlo. La cuestión es que en Oportunidades tengo varias creadas. Cuando abro una oportunidad y le digo que voy a hacer una nueva activdad, llamada de teléfono, no me aparece el teléfono de la cuenta y quiero hacer un código que me consulte el teléfono de la cuenta y lo ponga en el campo correspondiente. Para mayor información el CRM está en un servidor local dentro del dominio. Os agradeceria me indicaseis los pasos y si me pudieseis dejar algún ejemplo mejor.
Gracias.
Respuestas
-
Este ejemplo desde mi punto de vista puede servirte:
http://msdn.microsoft.com/en-us/library/cc677066.aspx
saludos,
PP
Microsoft MVP Dynamics CRM | My Twitter: http://twitter.com/pabloperalta | My blog: http://weblogs.asp.net/pabloperalta | Blog en Español: http://wwww.elblogdedynamicscrm.com- Propuesto como respuesta Pablo Peralta, MS MVPMVP sábado, 28 de mayo de 2011 2:47
- Marcado como respuesta Jimmy LarrauriModerator lunes, 30 de mayo de 2011 3:53
-
Amigos,
Podemos ayudarnos de JavaScript como dice Pablito, lo que deberíamos de hacer es llamar a los webservices de CRM y usar el método RetrieveMultiple, te dejo un ejemplo de como hacerlo:
http://msdn.microsoft.com/en-us/library/cc677077.aspx
Nos comentas como te fue. :D Un abrazo.
[MVP]-Microsoft Dynamics CRM | My blog: http://jimmylarrauri.blogspot.com | My twitter: http://twitter.com/jimlarrauri- Propuesto como respuesta Jimmy LarrauriModerator jueves, 19 de mayo de 2011 16:21
- Marcado como respuesta Jimmy LarrauriModerator martes, 24 de mayo de 2011 6:05
-
Hola,
Mira el siguiente ejemplo:
Así se llamaría al nombre de un campo lookup en crm 4:
var lookupItem = new Array; // This gets the lookup for the attribute primarycontactid on the Account form. lookupItem = crmForm.all.to.DataValue; // If there is data in the field, show it in a series of alerts. if (lookupItem[0] != null) { // The text value of the lookup. alert(lookupItem[0].name); // The GUID of the lookup. alert(lookupItem[0].id); // The entity type name. alert(lookupItem[0].typename); }
Así se llamaría al nombre de un campo en crm 2011:
var lookupItem = new Array; // This gets the lookup for the attribute primarycontactid on the Account form. lookupItem = Xrm.Page.getAttribute("to").getValue(); // If there is data in the field, show it in a series of alerts. if (lookupItem[0] != null) { // The text value of the lookup. alert(lookupItem[0].name); // The GUID of the lookup. alert(lookupItem[0].id); // The entity type name. alert(lookupItem[0].typename); }
Espero haberte ayudado.
[MVP]-Microsoft Dynamics CRM | My blog: http://jimmylarrauri.blogspot.com | My twitter: http://twitter.com/jimlarrauri- Propuesto como respuesta Jimmy LarrauriModerator viernes, 20 de mayo de 2011 15:58
- Marcado como respuesta Jimmy LarrauriModerator martes, 24 de mayo de 2011 6:05
Todas las respuestas
-
Hola,
Lo que sucede es que la entidad Oportundiades utiliza un campo especial para elegir el cliente, que es un campo solo utilizado a nivel de CRM que permite elegir tanto un Contacto como una Cuenta.
Lo que vas a precisar allí es poner código javascript en el OnLoad de la actividad que verifique si está relacionada con una oportunidad y a partir de allí ir invocar a los WS desde javascript para ir a buscar el dato del teléfono.
Te adelanto que no es sencillo si recién comienzas con CRM. Yo honestamente no tengo ningún código a mano de eso y lo que te sugeriría es ir a buscar en el SDK de CRM.
Estás trabajando sobre 2011 o 4.0?
espero te sirva, saludos,
PP
Microsoft MVP Dynamics CRM | My Twitter: http://twitter.com/pabloperalta | My blog: http://weblogs.asp.net/pabloperalta | Blog en Español: http://wwww.elblogdedynamicscrm.com- Propuesto como respuesta Pablo Peralta, MS MVPMVP sábado, 28 de mayo de 2011 2:47
-
Este ejemplo desde mi punto de vista puede servirte:
http://msdn.microsoft.com/en-us/library/cc677066.aspx
saludos,
PP
Microsoft MVP Dynamics CRM | My Twitter: http://twitter.com/pabloperalta | My blog: http://weblogs.asp.net/pabloperalta | Blog en Español: http://wwww.elblogdedynamicscrm.com- Propuesto como respuesta Pablo Peralta, MS MVPMVP sábado, 28 de mayo de 2011 2:47
- Marcado como respuesta Jimmy LarrauriModerator lunes, 30 de mayo de 2011 3:53
-
Amigos,
Podemos ayudarnos de JavaScript como dice Pablito, lo que deberíamos de hacer es llamar a los webservices de CRM y usar el método RetrieveMultiple, te dejo un ejemplo de como hacerlo:
http://msdn.microsoft.com/en-us/library/cc677077.aspx
Nos comentas como te fue. :D Un abrazo.
[MVP]-Microsoft Dynamics CRM | My blog: http://jimmylarrauri.blogspot.com | My twitter: http://twitter.com/jimlarrauri- Propuesto como respuesta Jimmy LarrauriModerator jueves, 19 de mayo de 2011 16:21
- Marcado como respuesta Jimmy LarrauriModerator martes, 24 de mayo de 2011 6:05
-
Hola amigos, gracias por vuestras respuestas, estoy trabajando sobre el 2011 pablo. La cuestion es que estoy teniendo problemas para cojer el valor del destinatario. Tengo hecho un pequeño fichero js con una funcion que cargo en el OnLoad del formulario de la entidad llamadas, pero me da error y no consigo que me funcione. Os muestro el pequeño codigo que he hecho para obtener el destinatario:
fichero prueba.js // libreria que cargo en el formulario
//funcion que pongo en el Onload.
function cogeDesti(){
var txtDestinatario = Xrm.Page.getAttribute("to").getValue();
alert("el valor es:"+txtDestinatario);
}Lo unico que intento hacer es coger el valor del destinatario y mostrarlo por la pantalla pero no se porque no funciona. Haber si me podeis hechar una mano, gracias.
-
Hola,
Mira el siguiente ejemplo:
Así se llamaría al nombre de un campo lookup en crm 4:
var lookupItem = new Array; // This gets the lookup for the attribute primarycontactid on the Account form. lookupItem = crmForm.all.to.DataValue; // If there is data in the field, show it in a series of alerts. if (lookupItem[0] != null) { // The text value of the lookup. alert(lookupItem[0].name); // The GUID of the lookup. alert(lookupItem[0].id); // The entity type name. alert(lookupItem[0].typename); }
Así se llamaría al nombre de un campo en crm 2011:
var lookupItem = new Array; // This gets the lookup for the attribute primarycontactid on the Account form. lookupItem = Xrm.Page.getAttribute("to").getValue(); // If there is data in the field, show it in a series of alerts. if (lookupItem[0] != null) { // The text value of the lookup. alert(lookupItem[0].name); // The GUID of the lookup. alert(lookupItem[0].id); // The entity type name. alert(lookupItem[0].typename); }
Espero haberte ayudado.
[MVP]-Microsoft Dynamics CRM | My blog: http://jimmylarrauri.blogspot.com | My twitter: http://twitter.com/jimlarrauri- Propuesto como respuesta Jimmy LarrauriModerator viernes, 20 de mayo de 2011 15:58
- Marcado como respuesta Jimmy LarrauriModerator martes, 24 de mayo de 2011 6:05
-
Gracias Jimmy tu ayuda me está siendo muy util. Con lo que tu me has explicado he generado un fichero llamado por ejemplo Libreria.js en el cual he metido 2 funciones que el codigo seria:
// funcion llamada en el Onload del formulario
function cogeId(){
var lookupItem = new Array;
// This gets the lookup for the attribute primarycontactid on the Account form.
lookupItem = Xrm.Page.getAttribute("to").getValue();
// If there is data in the field, show it in a series of alerts.
if (lookupItem[0] != null)
{
// The GUID of the lookup.
var xID = lookupItem[0].id;
dameDato('account',xID,'Telephone1')
}
}// funcion que hace la consulta
function dameDato(entityName, searchValue, returnColumn){
var authenticationHeader = GenerateAuthenticationHeader();
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 http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<entityName>"+entityName+"</entityName>"+
"<id>"+searchValue+"</id>"+
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+
"<q1:Attributes>"+ "<q1:Attribute>"+returnColumn+"</q1:Attribute>"+ "</q1:Attributes>"+
"</columnSet>"+
"</Retrieve>"+
"</soap:Body>"+
"</soap:Envelope>";
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction",http://schemas.microsoft.com/crm/2007/WebServices/Retrieve);
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Capture the result. var resultXml = xHReq.responseXML;
alert(resultXml.selectSingleNode("//q1:"+returnColumn).nodeTypedValue);
}
Bueno pues dado este fichero js cuando entra en el Onload, la primera funcion se que la hace bien pues si cambio la llamada a la segunda poniendo un alert para ver el xID me lo enseña bien, pero en cuanto llamo a la segunda funcion me da el error: El valor de la propiedad cogeID es nulo o no esta definido, no es un objeto de funcion. La verdad es que como no he tocado antes el javascript y no veo manera de depurar, estoy un poco perdido. Dime si puedes donde estoy haciendo algo mal pues seguro que será alguna tonteria de novato.
Gracias.
-