Hola sanjali07 Gracias por tu código, está funcionando al 100%.
Tuve otro error pero fue mi error, ya lo resolví.
¡Eres genial!
Saludos,
Alejandro
Avalados por :
Hola 7a519509aed84a2c9e6f627841825b5a , t.vanrooijen y expertos,
Tengo un problema similar editando archivos planos.
Necesito que la salida esté separada por comas.
Esto es lo que tengo ahora:
"31008994"KioskAccess No
"31010868"KioskAccess No
"31010877"KioskAccess No
"31007038"KioskAccess No
"31009159"KioskAccess No
"31009182"KioskAccess No
Y esto es lo que necesito:
"31008994",KioskAccess,No
"31010868",KioskAccess,No Override
"31010877",KioskAccess,No
"31007038",KioskAccess,Yes Override
"31009159",KioskAccess,No
"31009182",KioskAccess,Yes
Este es mi input, (reducido para que quepa aquí y se ejecute más rápido):
"31019260",1,OYES
"13014109",1,OYES
"31018709",1,OYES
"50000363",1,OYES
"50000124",1,OYES
"12701608",2,No
"12701636",2,Yes
"12701636",2,Yes
"12703144",2,No
"12703933",2,No
"11601173",2,No
"11601177",2,Yes
"11601184",2,Yes
"11601185",2,Yes
"31008994",3,No
"31010868",3,No
"31010877",3,No
"31007038",3,No
"31010890",3,No
"31004730",3,No
"31010945",3,No
"31004758",3,No
"31004774",3,No
"31004784",3,No
"31004880",3,No
En el script groovy obtengo estos datos y se procesan, los números 1, 2 y 3 se utilizan para diferenciar de dónde provienen los datos.
Para cada registro hice esto:
Job.each{ TODO EL CÓDIGO
// Antes de adjuntar la variable textFinal tiene mis datos
Pedro Pascal
Se unió el 07/03/2018
Hola sanjali07 Gracias por tu código, está funcionando al 100%.
Tuve otro error pero fue mi error, ya lo resolví.
¡Eres genial!
Saludos,
Alejandro
Hola Alex,
Gracias por compartir el script completo.
¿Puedes probar esto para todos los escenarios posibles y ver si funciona, en lugar de dividir aún más el textFinal para el relleno que no creo que necesites según tu salida esperada y dado que estás preparando todas las líneas con comas, la siguiente línea debería ser suficiente,
sb.append(textFinal+"\n")
Groovy actualizado adjunto como archivo de texto. processfile.txt
Saludos cordiales
Sanjali
processfile.txtHi 7a519509aed84a2c9e6f627841825b5a ,
Mi entrada es un gran conjunto de datos con 3 códigos, 1, 2 y 3.
Divido esa gran entrada en 3 tablas, una tabla por código.
Luego, para cada elemento en el código 1, si dice Sí, añado ese registro a la tabla de salida.
Si dice no, entonces tengo que buscar la clave en la segunda tabla (código 2) si dice Sí, añado ese registro a la tabla de salida.
Si dice No, repito con la tabla 3. Si dice Sí, añado Sí. Si dice no, añado NO.
Tengo la salida lista, con la excepción de que puedo tenerla separada por comas.
Por ejemplo:
"50000124",1,No
"50000124",2,No
"50000124",3,Yes
"12701636",1,Yes
"12701636",2,No
"12701636",3,No
"11601173",1,No
"11601173",2,Yes
"11601173",3,Yes
Debería producir:
Código 1 = no, código 2 = no, código 3 = Sí ==> Salida Sí"50000124",KioskAccess,SíCódigo 1 = Sí ==> No necesidad de verificar otros códigos.
"12701636",KioskAccess,SíCódigo 1 = No, código 2 = Sí ==> No necesidad de verificar código 3."11601173",KioskAccess,síSalida necesaria en formato csv:"50000124",KioskAccess,Sí"12701636",KioskAccess,Sí"11601173",KioskAccess,sí
Gracias al código que proporcionaste como ejemplo hace algún tiempo, logré hacer esto:
"50000124"KioskAccess No
"31010868"KioskAccess No
"11601173"KioskAccess No
Pero necesito esto separado por comas.
Debido a mi experiencia limitada con CPI y Groovy, este puede que no sea el mejor enfoque, pero es lo que logré hacer, y ahora, desafortunadamente, me estoy quedando sin tiempo.
textFinal.splitEachLine(',') { fields ->
fields.eachWithIndex() { field, index ->
sb.append(field.padLeft(columnWidths[index]))
}
sb.append
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
Hola Alejandro. Olvida el código por ahora. En su lugar, por favor explícame detalladamente cómo una línea de entrada debería ser traducida a una línea de salida. Esto no está claro en absoluto en tu pregunta. Saludos, Morten
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute