viernes, 7 de septiembre de 2012

Error en Smartform por no existir imagen de la SE78.


Problema: tengo un smartform y en ella una imagen. La imagen las subo con la SE78, son BMAP, BCOL. El problema lo tengo en que el nombre es dinámico w_milogo y si no hemos subido la imagen con la SE78 el formulario no sale y da error. ¿Cómo evitarlo?
Buscando por internet he visto que la tabla donde se guardan los atributos  básicos de la imagen es en stxbitmaps, por lo tanto es tan sencillo como ver si existe el valor en esta tabla.

SELECT SINGLE tdname FROM  stxbitmaps
  INTO (w_milogo)
       WHERE  tdobject  = 'GRAPHICS'
       AND    tdname    = w_milogo
       AND    tdid      = 'BMAP'
       AND    tdbtype   = 'BCOL'.
*
IF sy-subrc IS NOT INITIAL.
  CLEAR w_milogo.
ENDIF.
Finalmente  en las condiciones de la imagen del Smartform ponemos que w_milogo no es igual a INITIAL, y evitamos el error.