¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como resolver o erro NO_FIELDCATALOG_AVAILABLE ao converter um programa de REUSE_ALV_GRID_DISPLAY para REUSE_ALV_GRID_DISPLAY_LVC.

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

(Por favor, tenha paciência, sou completamente novo no SAP)

Olá a todos!

Estou tentando converter um programa de REUSE_ALV_GRID_DISPLAY para REUSE_ALV_GRID_DISPLAY_LVC, mas continuo recebendo o erro "NO_FIELDCATALOG_AVAILABLE".

As linhas mais relevantes do meu programa são as seguintes:

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. "carregar dados em 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_do_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
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

O parâmetro i_structure_name leva o nome de uma tabela de dicionário, visualização ou estrutura como parâmetro real. Sua estrutura gty_s_alv está definida globalmente em seu programa, mas não no dicionário de dados.

Tem as seguintes opções:

  • Defina sua estrutura gty_s_alv como uma estrutura global no dicionário de dados (SE11). Se não deseja alterar o catálogo de campos, deverá ser capaz de chamar diretamente REUSE_ALV_GRID_DISPLAY_LVC fornecendo o parâmetro i_structure_name lá e não fornecendo-o para 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.
  • Construa seu catálogo de campos "manualmente" e forneça-o para it_fieldcat_lvc.
  • Use um módulo de função diferente ou um dos enfoques de alv baseados em classes que possam lidar com definições de tipo "locais".
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sandra,

Obrigado pela sua publicação. De acordo com o depurador, o mt_fieldcat está vazio. Isso é o que eu sei. O que realmente não entendo é POR QUE está vazio. Parece que estou seguindo tudo conforme os exemplos que vi na web (eu acho ? ) . A única coisa da qual não tenho certeza é se minha tabela interna (GT_ALV) possui uma linha de cabeçalho. Isso poderia ser um fator?

Obrigado novamente,

Luis

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

Deverias usar o depurador para garantir o que está acontecendo. Por exemplo, o LVC_FIELDCATALOG_MERGE retorna um catálogo de campos?

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

O parâmetro i_structure_name recebe o nome de uma tabela de dicionário, visualização ou estrutura como parâmetro real. Sua estrutura gty_s_alv está definida globalmente em seu programa, mas não no dicionário de dados.

Tem as seguintes opções:

  • Defina sua estrutura gty_s_alv como uma estrutura global no dicionário de dados (SE11). Se não deseja alterar o catálogo de campos, deve ser capaz de chamar diretamente REUSE_ALV_GRID_DISPLAY_LVC fornecendo o parâmetro i_structure_name lá e não fornecendo 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.
  • Construa seu catálogo de campos "manualmente" e forneça-o a it_fieldcat_lvc.
  • Utilize um módulo de função diferente ou um dos enfoques de ALV baseados em classes que podem lidar com definições de tipo "locais".
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?