PDA

Ver la Versión Completa : SET´s Dinámicos ABAP


ppchico
15/07/09, 06:47:52
Saludos,

No se si alguien se habrá peleado un poco con los SETs de SAP, a través de las transaccciones GS01, GS02 ó GS03. El problema que tengo, es que quiero hacer un SET que se actualice dinámicamente en función de un campo de una tabla; me explico, imaginemos que queremos sacar todos MATNR de la MARA, para los cuales el campo MFRNR equivale al valor 2 por ejemplo; pues bien, esto es lo que tengo que obtener, queremos configurar un set, de manera que devuelva todos esos MATNR dependiendo del campo MFRNR del registro asociado en la MARA. No se si será posible, pero no he tocado nunca los SET, y ando algo perdido. Si alguien tiene un manual, o sabría comentarme como puedo enfocar la solución a mi problema, estaría muy agradecido.

Muchas gracias de antemano.
Un Saludo,

jmenendez
15/07/09, 12:46:37
A ver si entiendo.
Vos lo que necesitás es alimentar el SET de forma dynámica según un criterio.
Es esto correcto ? ?

De ser así, creá un programa que selecione tu criterio, controle tu set y cargue las nuevas incidencias (eliminando las que ya no correspondan). Este programa correlo por Job periodicamente.
No se si habrá una forma de hacer que los SEts se autoalimenten.

Saludos.

ppchico
15/07/09, 12:51:57
Esto es básicamente lo que queremos hacer... pero no encuentro ningún módulo de función que modifique el SET, no se si te referiras a modificar la tabla SETLEAF directamente desde el REPORT, aunque eso lo veo inconsistente. Si conoces algún módulo de funciones para modificar el SET, me harías felicísimo.

Muchas gracias por tu respuesta.
Un Saludo,

jmenendez
15/07/09, 15:30:32
FM: G_SET_FETCH

Esta es la función para obtener desde código el contenido del SET.
Ahora estoy buscando documentación de cuando trabajé con SETs para poder completarte un poco mejor la idea.

Consulta. xq usar un SET que es complicado y no una tabla Z ?

ppchico
16/07/09, 06:59:48
Al parecer, este set se usa en ciertas parametrizaciones de consultoría, y el poder actualizarlo dinámicamente ahorra mucho tiempo de trabajo... esa es la cuestión de necesitar actualizar el SET de forma dinámica.

Si encuentras la documentación al respecto, te agradecería mucho que me la hicieses llegar, ya que en la red no hay mucha información.

Gracias de nuevo por la respuesta.

jmenendez
16/07/09, 14:16:44
Acabo de probar y se puede hacer CALL TRANSACTION a la transacción GS02 en la versión 6.0.
Creo que sería la mejor opción. Queda en vos ingeniartelas para hacer el CT.

La otra opción es que hagas un estudio de la transacción GS02.
Con la trx: se30 se hace un análisis de performance de una trx o mf o prg.
Se hace una corrida de prueba. Habiendo terminado la misma, en la trx inicial podés acceder a los resultados de tu prueba con el botón EVALUATE. En el listado arrojado apretás el botón HIT LIST o F5 y te lleva a un alv detallado de las instrucciones que se hicieron durante la corrida.
Si no me equivoco la instrucción que haga la actualización de la BD está escondida en este listado.
Se me ocurre empezar filtrando por las funciones y ver que hacen.
La primera función que me llamó la atención fue: "SETS_WRITE_DOCUMENT" Pero cuando intenté cambiar los parámetros en tiempo de ejecución no tuve buen resultado.
Por eso se me ocurrió que es mejor usar el CT ya que no tenés problema con las llamadas a las funciones.

Ojo con un análsis a conciencia del problema y las instrucciones del programa creo que también se puede dejar de usar el CT, pero para salir al paso, lo veo mejor.

Mundo sap que opina?

Saludos