Espanol Foro

Expand all | Collapse all

Actualización JavaScript error con el comando quickForms interfaz unificada

  • 1.  Actualización JavaScript error con el comando quickForms interfaz unificada

    SILVER CONTRIBUTOR
    Posted Apr 13, 2020 05:16 PM

    Muy buen día a todos:

    Recientemente Microsoft lanzó una nueva actualización para Dynamics 365 en la que estuve actualizando todos los scripts por los cambios en los comandos para los desarrollos y personalizaciones de las entidades, pero me encontre con un problema que no pude resolver referente a la extracción de datos de formularios de vista rápida, el comando con el que tengo problemas es el siguiente:

    var vistaRapida = formContext.ui.quickForms.get("DetalleCuenta");
    if(vistaRapida) { if (vistaRapida.isLoaded())
    {
    var controls = vistaRapida.getControl();
    if(vistaRapida.getControl(0).getAttribute() != null)
    {
    var nombreEmpresa = vistaRapida.getControl(0).getAttribute().getValue();
    }
    }

    Al hacer un debug al código pude percatarme que el error se esta obteniendo desde el comando getAttribute() ya que siempre me lo regresa en nulo, por lo que por obvias razones tampoco se puede obtener getValue();

    Ya se intentaron utilizar las siguientes opciones;

    var nombreEmpresa = vistaRapida.getControl("name").getAttribute("name").getValue();
    var nombreEmpresa = vistaRapida.getControl(0).getAttribute("name").getValue();
    var nombreEmpresa = vistaRapida.getControl("name").getAttribute().getValue();

    En cada una de ellas sigue presentándose el mismo problema.

    Se pretende utilizar la interfaz unificada Dynamics 365 en la organización y aún no se actualiza debido a este problema.

    ¿Alguien tiene alguna idea de sí se actualizó el comando o alguna solución para la nueva versión que me sirva para extraer los datos que requiero?

    Se agradece por adelantado.

    quedo al pendiente de sus comentarios.


    Saludos cordiales.

    ------------------------------
    Ruben González Reyes
    Gerente de Ingeniería Avanzada
    SolidServicios S.A. de C.V.
    Zapopan
    ------------------------------


  • 2.  RE: Actualización JavaScript error con el comando quickForms interfaz unificada

    Posted Apr 14, 2020 12:03 PM
    Buenas tardes Ruben,
    yo realizo una operación similar a la tuya pero para ocultar el campo. Yo utilizo el siguiente código.

    function quickFromTitular(executionContext) {
        var context = executionContext.getFormContext();
        context.ui._quickForms._collection.QuickviewControlParentAccountId.setVisible(true);
    }
    donde QuickviewControlParentAccountId es el nombre del campo dentro del quickFrorms.

    Te aconsejo que realices la siguiente acción:
     - Añade un debugger en tu código, mejor debajo de la declaración de la vistaRapida y accede al debugger de tu navegador mediante F12
     - Ves a la pestaña de consola una vez allí escribe vistaRapida y ejecuta. Des del resultado podras mira que opciones te aparecen.
    Así es como detecte yo el nombre de mi campo y pude realizar el setVisible, en tu caso el getValue.

    ------------------------------
    Mònica Coronado
    Desarrollador
    ------------------------------



  • 3.  RE: Actualización JavaScript error con el comando quickForms interfaz unificada

    Posted Apr 15, 2020 06:27 AM
    Buenas Ruben,

    Como indica Monica, siempre es mejor pasar el execution context como parámetro desde el formulario.
    Luego para acceder al campo, simplemente, utiliza el formcontext y luego lo usas normalmente como usabamos el Xrm.Page.

    Te dejo un ejemplo:

    abp_ubicacion_OnChange: function (executionContext) {
    "use strict";
    var formContext = executionContext.getFormContext();
    var ubicacion = formContext.getAttribute("abp_ubicacion").getValue();
    if (ubicacion) {
    formContext.getAttribute("abp_creditos").setValue(ABP.Curso.Functions.calcularCreditos(formContext));
    }
    }

    Aqui puedes ver como tengo un evento en el campo "abp_ubicacion" y como poniendo el check en pasar el contexto desde el formulario, puedo luego trabajar sin problemas de una manera sensilla, esto puedes hacerlo de la misma forma con el onLoad o OnSave.

    Esto funciona tanto para los formularios de creacion rapida como para los formularios principales.

    Dime si tal vez no te he entendido bien y era otro el problema.

    Saludos

    ------------------------------
    Marcelo Sepulveda
    CRM Architect
    ------------------------------



  • 4.  RE: Actualización JavaScript error con el comando quickForms interfaz unificada

    Posted Apr 15, 2020 03:36 PM
    Hola Rubén,

    He estado revisando tu problema y finalmente he encontrado una solución. Te cuento un poco lo que he visto y espero que te sirva. He utilizado este método:


    Como ves en la imagen me ha recuperado el valor pero he observado lo siguiente: En el evento OnLoad no me recuperaba el valor pero he intentado invocarlo en el método OnSave y ahí si que me lo recupera. Es posible que cuando D365 ejecuta el método OnLoad lo haga antes de que cargue la información de un formulario de vista rápida. Una vez el formulario carga por completo ya si que carga la información de este tipo de formularios y por lo tanto me deja recuperar el valor. Por eso en el método OnSave si que funciona correctamente este método.

    Mi recomendación y aunque sea una consulta "doble" si necesitas recuperar el valor de este campo en el OnLoad realiza una consulta y de este modo podrías solucionar tu problema

    Espero que haya sido útil y cualquier cosa intentaré responderte!

    Saludos!!


    ------------------------------
    Enrique Romero Fernández
    Consultor
    Innovar Tecnologías
    Madrid, España
    ------------------------------