¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo solucionar el error NO_FIELDCATALOG_AVAILABLE al convertir un programa de REUSE_ALV_GRID_DISPLAY a REUSE_ALV_GRID_DISPLAY_LVC

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 27 Vistas
0
Cargando...

(Por favor, ten paciencia, soy completamente nuevo en SAP)

¡Hola a todos!

Estoy intentando convertir un programa de REUSE_ALV_GRID_DISPLAY a REUSE_ALV_GRID_DISPLAY_LVC, pero sigo obteniendo un error "NO_FIELDCATALOG_AVAILABLE".

Las líneas más relevantes de mi programa son las siguientes:

TYPES :
  BEGIN OF gty_s_alv,
  n1, n2, etc
END OF gty_s_alv.

DATA: gt_alv  TYPE TABLE OF gty_s_alv WITH HEADER LINE,   
DATA: mt_fieldcat TYPE lvc_t_fcat.

  PERFORM get_data. "cargar datos en gt_alv
  PERFORM build_fieldcat.
  PERFORM list_display.

*----------------------------------------------------
FORM BUILD_FIELDCAT.
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
  EXPORTING
     i_structure_name  = 'GTY_S_ALV'
  CHANGING
     ct_fieldcat       = mt_fieldcat
  EXCEPTIONS
     inconsistent_interface  = 1
     program_error  = 2
     OTHERS  = 3.
ENDFORM.
*----------------------------------------------------
FORM list_display .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
     i_structure_name = 'GTY_S_ALV'
     i_grid_title     = 'Título_del_programa'(001)
     it_fieldcat_lvc  = mt_fieldcat
  TABLES
     t_outtab  = gt_alv
  EXCEPTIONS
     program_error  = 1
     OTHERS         = 2.


  IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.  " list_display
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

El parámetro i_structure_name toma el nombre de una tabla de diccionario, vista o estructura como parámetro real. Su estructura gty_s_alv está definida globalmente en su programa pero no en el diccionario de datos.

Tiene las siguientes opciones:

  • Defina su estructura gty_s_alv como una estructura global en el diccionario de datos (SE11). Si no desea cambiar el catálogo de campos, debería poder llamar directamente a REUSE_ALV_GRID_DISPLAY_LVC proporcionando el parámetro i_structure_name allí y no suministrándolo a it_fieldcat_lvc.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
      EXPORTING
         i_structure_name = 'YOUR_GLOBAL_DDIC_STRUCTURE'
         i_grid_title     = 'Program_Title'(001)
      TABLES
         t_outtab         = gt_alv
      EXCEPTIONS
         program_error    = 1
         OTHERS           = 2.
  • Construya su catálogo de campos "a mano" y suminístrelo a it_fieldcat_lvc.
  • Utilice un módulo de función diferente o uno de los enfoques de alv basados en clases que puedan manejar definiciones de tipo "locales".
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sandra,

Gracias por tu publicación. Según el depurador, mt_fieldcat está vacío. Eso es lo que sé. Lo que realmente no entiendo es POR QUÉ está vacío. Parece que estoy haciendo todo según los ejemplos que he visto en la web (creo 🙂 ) . Lo único de lo que no estoy seguro es de que mi tabla interna (GT_ALV) tiene una línea de encabezado. ¿Podría ser esto un factor?

Gracias de nuevo,

Luis

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Deberías usar el depurador para asegurarte de lo que sucede. Por ejemplo, ¿LVC_FIELDCATALOG_MERGE devuelve un catálogo de campos?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

El parámetro i_structure_name toma el nombre de una tabla de diccionario, vista o estructura como parámetro real. Su estructura gty_s_alv está definida globalmente en su programa pero no en el diccionario de datos.

Tiene las siguientes opciones:

  • Defina su estructura gty_s_alv como una estructura global en el diccionario de datos (SE11). Si no desea cambiar el catálogo de campos, debería poder llamar directamente a REUSE_ALV_GRID_DISPLAY_LVC proporcionando el parámetro i_structure_name allí y no suministrando it_fieldcat_lvc.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
      EXPORTING
         i_structure_name = 'YOUR_GLOBAL_DDIC_STRUCTURE'
         i_grid_title     = 'Program_Title'(001)
      TABLES
         t_outtab         = gt_alv
      EXCEPTIONS
         program_error    = 1
         OTHERS           = 2.
  • Construya su catálogo de campos "manualmente" y suminístrelo a it_fieldcat_lvc.
  • Utilice un módulo de función diferente o uno de los enfoques de alv basados en clases que pueden manejar definiciones de tipo "locales".
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?