solo despliega el primer nivel, restringir a que nivel desplegar...
Aquí un usuario da ejemplo en código de como uso la función
http://www.abap.es/foro/index.php?topic=162.0
así como esta hay otra página que mas o menos intenta explicar para que sería cada campo
https://archive.sap.com/discussions/thread/38268
Ejemplo PGM Z para probar la función (leer los comentarios)
REPORT ZRCS11001.
DATA: pm_mtnrv LIKE mara-matnr,
pm_werks LIKE marc-werks,
pm_stlal LIKE stko-stlal,
pm_capid LIKE tc04-capid.
DATA: BEGIN OF STB OCCURS 1000.
INCLUDE STRUCTURE STPOX.
DATA: END OF STB.
"no olvidar que en cada APPEND realizado
"linea abajo limpiar el work area en este caso el LS_RCMAT
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
DATUV = sy-datum
EMENG = 1
MEHRS = 'X'
MTNRV = pm_mtnrv
STLAL = pm_stlal
WERKS = pm_werks
TABLES
STB = stb.
IF SY-SUBRC <> 0.
"Aquí si no encuentra nada debería saltarse al siguiente material
"si estas dentro de un LOOP a materiales (ojo, loop a materiales)
"deberás poner CONTINUE, así se saltará todo el código que viene
"debajo y aplicar la función para el siguiente material
"o solo poner la logica para que agregue una sola linea a tu
"gt_rcmat
***************************************************
"Una observación a tu LOOP AT lt_stb es que deberías ponerlo
"dentrod de este ELSE que esta debajo ya que eso indicara
"que se encontro un despliegue y hacerle toda la logica
"para que cada registro se ingrese en el gt_rcmat
ELSE.
ENDIF.
Imágenes del debug y análisis...
EMENG
DEBUG PROGRAMA Z QUE LLAMA A LA FUNCIÓN
Con esto quedaría la duda sobre si la función despliega todo, se ve que en un primer momento o para la mayoría de caso salvo, nunca se sabe, excepciones.. pero con esto ya quedaría y no sería necesario llamar dentro de tu LOOP de materiales a la función más que una sola vez. así como limpias el work area luego de cada APPEND podrías probar al iniciar cada LOOP al igual que tu tabla LT_STB hacerle un refresh antes de cada llamada a la función, no vaya a ser que se quede pegado para un material... ojo con esas cosas, no esta demás darle una vuelta.
*****************************************************************************
******************************************************************
Espero haya sido de ayuda mi aporte... espero mi premio mi gran gran gran premio (ya sabes cuál como y donde, con todo completo O-R-A- ...)
Exitos y dale, si no sale algo comenta el blog o si hay roche investiga en internet sobre la función o algún campo, si se puede! ánimos!
No olvides siempre limpiar las variables donde se debe y hacer bien las asignaciones, vas bien!
Saludos
No hay comentarios.:
Publicar un comentario