Reporte Z con PNPCE

Buenos dias a todos!!

El dia de hoy vengo a molestarlos con una duda que llevo un par de semanas tratando de optimizar y aun no encuentro la manera.
Debo hacer un reporte tipo HCM con la BDL PNPCE y unos campos Z, el problema es que los tiempos de ejecucion no es precisamente bueno ya que el get peras recorre todos los pernr de la base de datos, mi duda es muy puntual, hay alguna manera de pasarle al get peras solo los pernr que deseo que utilice los cuales estan en una tabla Z, y de ser asi me podrian indicar como hacerlo o donde puedo ver esa información, mil gracias de antemano.

resolviste ???

bueno, para darte una idea…yo nunca lo he hecho pero supongo que se puede.

esa base de datos logica debe tener un campo que se llama pnppernr o algo asi, si te fijas no es mas que el parametro de nro de personal que sale en la pantalla de seleccion…ese es un select-option, lo que tienes que hacer es pasar tu tabla z a ese parametro y en teoria la base de datos logica deberia filtrarte por eso nro de personal. Pero esto tienes que hacerlo antes del evento get, incluso antes del star-of-selection.

1 me gusta

Gracias por tu aporte, hice ese cambio y el perfomance mejoro bastante. Lo unico es que si lo hice en el start of selection. Y me funciono sin ningun inconveniente. :slight_smile:
El cambio medido es de 5.014.761 us a 3.041.221 us, que en el ambiente de desarrollo es un cambio notable, espero se vea reflejado con mayor eficacia en producción.

1 me gusta

me alegro !!

Pero creo que si lo haces antes del star-of-seleccion, te funciona mejora pero ya es para que pruebes cuando puedas :wink: !!

Lo probe de las dos maneras y funciona en cuestion de tiempo, casi igual, decidi no ponerlo en el initizialization, por recomendacion de un abap, que me dice que se deberia evitar en la medida de lo posible poner cosas alli, como soy nueva en este mundo, segui su consejo, podrias ampliarme por que consideras mejor antes del start of selection?.
:slight_smile:

yo recomiendo antes del star-of-seleccion porque la base de datos logica, filtra automaticamente con ese campo que te di en principio…osea, el busca la data a partir de los empleados que tu le indiques en el parametros pnppernr(o algo asi). Digamos que es mas o menos asi…tienes 100 registros en un loop y cuando lo haces despues del get peras, lo que haces es leer los 100 registros y preguntar si cada uno de los 100 entra dentro de tu rango. En cambio si lo pones antes, es como si al loop de los 100 registros le hicieran un where, osea que de los 100 solo tome los que estan en tu rango y en vez de revisar los 100 agarra los 10 o 20 o X cantidad que tu tengas de empleados.

Si me explico ???

1 me gusta

Gracias por la aclaración, me quedo muy claro. :slight_smile:

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.