none
¿como llamar desde js a una clase o metodo de c# utilizando crm4? RRS feed

  • Pregunta

  • Buenas,

    necesito que desde el evento onchange() del account de oportunidad, que al elegir un cliente comprobar si tiene creado el site en sharepoint 2010, y si no está creado, crearlo, alguien puede dacirme como hacerlo o algún link en el que poder investigar?

    Gracias.

    jueves, 18 de octubre de 2012 9:30

Todas las respuestas

  • Hola Julian, tienes que tener en cuenta que el JavaScript se ejecuta en el cliente y el c# en una aplicación web se ejecuta en el servidor.

    Por lo tanto creo que lo mejor que puedes hacer es crearte un web service (en el servidor) y desde el JavaScript hacer una llamada desde el JavaScript. Otra solución podría pasar por un desarrollar un "plugin" en el evento "Update" de opportunity.

    un saludo,


    Demian Adolfo Raschkovan Blog: http://crmtoall.blogspot.com

    jueves, 18 de octubre de 2012 13:57
    Moderador
  • He encontrado, una libreria de sharepoint que es SP.js, la he copiado en el servidor de crm, pero me da un error, que es el siguiente:

    ScriptErrorDetails>
     <Message>&#39;Type&#39; no est&#225; definido</Message>
     <Line>2</Line>
     <URL>/ISV&#47;sp.js</URL>
     <PageURL>/SMS&#47;sfa&#47;opps&#47;edit.aspx&#35;</PageURL>
     <Function></Function>
     <CallStack>
     </CallStack>
      </ScriptErrorDetails>

    la libreria .js la he cogido del sharepoint, ¿puedo bajarmela de otro sitio?

    En el onload de oportunidad llamo a dicha funcion:

    //Añadimos el js de sp
    var script2load=document.createElement("SCRIPT");
    script2load.src="/ISV/sp.js";
    document.getElementsByTagName("Head")[0].appendChild(script2load);

    /* This goes in the entity onload event */  
     
    //create a new script Element  
    var script2Load = document.createElement("SCRIPT");  
    script2Load.language = "javascript";  
    /* 
    set the src (url) Property with a random number to avoid caching 
    if you don't set the random number ie will cach your file and you might need to ctrl + f5 to see the changes you make while developing. 
    */  
    script2Load.src = "/ISV/sp.js?nocach=" + Math.random(); //Just an example  
    //append the element to the head tag (global scope)  
    document.getElementsByTagName("HEAD")[0].appendChild(script2Load); 
    //or document.documentElement.childNodes[0].appendChild(script2Load);  
     
    /* this goes in the account.js file */  
     
    function OnCrmPageLoad()  
    {  
     
       alert('doing stuff');  
    }  
     
    function CallMeFromAnywhare()  
    {  
       alert();  
    }  
     
    /* 
    expose the function to the window scope. 
    This is important if your going to paste the file back into the entity onload event to support offline mode or a redeployment becouse the script is loaded into the head tag (global scope) and the onload event is a third level function which makes the functions you write unavailable to external calls. 
    */  
    window.CallMeFromAnywhare = CallMeFromAnywhare;  
     
    /* last Line */  
    OnCrmPageLoad();

    Gracias.

     

    viernes, 19 de octubre de 2012 7:59
  • Hola, ten en cuenta que eso que intentas hacer está totalmente no soportado. Además habría que revisar que hace la librería sp.js, es posible que este dando un error de "Cross Scripting" (ejecutando scripts de otros dominios o sitios webs).

    Te recomiendo que lo depures (debugger;) paso a paso, a ver en donde falla exactamente pero al final ten en cuenta que lo que quieres es algo que debes entender conceptualmente bien.

    El código c# se ejecuta en servidor mediante un .aspx o un web service .asmx. Si quieres ejecutar eso, debes poder hacer una llamada al servidor de IIS para ejecutar ese código en servidor, no en cliente.

    un saludo,


    Demian Adolfo Raschkovan Blog: http://crmtoall.blogspot.com

    viernes, 19 de octubre de 2012 11:56
    Moderador
  • Hola Julián

    Lo estas haciendo en CRM 4 o 2011... lo que pasa es que para el CRM 4 ya no necesitas el codigo para agregar el archivo externo. 

    Si es CRM 4 aca te dejo algunos link para que mires como adjuntar el arcihvo y poder llamar a la funcion JS.

    http://community.dynamics.com/product/crm/crmtechnical/b/crmmattwittemann/archive/2009/06/04/including-external-javascript-files.aspx

    http://mscrm4ever.blogspot.com.es/2008/08/referencing-external-js-file-from-crm.html


    Salu2 Atilin | http://www.dexrm.com

    lunes, 22 de octubre de 2012 13:20