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?
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:
Soluciones o recomendaciones:
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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:
Sería muy útil si pudieran detallar nuevamente el caso que desean resolver, pero esta vez con un ejemplo real y completo.
Por ejemplo:
Además, si pudieran incluir capturas de pantalla mostrando:
Esto nos ayudaría mucho a entender el problema con mayor claridad y proponer una solución precisa.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.