Espanol Foro

Expand all | Collapse all

eventArgs.getSaveMode

  • 1.  eventArgs.getSaveMode

    Posted 5 days ago
    Buen día, alguien por favor que me pueda colaborar porque actualmente no funciona este JS en Dynamics 365 para evitar resolver el caso antes de diligencias un campo adicional??

    en la versiones anteriores funciona, pero en Dynamics 365 Onpremise no realiza la validación

    function
     test(executionContext)
    {   
        var eventArgs = executionContext.getEventArgs();
        var formContext = executionContext.getFormContext(); 
        var valor = formContext.getAttribute("campocustom").getValue();
        
        if (eventArgs.getSaveMode() == 5// Resolve Case
        {        
            if (valor==null)
                {
                    eventArgs.preventDefault();
                    alert("Alerta: Notificacion");
                    
                               
                }       
        }
    }


    ------------------------------
    Rolando Majin

    ------------------------------


  • 2.  RE: eventArgs.getSaveMode

    SILVER CONTRIBUTOR
    Posted 5 days ago
    Edited by Marcelo Sepulveda 5 days ago

    Buenas Rolando,

    En principio no veo nada raro, mas que en JS es mejor comparar por '===' que por doble '='
    Pon un debugger al comienzo de la función, y fíjate hasta donde llega.

    Llega al eventArgs.getSaveMode() == 5?
    Con que valor viene el eventArgs.getSaveMode()?

    Si llega y viene con 5, "valor" que tipo de campo es? tiene el valor null, o undefined o es un objeto?

    Arrancaría por ahí, y me dices, no veo el close case en la documentación, aunque antes se usaba: https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/save-event-arguments/getsavemode

    Si ves que no le encuentras la vuelta, no me volvería loco, crea un workflow sincrónico, que se dispare cuando cambie el estado del caso, ahi vez si es un estado de cierre, compruebas si el campo tiene datos y sino, informas el error, parando la ejecución como incorrecta.

    Saludos

    Marcelo



    ------------------------------
    Marcelo Sepulveda
    msepulveda@actiobp.com - Dynamics Consultant
    Actio Procesos y Tecnología S.L.
    ------------------------------



  • 3.  RE: eventArgs.getSaveMode

    Posted 5 days ago
    Hola Marcelo,
    hice todas las recomendaciones que me siguieres,  la que me funciona es la del workflow sincrónico, sin embargo a través del WF no puedo mostrar y volver obligatorio  un campo que se debe diligenciar antes de resolver el caso.




    ------------------------------
    Rolando Majin
    Ilumno Servicios de Colombia SAS
    Bogota D.C
    ------------------------------



  • 4.  RE: eventArgs.getSaveMode

    Posted 4 days ago
    Puede sonar tonto, pero no habrás olvidado pasar el context al registrar la función en el formulario? Intenta con el debugger.

    ------------------------------
    Angel Rodriguez
    Technischer Architekt
    K.Section Business Solutions GMBH
    Viena
    ------------------------------



  • 5.  RE: eventArgs.getSaveMode

    Posted 4 days ago
    Hola Ángel, la función está registrada correctamente, no genera ninguna acción el debbuger ni tampoco la función, al parecer para case no funciona la documentación eventArgs.getSaveMode() = 5 que es inactiva
    https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/save-event-arguments/getsavemode

    ------------------------------
    Rolando Majin
    Ilumno Servicios de Colombia SAS
    Bogota D.C
    ------------------------------



  • 6.  RE: eventArgs.getSaveMode

    Posted 20 hours ago
    Hola Rolando,

    Reproduje el Error y ahora entiendo un poco mejor el problema. Al parecer en el Evento OnSave no se tiene la información de que el Case está siendo Resuelto / Cancelado o Reactivado. En todos los casos se hace un Save (save mode = 1) antes que aparezca el dialogo de confirmación y para entrar los parámetros adicionales, pero no puedes diferenciarlo de un save normal, tampoco se ha cambiado el campo Status (statecode) aún. Al parecer esto pasa en backend o en una lógica adicional en JS.

    Debbuging Case Resolve
    Tienes varias alternativas creo para lograr lo que quieres, pero la más fácil y consistente creo que es ocultar el botón  de Resolve dependencia del valor del campo (campocustom).

    Saludos
    Angel A.


    ------------------------------
    Angel Rodriguez
    Technischer Architekt
    K.Section Business Solutions GMBH
    Viena
    ------------------------------



  • 7.  RE: eventArgs.getSaveMode

    Posted 7 hours ago
    Buen dia Angel,
    Habia analizado ese escenario  (save mode = 1) en el OnSave y en cualquiere cambio que se realice en el form se presenta la notificación, sin embargo no quiero ocultar el botón Nativo (Resolve Case) porque desde ahí se quiere controlar la resolución del caso.

    que otra alternativa sugieres?

    muchas gracias


    ------------------------------
    Rolando Majin
    Ilumno Servicios de Colombia SAS
    Bogota D.C
    ------------------------------