PDA

Ver la Versión Completa : Provide de varios infotipos


cdsap
13/06/08, 15:14:08
Buenas necesito volcar los datos con cortes de varios infotipos en un listado que agrupe determinados datos en un mismo registro.

Concretamente son 5 infotipos, teneis constancia de que tenga problemas de recursos?

Como puedo saber la optimización de este provide?

Saludos y Gracias

Floren
16/06/08, 07:11:40
Hola,

Especifica un poco más. Qué información quieres extraer exactamente?

Un saludo

cdsap
16/06/08, 10:00:19
Buenas Floren, los infotipos que estoy consultando son
0001
0008
0016
0041
0061

Los datos que quiero conseguir son las relaciones de estos inforipos en las fechas dadas, por ejemplo:

Trabajador A ENDDA_1 BEGDA_1 DIVISIÓN A SUBDIVISIÓN B CONVENIO 1
Trabajador A ENDDA_2 BEGDA_2 DIVISIÓN A SUBDIVISIÓN B CONVENIO 2

Gracias

robert_milan
16/06/08, 10:22:24
usa la tabla logica PNP, ahi puedes tener lo que necesitas.

cdsap
16/06/08, 10:28:39
Gracias Robert, así lo hago, mi pregunta viene para determinar el rendimiento de esta consulta, no quiero dejar tirado el sistema con una consulta de este estilo...

Se puede ver el equivalente de esta consulta en SQL? Así y todo se podría ejecutar un explain plan para analizarlo en detalle.

Floren
16/06/08, 11:19:42
Hola,

Postea el código del provide que dudas si poner en el programa, así te podré decir de manera más segura si te puedes cargar o no el performance.

Aunque seguramente ya lo sepas, el provide no funciona de la misma manera que un loop. El provide recorta las fechas, ten esto en cuenta.

Otra cosa, quieres extraer esta información para todos los empleados (filtrando por la PNP)? o para algunos en concreto? Te pregunto esto porque exiten macros que extraen datos de los infortipos sin tener que cargar PNP en el report.

Un saludo

cdsap
16/06/08, 12:57:22
Contemplo las dos posibilidades, una actualización general y otra por empleado, utilizando el filtrado de la pnp.

El provide es simple:
provide pernr aedtm endda begda uname bukrs werks
btrtl orgeh ansvh persk kokrs kostl
persg abkrs plans stell from p0001
pernr aedtm endda begda
uname trfar trfgb trfgr
bsgrd from p0008
berkt grcot ocupa from p0061
cttyp ctedt from p0016
dat01 from p0041
between pn-begda and pn-endda.




Mi temor es el consumo de recursos por parte de la instrucción

Floren
16/06/08, 15:27:30
No tendrás ningún problema en el performance por esta instrucción. La complejidad es lineal.

cdsap
16/06/08, 15:38:19
Gracias Floren otra vez, pero que quieres decir con lo de "lineal"

Floren
17/06/08, 09:57:39
Gracias Floren otra vez, pero que quieres decir con lo de "lineal"

Una complejidad lineal significa que no es exponencial, por ejemplo:

loop at ....
loop at ....
loop at ...

endloop.
endloop.
endloop.

Esta sentencia tiene una cota de complejidad de n*n*n. Es exponencial, y hay que evitarlas dentro de lo posible.

Cuando trabajes con PNP, debes tener en cuenta que cuantos más filtros pongas en la pantalla de selección estandard mejor (para esto, el uso de report categories es perfecto).

En general, cuando se trabaje con reportes de HR, hay que intentar minimizar dos cosas; el número de iteraciones del evento Get pernr y el número de infotipos declarados en la sentencia INFOTYPES.

Un saludo