Funsion carga de valores en campo tipo combo

Issue #958 resolved
Pablo Alberto Rodriguez created an issue

Hola Fidel, como estas? te molesto para consultarte por un problema que estoy teniendo. En una transicion de mi wkf, como post funsion tengo configurado lo siguiente (adjunto) Cuando se ejecuta, el fin que intento es: que si se modifico el campo numero o nombre proveedor, se ingrese como nuevo valor en un campo tipo lista (si no existe) y se deshabilite en el combo la opción modificada. Funciona correctamente, pero solo la primera vez que la ejecuto, si vuelvo a modificar el issue (ejecutar esa transicion) me agrega la modificación a la lista y me deshabilita la anterior, pero me vuelve a habilitar la primera, y asi cada vez que la ejecuto , cuando en ningun momento esto configurando que se habiliten las opciones deshabilitadas. Sabes que puede ser?

Comments (26)

  1. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    Parece que no se puede usar dos veces la post-función "Add or Disable option in Select List, Radio Button, Multi-Select List or Checkbox" en una misma transición, sobre un mismo campo Select List.

    Una posible solución es crear una transición reflexiva en el estado de destino de la transición donde operas sobre el campo Select List, e insertar en ella la post-función de desactivación de la opción. Para ello debes hacer lo siguiente:

    1) Crea una transición reflexiva en el estado de destino de la transición en la que añades la nueva opción (en adelante transición "Edita Proveedor"). Esta se llamará "Desactivar Proveedor - Numero".

    2) Haz oculta a los usuarios la transición "Desactivar Proveedor - Numero" añadiendo la condición "Transition is triggered by JIRA Workflow Toolbox post-function".

    3) Añade la post-función "Add or Disable option in Select List, Radio Button, Multi-Select List or Checkbox" a la transición "Desactivar Proveedor - Numero" para desactivar la opción antigua, que va almacenada en el campo "Ephemeral string 4", pero en este caso deja vacío el parámetro "Conditional execution".

    4) Elimina de la transición "Edita Proveedor" la post-función "Add or Disable option in Select List, Radio Button, Multi-Select List or Checkbox" para desactivar la opción antigua (post-función nº 5).

    5) Añade a la transición "Edita Proveedor" la post-función "Copy a parsed text to a field" en la posición nº 5 con la siguiente configuración:

    • Target field: Execute transition
    • Parsing mode: basic
    • Text to be parsed...: Desactivar Proveedor - Numero
    • Conditional execution: %{00066} != %{00067}

    donde %{00066} y %{00067} son los códigos de campo de "Ephemeral string 4" y "Ephemeral string 5" respectivamente.

    6) Añade a la transición "Edita Proveedor" la post-función "Inhibit ephemeral fields auto-clearance" en cualquier posición.

  2. Pablo Alberto Rodriguez reporter

    Hola Fidel! Muchisimas gracias por la pronta respuesta. Lamentablemente continua reproduciendo el mismo error a pesar de los cambios, te envio pantallas de como quedó, si bien actualiza el combo continua el problema de que en en segundo cambio activa los inactivos :(

  3. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    Por favor, confírmame las versiones de JIRA y JWT que estás usando.

  4. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    Perdona por la demora en mi respuesta.

    Por favor, prueba la version 2.3.1_beta_1 con tu configuración inicial, y dime si resuelve tu problema. Gracias.

  5. Pablo Alberto Rodriguez reporter

    Hola @fcarmario . Funcionó de maravilla!!!! Muchas gracias por todo. Te hago una consulta, esta version dejo instalada hasta que salga la nueva productiva?

    Saludos y gracias nuevamente

  6. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    La liberación de la nueva versión (3.2.1) está prevista para este viernes. En cualquier caso puedes dejar la versión beta instalada ya que tiene muy pocos cambios respecto a la 2.3.0, y considero que el riesgo de problemas es extremadamente bajo.

  7. Pablo Alberto Rodriguez reporter
    • changed status to open

    Fidel, una consulta mas que se me planteo en esta solución. Como puedo validar que en la edición del campo (obvio por transición) ej. "num proveedor", no me deje realizar la edicion si ya existe un issue con el valor que esto poniendo en ese campo. Pero que si me deje editarlo si edito otro campo de esa transicion. En el create fue facil con esta config.(adjunto) Pero en la edicion no se como hacerlo

    Saludos

  8. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    Perdona, pero no acabo de entender tu pregunta. Tengo algunas preguntas:

    1. ¿quieres controlar que no se pueda dar un valor a un campo si existe otra incidencia en la que el campo tenga ya ese valor?
    2. ¿las incidencias con el mismo valor de campo deben estar abiertas para impedir la edición, o no importa su estado o tipo de resolución?
    3. ¿qué campos quieres controlar? ¿qué tipo tienen estos campos?

    ¿puedes ponerme algunas capturas de pantalla mostrando cómo lo has hecho para la creación de la incidencia? Tal vez de este modo me haga una idea de lo que quieres hacer con la edición.

  9. Pablo Alberto Rodriguez reporter

    Fidel, perdon si no me hice entender. paso a responder las consultas: 1. Exacto, esa es la validacion que quiero realizar 2. no importa ni estado ni resolusion 3. Campo " Numero de proveedor" numerico Adjunto pantallas

    Muchas gracias!

  10. Fidel Castro Armario repo owner

    Hola Pablo,

    Para poder controlar la edición del campo "Número de proveedor" tendrás que quitar este campo de la pantalla de edición en el esquema de pantallas de tu proyecto, y utilizar una transición reflexiva para editarlo por medio de la pantalla asociada a la transición.

    La solución detallada es:

    Una posible solución es crear una transición reflexiva en el estado de destino de la transición donde operas sobre el campo Select List, e insertar en ella la post-función de desactivación de la opción. Para ello debes hacer lo siguiente:

    1. Crea una pantalla denominada "Edición Número Proveedor" y añádele el campo "Número de Proveedor".
    2. Crea una transición global reflexiva (es decir, de cualquier estado a sí mismo) denominada "Editar Número de Proveedor", y asóciale la pantalla "Edición Número Proveedor".
    3. Suprime el campo "Número de Proveedor" de la pantalla de edición. De este modo sólo podrá editarse este campo por medio de la transición "Editar Número de Proveedor".
    4. Añade la validación "Validation based on JQL query" que ya estás usando en la transicion "Create Issue".

    La forma de crear una transición global reflexiva es la siguiente:

    global-reflexive-transition.png

  11. Pablo Alberto Rodriguez reporter

    Si eso fue lo que hice. Pero al ejecutar la transicion y modificar el campo nombre (y no el numero) me activa la validacion y me dice que el provvedor ya existe (porque el numero es el mismo ) Me explico?

  12. Fidel Castro Armario repo owner

    Usa la siguiente consulta JQL:

    project = "Lista de Proveedores" and "Número de Proveedor" ~ %{11500} AND "Nombre de Proveedor" ~ "%{nnnnn}"
    
    reemplazando nnnnn con el código del campo "Nombre de Proveedor".

  13. Pablo Alberto Rodriguez reporter

    Hola Fidel, lamentablemente no me funciono (adjunto capturas4) al modificar el numero de un proveedor y ponerle el de otro ya existente me dejo realizarlo. que otra solucion podria ser posible?

    Desde ya muchas gracias

  14. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    He implementado una validación similar sobre JIRA 7.7.1 con JWT 2.3.2, y a funciona perfectamente: si el par de valores que introduzco para dos campos de texto (Text Single Line) T1 y T2 en la pantalla de asociada a una transición ya existen en otra incidencia del mismo proyecto, la validación muestra el mensaje de error. En el campo T1 introduzco un número aunque el tipo del campo es Text Single Line.

    Esta es la captura de pantalla de mi validación:

    Captura de pantalla 2018-02-27 a las 11.06.29.png

    Una pregunta: ¿De qué tipo son los campos "Nombre de Proveedor" y "Número de Proveedor"?

  15. Pablo Alberto Rodriguez reporter

    Hola Fidel. Si entiendo. Pero en mi caso no hay problema que exista el mismo T2 (citando tu ejemplo) solo quiero validar que no exista mas de un T1. El punto creo esta es que en la misma transicion puedo editar ambos campos. Se entiende?

  16. Fidel Castro Armario repo owner

    Hola @prodriguezbhp,

    Mi validación impide que existan 2 incidencias con el mismo para de valores para "Número de Proveedor" y para "Nombre de Proveedor".

    Si entiendo bien tu explicación, entonces creo que deberías utilizar la siguiente consulta JQL en la validación:

    project = "Lista de Proveedores" and "Número de Proveedor" ~ %{11500}
    

  17. Fidel Castro Armario repo owner

    Pablo, cierro la incidencia. Si sigues teniendo problemas, por favor, reábrela. Gracias.

  18. Log in to comment