No crea Epic Link al crear la épica desde una postfunction

Issue #944 resolved
JCarlos created an issue

Hola Fidel,

Muchas gracias por sacar la release que corregía el bug 909.

Tenemos un problema con la asignación de los Epic Link cuando la Épica es creada desde otra tarea:

  1. Tenemos una tarea específica que en una transición lanza una postfunción que crea una Épica (1_Issue_Postfunction.PNG).
  2. Por otro lado, en el workflow de la Épica tenemos una postfunción que crea otras 4 tareas específicas, esta postfunción se ejecuta en la transición al crear la propia Épica (2_Epic_Postfunction.PNG).

El problema que tenemos es que la tarea del punto 1 crea la Épica bien, y a su vez esta Épica crea las 4 tareas nombradas en el punto 2, pero no es capaz de asignarles el Epic Link de esta Épica a estas 4 tareas.

Es correcto este funcionamiento?Hay alguna otra forma de asignar ese Epic Link en las 4 tareas?

Muchas gracias Un saludo

Comments (15)

  1. Fidel Castro Armario repo owner

    Hola @jcarlosmg81,

    Prueba la siguiente modificación: utiliza Issue key como valor fuente de la asignación en lugar de Epic name, como te muestro en la siguiente captura de pantalla:

    Captura de pantalla 2017-12-28 a las 21.24.18.png

  2. JCarlos Account Deactivated reporter

    Buenos días Fidel,

    Gracias por la respuesta. El resultado es el mismo. No asigan el Epic Link. Puede deberse a que no encuentre aun la Épica en la base de datos al ir a crear los enlaces? Hay alguna forma de incluir más de un reindex en una transición?

    Saludos

  3. Fidel Castro Armario repo owner

    Hola @jcarlosmg81,

    Por favor, adjunta captura de pantalla de la pestaña de post-funciones de ambas transiciones. Me gustaría ver todas las post-funciones que se están ejecutando, su configuración y su orden de ejecución.

    Gracias.

  4. JCarlos Account Deactivated reporter

    Hola Fidel,

    Te adjunto las postfunciones de la transición de la Épica (dividida en 4) y las de la transición de la tarea.

    Muchas gracias Saludos

    epic_1.PNGepic_2.PNGepic_3.PNGepic_4.PNGtask_1.PNG

  5. Fidel Castro Armario repo owner

    Hola @jcarlosmg81,

    Encuentro my extraño que no tengas una post-función "Fire a Issue Created event that can be processed by the listeners." en la transición "Create Issue" de la épica.

    Por favor, podrías confirmarme que no existe la post-función para disparar el evento en la transición "Create Issue"?

  6. JCarlos Account Deactivated reporter

    Hola Fidel,

    Efectivamente no está, la he creado. Debe ir al principio de todas las postfuntiones??

    Saludos

  7. Fidel Castro Armario repo owner

    Hola @jcarlosmg81,

    Debe ir al final, es decir, debe ser la última post-función que se ejecuta en una transición.

    A parte te recomiendo que la post-funcion de reindexación vaya después de todas las post-funcione de JWT. Mi recomendación siempre es que las post-funciones personalizadas, es decir, aquellas que añadimos nosotros a una transición, vayan siempre antes de todas las post-funciones que por defecto vienen con cualquier transición de JIRA.

    Por ejemplo, en la transición de la tarea te recomiendo que muevas la transición 7 a la posición 2.

    Por favor, dime si estos cambios de orden resuelven tu problema.

  8. JCarlos Account Deactivated reporter

    Hola Fidel,

    Seguimos con el mismo problema. En la transisción de creacion de la Épica, la postfunción "Creates the issue originally" debe ir al final también?? Aunque he probado ambas formas y no funciona

    Saludos JC

  9. Fidel Castro Armario repo owner

    Hola @,

    Por favor, prueba a hacer los siguientes 2 cambios:

    1. Instala la version 2.2.48_beta_1.
    2. Mueve todas las post-funciones de creación de tareas a una posición posterior a la de la post-función de disparo de evento en la transición "Create Issue" de la épica.

    Por favor, dime si con estos dos cambios se resuelve tu problema.

  10. JCarlos Account Deactivated reporter

    Hola Fidel,

    Sigue sin funcionar, crea la Épica, crea las 4 tareas, pero no crea el epic link en estas 4. He visto esto en el log, pero no se si tendrá calgo que ver:

    Saludos

    at com.atlassian.jira.issue.managers.RequestCachingIssueManager.updateIssue(RequestCachingIssueManager.java:214) at com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue(DefaultIssueManager.java:655) at com.atlassian.jira.issue.managers.DefaultIssueManager.updateFieldValues(DefaultIssueManager.java:704) at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:396) at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:410) at com.atlassian.jira.issue.fields.ImmutableCustomField.createValue(ImmutableCustomField.java:693) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkCFType.createValue(EpicLinkCFType.java:44) Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to com.atlassian.jira.issue.Issue at java.lang.Thread.run(Thread.java:745) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

  11. Fidel Castro Armario repo owner

    Hola @jcarlosmg81,

    Por favor, dime si al crear manualmente la épica se crean correctamente las tareas dependiendo de la épica. Quiero saber si el problema sólo se da cuando la épica se crea por medio de una post-función.

  12. JCarlos Account Deactivated reporter

    Hola Fidel,

    Te confirmo que al crear manualmente la Épica crea correctamente las tareas dependiendo de la Épica.

    Saludos

  13. Fidel Castro Armario repo owner

    Hola @jcarlosmg81,

    Puedo darte dos soluciones:

    1) En lugar de crear las tareas en la transición "Create Issue" de la épica, las puedes crear en la misma transición donde creas la épica. Esto implica que debes añadir las post-funciones "Create issues and subtasks" para la creación de las tareas justo después de la post-función para la creación de la épica. Tendrías que chequear la opción "Save issue keys of created issues into Ephemeral String 3 virtual field as a comma separated list." en la post-función de creación de la épica, con objeto de que puedas emplear el campo "Ephemeral String 3" como valor fuente para asignar el campo "Epic Link" en las post-funciones posteriores para la creación de las tareas.

    2) No añadir las post-funciones de creación de las tareas en la transición "Create Issue" de la épica, sino en una transición reflexiva (o circular) que añadiríamos en el primer estado del workflow de la épica. Esta transición podría llamarse "Crear Tareas" y podríamos ocultarla a los usuarios añadiéndole la condición "Transition is triggered by JIRA Workflow Toolbox post-function". Ahora sólo nos queda añadir una post-función "Copy a parsed text to a field" a la transición "Create Issue" de la épica con la siguiente configuración:

    • Target field: Execute Transition.
    • Parsing mode: basic
    • Text to be parsed...:Crear Tareas

    Esta post-función la debes añadir justo después de la post-function "Creates the issue originally".

    Cualquiera de estas dos soluciones debe resolver tu problema.

  14. JCarlos Account Deactivated reporter

    Hola Fidel,

    Me alegra comentarte que parece que funciona la opción 2, vamos a seguir trabajando en ella. La primera no la veíamos muy factible porque en ocasiones necesitamos crear la Épica a mano.

    Muchas gracias!

  15. Fidel Castro Armario repo owner

    Me alegro de que hayas solucionado el problema. Si te parece bien, procedo a cerrar la incidencia. Reábrela en caso de que lo necesites.

  16. Log in to comment