Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Problema al crear una incidencia vinculada

Angel Salazar June 25, 2025

Hola, quisiera me pudieran ayudar con un requerimiento. Les pongo un poco en contexto. Tenemos un cliente con un proyecto JSM Cloud que nos pide copiar el valor del campo Customer Request Type de una incidencia padre en una incidencia hija (incidencia vinculada creada desde la incidencia padre) y este código en Scriptrunner en efecto si lo hace. Ejemplo: Si la incidencia padre tiene un customer request type: Creación de nuevo usuario, al crear una incidencia vinculada el valor del campo customer request type pasa a ser Creación de nuevo usuario. En ese requerimiento está funcionando todo bien.

Nos percatamos de la siguiente falla. Si la incidencia padre tiene un issue type "A" este código se ejecuta correctamente cuando al crear la incidencia vinculada el issue type es distinto al de la incidencia padre (B,C,D...) pero el valor del customer request type copiado no corresponde al issue type que utiliza.

Por otra parte si creamos una incidencia vinculada con el mismo issue type de la incidencia padre "A" en efecto si crea la incidencia con el mismo issue type pero el campo customer request type viene vacío, es decir no se ejecuta el código correctamente.

A ustedes les ha pasado, tienen alguna información o ayuda que puedan darme para que independientemente del issue type que se escoja al crear una incidencia vinculada se copie correctamente el valor del campo customer request type de la incidencia padre?

Captura de pantalla 2025-06-25 142807.pngCaptura de pantalla 2025-06-25 142738.png

1 answer

0 votes
Oleksii Melnyk
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 25, 2025

Hola, gracias por compartir el detalle del caso.

Por lo que entiendo, el problema ocurre cuando se intenta copiar el valor del campo Customer Request Type desde la incidencia padre a la hija, pero el Issue Type de la hija no corresponde al mismo Issue Type configurado originalmente para ese tipo de solicitud (Request Type).

Es importante recordar que en Jira Service Management, el campo Customer Request Type está estrechamente ligado al Issue Type, ya que cada tipo de solicitud (Request Type) está asociado a un tipo de issue específico en el proyecto del portal.

Entonces, por ejemplo:

  • El Request Type “Creación de nuevo usuario” está asociado al Issue Type “Solicitud”.
  • Pero si se intenta crear una incidencia hija con Issue Type “Incidente”, ese Request Type puede no ser válido para ese tipo de issue, y por eso el campo queda vacío o se ignora.

Soluciones o recomendaciones:

  1. Verifiquen que el Request Type que están copiando desde la incidencia padre esté disponible para el Issue Type de la incidencia hija.
    En Jira Admin > Proyectos > Configuración del portal > Tipos de solicitud, pueden ver qué Issue Types están asociados a cada tipo de solicitud.
  2. Asegúrense de que los Issue Types tengan configuraciones equivalentes, especialmente que el workflow sea el mismo.
    Un Request Type solo se puede usar con Issue Types que tengan el mismo flujo de trabajo, pantallas y campos. Si quieren reutilizar un Request Type entre distintos Issue Types, estos deben compartir exactamente la misma configuración.
  3. Como alternativa, podrían usar una lógica condicional en el script para mapear el Customer Request Type correcto según el Issue Type de destino.

Si me comparten el script actual que están usando en ScriptRunner, con gusto puedo ayudarlos a adaptarlo para que haga esta validación y ajuste automáticamente el tipo de solicitud según el tipo de issue.

Angel Salazar June 26, 2025

Hola Oleksii, espero estes bien, te explico en mayor contexto.

El código tiene que copiar el CRT (tipo de solicitud) de la incidencia padre en la incidencia hija (incidencia vinculada creada desde la incidencia padre), Ejemplo si yo creo una incidencia vinculada desde una incidencia padre que usa un issues type: "incidente" y un tipo de solicitud: "Mejora continua de aplicaciones" al crearse la incidencia vinculada seleccionando el mismo issues type de la incidencia padre debe copiar el valor de "Mejora continua de aplicaciones" en la incidencia hija.

Básicamente es eso lo que se pide pero haciendo pruebas con tickets me he percatado de 2 situaciones:

1- Actualmente hay 6 tipos de incidencias en el proyecto y cada una de estas funciona con un flujo de trabajo distinto. Algunos con aprobadores y otros sin aprobaciones. Me he percatado que el código de copiar el CRT solo se ejecuta cuando creo incidencias vinculadas seleccionando algunos tipos de incidencia en específico (3 de 6). Pero no logro dar con la falla porque no hay una condición en el guión que lo limita solo a algunos tipos de incidencias.

2- Cuando se crea una incidencia vinculada y el tipo de incidencia es alguno de los 3 que recientemente comentó que si se ejecuta el código en efecto si copia el CRT de la incidencia padre pero no es correcto porque copia el CRT de uso exclusivo de un tipo de incidencia a otro tipo de incidencia que no corresponde. Ejemplo: el tipo de solicitud "mejora continua" está asignado solo al tipo de incidencia "Incidencia" y si se ejecuta el código al crear una incidencia vinculada con un tipo de incidencia "requerimiento" copia el tipo de solicitud "mejora continua" y eso está mal porque "mejora continua" solo debe trabajar con el tipo de incidencia "incidencia".

3- Para los 3 tipos de incidencias restantes donde no se ejecuta el código crea la incidencia vinculada pero no copia el CRT, el campo viene vacío y el script muestra error 404 al hacer put en el CRT.

el anexo código:

var issueKey = issue.key

var result = get('/rest/api/2/issue/' + issue.key)
.header('Tipo-de-contenido', 'application/json')
.asObject(Mapa)

//Se obtienen los campos del ticket
var issueFields = result.body.fields
var relatedIssueKey = issueFields.issuelinks[0].outwardIssue.key

var result2 = get('/rest/api/2/issue/' + relatedIssueKey)
.header('Tipo-de-contenido', 'application/json')
.asObject(Mapa)

var relatedIssueFields = resultado2.cuerpo.campos

var requestTypeId = "a" + relatedIssueFields.customfield_10001.requestType.id

var mapCRT = [
'a563':'eit/8f8e14b6-0329-4ca9-a07a-98376d926fe0',
'a482':'eit/17383443-c807-4970-b4b0-3a6c1b30ea36',
'a369':'eit/ca563200-b198-41ef-a2fd-a92cb0b10636',
'a361':'eit/6cbfd9ee-be0c-4b78-afcd-7d28599fa31d',
'a491':'eit/27d9dcc3-dd55-4f3c-a9ed-4901e70a340b',
'a374':'eit/c2d5d7f2-d3ff-4eac-8675-40c80a197335',
​​'a477':'eit/e10c558e-959c-468f-a5e1-8dcac1bfb88b',
'a354':'eit/23287647-cdf3-4ded-9a5d-d679cf9a6eb7',
'a380':'eit/5f3ee839-802a-4beb-9277-1cda58075015',
'a359':'eit/225780a5-5690-4d0f-8d56-9537c13c2219',
'a386':'eit/72d98c81-a6ad-4436-b3d8-f5dcc632875e',
'a375':'eit/b5cc1016-d448-40a7-b5a8-500552b47fd1',
'a389':'eit/7e0166e4-9652-4249-9c68-e7c9e95353e5',
'a478':'eit/56840bff-5907-4ca0-a20c-9d5f22905b88',
'a397':'eit/af5a02c2-ea03-4d30-b349-06b6b698af56',
'a476':'eit/698c3e0c-8a08-46be-b6a9-74778d4e7d52',
'a475':'eit/6429c4b6-eaa7-4a03-9a97-dee8504c7da8',
'a493':'eit/b4959a13-ae63-4fb6-be2b-62389fdb5965',
'a366':'eit/c050133e-0ff5-4f5a-852e-747b393c6029',
'a395':'eit/11f71665-1a75-4f02-9e74-62e916996e12',
'a351':'eit/40cfc799-72f5-4f3a-8462-e6dd287e9134',
'a393':'eit/f4d95d38-716f-4cae-a35f-22c93190e570',
'a355':'eit/7ac70ade-17a0-4f49-af84-cc1d623c843f',
'a350':'eit/1ccf1ddc-960b-4688-8ad0-c9967711dfa6',
'a362':'eit/d4239dac-56e4-4076-bc41-aa9958b84dcc',
'a352':'eit/52ff29b5-5f6b-4295-9841-de11090c830d',
'a356':'eit/df29deba-38aa-47ac-a74d-b065fd81bb69',
'a390':'eit/d316d32a-a7c8-429e-a1b2-4cd3f75c66b2',
'a479':'eit/1dd1743d-25ea-4778-b460-6ff2d094659f',
'a372':'eit/75c2f595-b125-4832-b1b4-d48495dad033',
'a398':'eit/64b11535-5a55-486d-ad54-a01247a0e23a',
'a472':'eit/f1a90f1d-a60b-433a-abf0-605bea48a052',
'a494':'eit/b42b05c0-7c90-4ade-9e88-260be2678826',
'a378':'eit/2de50ba7-3830-4993-8abd-e228ea511b1e',
'a370':'eit/e177c5d3-3ae2-46ba-b8ac-9ba1772e25bc',
'a492':'eit/3973d55f-d1c5-445f-9e45-023a42566406',
'a385':'eit/fe5a16ed-8ca0-476c-b7e5-b75310e6d2f8',
'a368':'eit/8efd63da-1948-45f8-a30b-3b0020be7263',
'a365':'eit/9af02bbd-801a-473b-a5de-1aed54969b85',
'a481':'eit/f6304cdc-bb0b-415b-a1d1-36ee9c6a443f',
'a391':'eit/6d99f8cc-5146-4948-b0f6-bf2c634442f9',
'a373':'eit/6142b0dd-1151-4dde-9750-93634531e441',
'a480':'eit/fcf038fc-5b59-46fd-90f4-5d8211f57c5f',
'a367':'eit/23232bf5-9553-41a7-8058-4cf14b048733',
'a353':'eit/59df3818-2bf5-4f0b-916b-0d2cee7c0fcd',
'a358':'eit/7c22c357-8b5f-47a6-8fd5-b35bc9587a81',
'a474':'eit/32c71e16-b952-47c8-9432-ba3b1ec2b5c8',
'a394':'eit/3e5b046d-f1fe-482a-85bf-c3c9f950a863',
'a384':'eit/24ddfa8b-2bb9-4f0b-b2ae-63408658b6b0',
'a392':'eit/530de21a-36b6-4f72-a78f-e689212112dc',
'a349':'eit/044a557f-8689-4e30-90b1-4ae4fefe496f',
'a465':'eit/166c0f27-34bb-47a8-8a11-95f450f9a23b',
'a484':'eit/78c67dfa-6829-4c14-87db-0d106709a647',
'a495':'eit/e1a04d7f-d4d3-413c-8a63-226992c8cb3d',
'a364':'eit/bb3da27f-0051-4df2-93b1-08bd6c3c053f',
'a488':'eit/aeab86be-56fa-4303-9acb-8b5015617032',
'a490':'eit/d3be7c15-5933-420d-aa05-bc129823cbde',
'a489':'eit/e3cd62dc-14f9-45a7-8d22-27cc2aca7b29',
'a486':'eit/d2e0d847-0021-4d59-86d8-dd393c6c327e',
'a496':'eit/1155578a-e119-45da-87aa-e00200acfecf',
'a483':'eit/c96a1861-22b2-42f1-b2b5-08e850eff360',
'a363':'eit/7c80d8cc-67df-469e-b3f9-76faf3bd9b65',
'a357':'eit/a02f3c1c-a3ad-498a-b960-f71ed6e6d0e0',
'a387':'eit/b83d7222-aada-4303-af94-7415ef861e84',
'a530':'eit/d2b04871-332e-4e39-93b1-5dd9ecf980bf',
'a471':'eit/dbf9f15f-106a-4d30-990a-0e04649b5198',
'a399':'eit/e1882014-9d86-4873-8d97-3e80f2ad17a9',
'a453':'eit/190f0455-1dc8-4ec4-bd5c-22bf3b21ef61',
'a422':'eit/faf6c6f8-0ea4-4bab-a1f7-8e3f39574699',
'a423':'eit/92543b17-1bc7-4752-b6c3-521efe7c9710',
'a424':'eit/487d5e80-8be0-4f9c-bea7-fa3b270110b8',
'a388':'eit/5f3f290d-9056-4b35-aafe-cd3bf9f80e16',
'a382':'eit/24044ec0-090f-45ac-8955-6503f0b45bc0',
'a485':'eit/98010649-b456-4d82-9451-54ec9ccd127e'
]

var crtValue = mapCRT.get(requestTypeId)
resultado2 = put("/rest/api/2/issue/${issueKey}")
.header('Tipo de contenido', 'application/json')
.body([
campos: [
customfield_10001: crtValue
]
])
.asString()
devolver resultado2

Oleksii Melnyk
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 29, 2025

El problema es que el script intenta copiar el Customer Request Type (CRT) desde el issue padre al hijo sin verificar si ese CRT es válido para el tipo de incidencia hijo.
En Jira Service Management, cada CRT está vinculado a un Issue Type específico. Si copias un CRT que pertenece a “Incidencia” y lo asignas a un issue tipo “Requerimiento”, Jira devuelve error 404 o deja el campo vacío.


Adicionalmente:

  • El script no verifica si el tipo de solicitud es compatible con el tipo de incidencia del hijo.
  • issuelinks[0] puede fallar si no hay outwardIssue.
  • Usas .get() sobre mapCRT, que es un array, no un objeto - eso puede causar error en tiempo de ejecución.


Sería muy útil si pudieran detallar nuevamente el caso que desean resolver, pero esta vez con un ejemplo real y completo.
Por ejemplo:

  • ¿Cuál es el Issue Type de la incidencia padre?
  • ¿Cuál es el Customer Request Type que tiene asignado?
  • ¿Qué Issue Type seleccionan al crear la incidencia vinculada?
  • ¿Qué comportamiento esperan y qué está ocurriendo en realidad?


Además, si pudieran incluir capturas de pantalla mostrando:

  1. La configuración del tipo de solicitud en el portal de Jira Service Management
  2. Los valores del campo en la incidencia padre
  3. El resultado actual en la incidencia hija

Esto nos ayudaría mucho a entender el problema con mayor claridad y proponer una solución precisa.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
STANDARD
TAGS
AUG Leaders

Atlassian Community Events