none
Obtener fetchxml desde javascript RRS feed

  • Pregunta

  • hola

    estoy abriendo una pagina asp.net desde una Vista

    el usuario crea custom view con filtros o checkea determinadas entidades, yo necesito obtener los mismo datos en el aspx

    necesito obtener el fetchxml geenrado por la vista, desde el aspx

    es posible obtener el fetchxml  usando javascript ?


    estoy usando CRM 2011

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina



    lunes, 22 de abril de 2013 19:32

Respuestas

  • Hola Leandro

    Bueno, el advFind solo existe en la pagina de la búsqueda avanzada. Es por ese motivo que (hablando del ejemplo de codeplex) se creo un boton en el ribbon de la busqueda avanzada. 

    Si tu quieres usar el boton, desde la vista normal de cuenta, te recomienda buscar el siguiente id effectiveFetchXml. Este tag, contiene el fetch actual de la vista que se selecciona


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

    jueves, 25 de abril de 2013 14:43

Todas las respuestas

  • Hola Leandro, para leer lo seleccionado, te recomiendo este ejemplo que esta aquí y lo explica bien:

    http://community.dynamics.com/crm/b/crmmusings/archive/2012/09/12/crm-2011-ribbon-workbench-getting-guids-from-selected-records-in-the-grid.aspx#.UXYt9rXFEQo

    Para recoger el fetchXML desde el ribbon tienes el ejemplo aquí (http://sliong.wordpress.com/2012/10/18/crm-2011-add-custom-ribbon-button-on-application-ribbon-advanced-find/)

    en resumen esta aqui:

    var fetchXml = advFind.FetchXml;

    suerte y un abrazo


    Demian Adolfo Raschkovan Blog: http://crmtoall.blogspot.com If this post answers your question, please click "Mark As Answer" on the post and "Mark as Helpful"

    martes, 23 de abril de 2013 6:57
    Moderador
  • hola

    gracias por la ayuda

    estuve revisando el codigo y eso del advFind.FetchXml seria genial, pero me pregunto que libreria .js deberia definir en el aspx que estos creando para tener acceso a ese advFind ?

    estos buscando info sobre advFind, pero no logro ver de donde sale

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 23 de abril de 2013 15:37
  • hola Cristian

    gracias por la repuesta, revise los link, pero aun no me queda claro de donde sale advFind

    - habia pensado que era algun .js que debia definir en un <script> en mi pagina aspx

    - habia evaluado de usar document.opener.advFind para ver si se tomaba como un objeto de la pagina padre que seria el crm

    ninguna de las dos dio resultado

    -----

    el tema seria como obtener el FetchXml desde una pagina aspx, usando javascript

    lo loco es que al crear un report de Reporting Service este recibe por parametro el FetchXml, el cual estoy usando en una dll que integro para obtener la seleccion de la view que el usuario creo o de las entidades que marco

    yo no se que tipo de accion realizo el usuario, si es que selecciono algunos clientes o simplemente definio una vista custom al momento de lanzar la pagina, pero si necesito tener el FetchXml que esto genera para volver a lanzarlo y recuperar las entidades

    Nota: mofique la ribbon de crm para poner un boton que lanza la pagina aspx que estoy creando

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    martes, 23 de abril de 2013 20:25
  • hola

    puedo ver aqui

    http://crmmapping.codeplex.com/SourceControl/changeset/view/19629#9434

    que ellos definen

    var fetchXml = advFind.FetchXml;

    pero este advFind de donde sale ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 24 de abril de 2013 19:16
  • Hola Leandro,

    En primer lugar.. bienvenido al mundo CRMistico jejeje...Bueno te comento, el advFind es la id de la pagina de la búsqueda,  es decir, cuando haces una busqueda avanzada, la pagina donde tu generas la busqueda (remarcado en azul) es la advFind

    Ahora, el FtechXml, es uno de sus atributos por así decirlo, el cual almacena el FetchXml

    que haz generado previamente, en mi eejmplo, he buscado todas las cuentas de Spain. 

    <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"><entity name="account"><attribute name="name"/><attribute name="primarycontactid"/><attribute name="telephone1"/><attribute name="accountid"/><order attribute="name" descending="false"/><filter type="and"><condition attribute="address1_county" operator="eq" value="Spain"/></filter></entity></fetch>

    Para poder sacar todos estos datos, abre el developer toolbar, te será de mucha ayuda.


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

    • Propuesto como respuesta Atilio jueves, 25 de abril de 2013 7:20
    • Votado como útil Atilio jueves, 25 de abril de 2013 7:21
    jueves, 25 de abril de 2013 7:20
  • hola Atilio

    que bueno has arrojado un poco de luz al tema, la verdad pense que seria mas facil armar una pagina tomando los valores de la view

    ahora una pregunta, el boton que lanza la pagina lo tengo en la view de la entidad, o sea no la estoy  lanzando desde la ventana de Advanced Filter

    con  Developer tools estaba buscando si existia este advFind en la view en este caso del account, de esta forma usando el

    window.opener

    poder acceder al xml

    pero no pude localizarlo, sabes si esta presente en al ventana que listas las entidades , estoy desde esta pantalla imagen

    alli puse el boton que lanza un aspx en popup, pero se podra acceder al fectxml aplicado en la vista ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 25 de abril de 2013 14:22
  • Hola Leandro

    Bueno, el advFind solo existe en la pagina de la búsqueda avanzada. Es por ese motivo que (hablando del ejemplo de codeplex) se creo un boton en el ribbon de la busqueda avanzada. 

    Si tu quieres usar el boton, desde la vista normal de cuenta, te recomienda buscar el siguiente id effectiveFetchXml. Este tag, contiene el fetch actual de la vista que se selecciona


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

    jueves, 25 de abril de 2013 14:43
  • hola

    excelente pude ver que existe ese div con el fetch que necesito

    estuve viendo la forma de recuperarlo, pero como era de esperar no podia ser facil ya que veo que esta dentro de un iframe

    lo raro es que al usar

    var frame = document.getElementByTagId('contentIFrame');
    
    var fetch = frame.getElementByTagId('effectiveFetchXml').value;


    obtengo un mensaje "El objeto no acepta esta propiedad o metodo", parece que se produce en getElementByTagId() pero es muy loco como puede suceder eso si estoy en un javascript directo en el boton que puse en la toolbar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 25 de abril de 2013 21:01
  • Hola Leandro,

    Bueno, te contaré un secreto (pero shu shu no se lo digas a nadie ;) )

    Yo, cuando hago JS, siempre pruebo primero en la consola del Developer tool, 

    en Chrome (si el CRM tiene el UR 12), puedes ejecutar la siguiente consulta 

    $("#contentIFrame")



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

    viernes, 26 de abril de 2013 7:31
  • Hola Leandro,

    Bueno, he estado probando algunas cosas y, veo que todavía con ese script puedes obtener el fetch. 

    He estado probando y le he dado en el clavo, te adjunto la imagen

    He utilizado el siguiente código

    document.getElementById('contentIFrame').contentDocument.getElementById('effectiveFetchXml')
    Este script, funciona tanto en chrome como en explorer (10). 



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

    • Propuesto como respuesta Atilio viernes, 26 de abril de 2013 8:18
    • Votado como útil Atilio viernes, 26 de abril de 2013 8:18
    viernes, 26 de abril de 2013 8:11