Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Field Symbol has not been assigned ALV Report error

Hamza_imran
Participant

Hi gurus,

Need help with my ALV Report. When I'm running the following code I'm getting this error.

FORM get_itab_data .

*SELECT  * INTO  TABLE @DATA(itt_data)
*FROM       qamr
*WHERE prueflos IN @s_insp.

SELECT DISTINCT a~prueflos, a~matnr, b~mtart, a~ktextmat, a~charg, a~mengeneinh, a~enstehdat, a~gesstichpr, a~einhprobe, a~losmenge, a~lifnr, a~werk
INTO CORRESPONDING FIELDS OF TABLE @itab_header
FROM       qals AS a
INNER JOIN mara AS b ON ( a~matnr = b~matnr )
WHERE prueflos IN @s_insp.


    DATA: lv_gruppe1 TYPE qamr-gruppe1,
        lv_code    TYPE qpct-code,
        lv_zun     LIKE cha_class_view-toleranzun,
        MASSEINHSW like plmk-MASSEINHSW,
        lv_zob     LIKE cha_class_view-toleranzob,
        result     TYPE kurztext,
        lv_stellen TYPE qamv-stellen,
        lv_uom type char20.


LOOP AT it_detail INTO wa_detail.
*    SELECT  SINGLE  MERKNR FROM QAMV INTO   (WA_DETAIL-SPECID) WHERE PRUEFLOS EQ WA_HEADER-PRUEFLOS AND VERWMERKM = WA_DETAIL-VERWMERKM.


DATA : lv_o_val(25) TYPE c.

    SELECT SINGLE gruppe1 INTO wa_detail-gruppe1 FROM qamr WHERE prueflos EQ wa_header-prueflos AND merknr EQ wa_detail-merknr AND vorglfnr = wa_detail-vorglfnr.
    SELECT SINGLE gruppe1 code1 INTO ( lv_gruppe1, lv_code ) FROM qamr WHERE prueflos EQ wa_header-prueflos AND merknr = wa_detail-merknr AND vorglfnr EQ wa_detail-vorglfnr.
   SELECT SINGLE kurztext INTO wa_detail-results FROM qpct  WHERE codegruppe  =  lv_gruppe1 AND code = lv_code.
    IF wa_detail-results IS INITIAL.
      SELECT SINGLE mittelwert original_input INTO ( lv_quan ,lv_o_val ) FROM qamr WHERE prueflos EQ wa_header-prueflos AND merknr = wa_detail-merknr AND vorglfnr EQ wa_detail-vorglfnr.


      IF lv_quan  IS NOT INITIAL .
      CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
      EXPORTING
        i_number_of_digits             = '2'
        i_fltp_value                   = lv_quan
      IMPORTING
        e_char_field                   = lv_quan1.
       MOVE lv_quan1 TO wa_detail-results.
       CONDENSE wa_detail-results.
       SHIFT wa_detail-results RIGHT DELETING TRAILING '0'.
      ENDIF.
      IF lv_o_val EQ 0 AND wa_detail-results IS INITIAL.

      MOVE lv_o_val TO wa_detail-results.
ENDIF.


      ENDIF.
    "-----Specifications------"
    IF wa_detail-gruppe1 IS NOT INITIAL.
      lv_num = strlen( wa_detail-gruppe1 ).

      IF lv_num EQ 6.
        CONCATENATE '100'  'QM011' wa_detail-gruppe1 '  E'  INTO lv_object.
      ELSEIF lv_num EQ 7.
        CONCATENATE '100' 'QM011' wa_detail-gruppe1 ' E'  INTO lv_object.

      ELSEIF lv_num EQ 8.
        CONCATENATE '100'  'QM011' wa_detail-gruppe1 'E'  INTO lv_object.
      ENDIF.
      CALL FUNCTION 'READ_TEXT'
      EXPORTING
    id                            = 'QPAM'
    language                      = 'E'
    name                          = lv_object
    object                        = 'QKATALOG'
    TABLES
    lines                         = tline
    EXCEPTIONS
   id                            = 1
   language                      = 2
   name                          = 3
   not_found                     = 4
   object                        = 5
   reference_check               = 6
   wrong_access_to_archive       = 7
   OTHERS                        = 8.
IF sy-subrc EQ 0.
LOOP AT tline WHERE tdline IS NOT INITIAL.
  CONCATENATE wa_detail-specifications tline-tdline INTO wa_detail-specifications SEPARATED BY lf.
ENDLOOP.
CONDENSE wa_detail-specifications.

SHIFT wa_detail-specifications LEFT DELETING LEADING lf.
ENDIF.
ELSE.

  SELECT SINGLE pmethode INTO (wa_detail-pmethode) FROM qamv WHERE prueflos EQ wa_header-prueflos  AND merknr EQ wa_detail-merknr AND vorglfnr = wa_detail-vorglfnr.
  IF wa_detail-pmethode IS INITIAL.

    SELECT SINGLE toleranzun toleranzob INTO (wa_detail-toleranzun, wa_detail-toleranzob) FROM qamv WHERE prueflos EQ wa_header-prueflos  AND merknr EQ wa_detail-merknr AND vorglfnr = wa_detail-vorglfnr.
* ------------------------ BOC by Hafiz je  14-july 2020 ---------------------------------------------------

SELECT SINGLE MASSEINHSW INTO @data(lv_Ballu)
              FROM qamv WHERE prueflos EQ @wa_header-prueflos
              AND merknr EQ @wa_detail-merknr AND vorglfnr eq @wa_detail-vorglfnr ..
*  * ------------------------ BOC by Hafiz ji  14-july 2020 ---------------------------------------------------
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
  EXPORTING
    input                = lv_ballu
   LANGUAGE             = SY-LANGU
 IMPORTING

   OUTPUT               = lv_ballu
 EXCEPTIONS
   UNIT_NOT_FOUND       = 1
   OTHERS               = 2
          .




      BREAK anas_abap.
    CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
      EXPORTING
        i_number_of_digits             = '2'
        i_fltp_value                   = wa_detail-toleranzun
      IMPORTING
        e_char_field                   = lv_zun.
    CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
      EXPORTING
        i_number_of_digits             = '2'
        i_fltp_value                   = wa_detail-toleranzob
      IMPORTING
        e_char_field                   = lv_zob.

    CONDENSE: lv_zun, lv_zob.
    CONCATENATE lv_zun '-' lv_zob INTO wa_detail-specifications SEPARATED BY space.  "LOC by H.naeem

    break hamza_abap.
*    CONCATENATE lv_zob MASSEINHSW INTO wa_detail-specifications SEPARATED BY space.

  ELSE.
  SELECT SINGLE kurztext INTO wa_detail-specifications FROM qmtt WHERE pmtnr EQ wa_detail-pmethode AND werks EQ 'QM01'.
  ENDIF.
ENDIF.



    SELECT SINGLE stellen INTO lv_stellen FROM qamv WHERE prueflos EQ wa_header-prueflos AND vorglfnr EQ lv_code.

MODIFY it_detail FROM wa_detail .
CLEAR: wa_detail, lv_quan, lv_quan1, lv_gruppe1, lv_code,lv_o_val.
ENDLOOP.

DELETE it_detail WHERE results IS INITIAL.

IF it_detail[] IS INITIAL.
  APPEND wa_detail TO it_detail.
ENDIF.



  ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  build_layout
*&---------------------------------------------------------------------*
*       Set Layout For ALV Display
*----------------------------------------------------------------------*
FORM display_alv.

*/.. Set field catalogs for alv
  PERFORM get_fieldcatalog.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program     = sy-repid
      i_callback_top_of_page = 'TOP-OF-PAGE'
      is_layout              = gs_layout
      it_fieldcat            = gt_fcat
      i_save                 = 'A'
    TABLES
      t_outtab               = it_detail
    EXCEPTIONS
      program_error          = 1
      OTHERS                 = 2.




ENDFORM.

**&---------------------------------------------------------------------*
**&      Form  GET_FIELDCATALOG
**&---------------------------------------------------------------------*
**       Create field catalog from dictionary structure
**----------------------------------------------------------------------*
**  -->  p_struc_name        Stucture Name
**  -->  p_rtname            Reference Table Name
**  -->  p_repid             Program Name
**  <->  c_fcat              Field Catalog
**----------------------------------------------------------------------*
FORM get_fieldcatalog.

  CLEAR: gs_fcat.
  REFRESH: gt_fcat.

  gs_fcat-col_pos   = 1.
  gs_fcat-fieldname = 'PRUEFLOS'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Inspection Lot'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 2.
  gs_fcat-fieldname = 'MATNR'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Material'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 3.
  gs_fcat-fieldname = 'MAKTX'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Material Description'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 4.
  gs_fcat-fieldname = 'CHARG'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Batch'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 5.
  gs_fcat-fieldname = 'KURZTEXT'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Test Parameter'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 6.
  gs_fcat-fieldname = 'KTX01'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Specification'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

    gs_fcat-col_pos   = 6.
  gs_fcat-fieldname = 'RESULTS'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Results'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.



ENDFORM.

Any Sort of Help regarding this would be Appreciated.

Regards,

Hamza.

11 REPLIES 11

chau1995
Active Participant
0 Kudos

Hi.
Check your code
i_callback_top_of_page ='TOP-OF-PAGE'

is_layout = gs_layout
Could you please comment/remove it and run again

0 Kudos

Still same error.

chau1995
Active Participant
0 Kudos

Hmm, check continuously field in field-catalog. Maybe incorrect column name

mateuszadamus
Active Contributor

Hello humza_immi

This error usually happens if you have an incorrect column name in your field catalog. Please check that twice.
Otherwise please provide more information from the shortdump.

Kind regards,
Mateusz

0 Kudos

I've double checked the column names in the field catalog. They're alright. The short dump is occurring at the following line. Please see attached photo.

0 Kudos

If <l_field_value> is not assigned, then clearly it's the column name issue.

Can you please show the IT_DETAIL table definition?


Kind regards,
Mateusz

0 Kudos

Hi Mateusz,


DATA: IT_DETAIL     TYPE ZAJ_QM_COA_PRODUCTION_SPECS_T,
      WA_DETAIL     TYPE ZAJ_QM_COA_PRODUCTION_SPECS,
      WA_HEADER     TYPE ZAJ_QM_COA_PRODUCTION.

Here you go.

0 Kudos

Okay, but where are the KTX01, CHARG, MAKTX, MATNR, PRUEFLOS fields? They are not in the definition of the type used for IT_DETAILS .


Kind regards,
Mateusz

0 Kudos

They are in this main query.

SELECT DISTINCT a~prueflos, a~matnr, b~mtart, a~ktextmat, a~charg, a~mengeneinh, a~enstehdat, a~gesstichpr, a~einhprobe, a~losmenge, a~lifnr, a~werk
INTO CORRESPONDING FIELDS OF TABLE @itab_header
FROM       qals AS a
INNER JOIN mara AS b ON ( a~matnr = b~matnr )
WHERE prueflos IN @s_insp.


DATA: BEGIN OF ITAB_HEADER OCCURS 0.
      INCLUDE STRUCTURE ZAJ_QM_COA_PRODUCTION.
DATA: END OF ITAB_HEADER.

0 Kudos

Okay, but you're not providing ITAB_HEADER to ALV, you're providing IT_DETAIL. The field catalog has to have information about the fields from the internal table that you are providing to the ALV.


Kind regards,
Mateusz

0 Kudos

Dear mateuszadamus ,

I solved the problem of field symbol but now i'm stuck in this logic. Basically i'm getting inspection lot material batch and material description by inner join . But for the next 3 fields it is not populating any data . I'm guessing there's something wrong in the LOOP AT itab_header INTO wa_header.

SELECT  a~prueflos, b~matnr,   b~charg, b~ktextmat
INTO CORRESPONDING FIELDS OF TABLE @itab_header
FROM       qamv AS a
INNER JOIN qals AS b ON ( a~prueflos = b~prueflos )
WHERE a~prueflos IN @s_insp.


LOOP AT itab_header INTO wa_header.
*    SELECT  SINGLE  MERKNR FROM QAMV INTO   (WA_DETAIL-SPECID) WHERE PRUEFLOS EQ WA_HEADER-PRUEFLOS AND VERWMERKM = WA_DETAIL-VERWMERKM.


DATA : lv_o_val(25) TYPE c.

    SELECT SINGLE gruppe1 INTO wa_detail-gruppe1 FROM qamr WHERE prueflos EQ wa_header-prueflos AND merknr EQ wa_detail-merknr AND vorglfnr = wa_detail-vorglfnr.
    SELECT SINGLE gruppe1 code1 INTO ( lv_gruppe1, lv_code ) FROM qamr WHERE prueflos EQ wa_header-prueflos AND merknr = wa_detail-merknr AND vorglfnr EQ wa_detail-vorglfnr.
   SELECT SINGLE kurztext INTO wa_detail-results FROM qpct  WHERE codegruppe  =  lv_gruppe1 AND code = lv_code.
    IF wa_detail-results IS INITIAL.
      SELECT SINGLE mittelwert original_input INTO ( lv_quan ,lv_o_val ) FROM qamr WHERE prueflos EQ wa_header-prueflos AND merknr = wa_detail-merknr AND vorglfnr EQ wa_detail-vorglfnr.


      IF lv_quan  IS NOT INITIAL .
      CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
      EXPORTING
        i_number_of_digits             = '2'
        i_fltp_value                   = lv_quan
      IMPORTING
        e_char_field                   = lv_quan1.
       MOVE lv_quan1 TO wa_detail-results.
       CONDENSE wa_detail-results.
       SHIFT wa_detail-results RIGHT DELETING TRAILING '0'.
      ENDIF.
      IF lv_o_val EQ 0 AND wa_detail-results IS INITIAL.

      MOVE lv_o_val TO wa_detail-results.
ENDIF.


      ENDIF.
    "-----Specifications------"
    IF wa_detail-gruppe1 IS NOT INITIAL.
      lv_num = strlen( wa_detail-gruppe1 ).

      IF lv_num EQ 6.
        CONCATENATE '100'  'QM011' wa_detail-gruppe1 '  E'  INTO lv_object.
      ELSEIF lv_num EQ 7.
        CONCATENATE '100' 'QM011' wa_detail-gruppe1 ' E'  INTO lv_object.

      ELSEIF lv_num EQ 8.
        CONCATENATE '100'  'QM011' wa_detail-gruppe1 'E'  INTO lv_object.
      ENDIF.
      CALL FUNCTION 'READ_TEXT'
      EXPORTING
    id                            = 'QPAM'
    language                      = 'E'
    name                          = lv_object
    object                        = 'QKATALOG'
    TABLES
    lines                         = tline
    EXCEPTIONS
   id                            = 1
   language                      = 2
   name                          = 3
   not_found                     = 4
   object                        = 5
   reference_check               = 6
   wrong_access_to_archive       = 7
   OTHERS                        = 8.
IF sy-subrc EQ 0.
LOOP AT tline WHERE tdline IS NOT INITIAL.
  CONCATENATE wa_detail-specifications tline-tdline INTO wa_detail-specifications SEPARATED BY lf.
ENDLOOP.
CONDENSE wa_detail-specifications.

SHIFT wa_detail-specifications LEFT DELETING LEADING lf.
ENDIF.
ELSE.

  SELECT SINGLE pmethode INTO (wa_detail-pmethode) FROM qamv WHERE prueflos EQ wa_header-prueflos  AND merknr EQ wa_detail-merknr AND vorglfnr = wa_detail-vorglfnr.
  IF wa_detail-pmethode IS INITIAL.

    SELECT SINGLE toleranzun toleranzob INTO (wa_detail-toleranzun, wa_detail-toleranzob) FROM qamv WHERE prueflos EQ wa_header-prueflos  AND merknr EQ wa_detail-merknr AND vorglfnr = wa_detail-vorglfnr.
* ------------------------ BOC by Hafiz je  14-july 2020 ---------------------------------------------------

SELECT SINGLE MASSEINHSW INTO @data(lv_Ballu)
              FROM qamv WHERE prueflos EQ @wa_header-prueflos
              AND merknr EQ @wa_detail-merknr AND vorglfnr eq @wa_detail-vorglfnr ..
*  * ------------------------ BOC by Hafiz ji  14-july 2020 ---------------------------------------------------
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
  EXPORTING
    input                = lv_ballu
   LANGUAGE             = SY-LANGU
 IMPORTING

   OUTPUT               = lv_ballu
 EXCEPTIONS
   UNIT_NOT_FOUND       = 1
   OTHERS               = 2
          .




      BREAK anas_abap.
    CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
      EXPORTING
        i_number_of_digits             = '2'
        i_fltp_value                   = wa_detail-toleranzun
      IMPORTING
        e_char_field                   = lv_zun.
    CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
      EXPORTING
        i_number_of_digits             = '2'
        i_fltp_value                   = wa_detail-toleranzob
      IMPORTING
        e_char_field                   = lv_zob.

    CONDENSE: lv_zun, lv_zob.
    CONCATENATE lv_zun '-' lv_zob INTO wa_detail-specifications SEPARATED BY space.  "LOC by H.naeem

    break hamza_abap.
*    CONCATENATE lv_zob MASSEINHSW INTO wa_detail-specifications SEPARATED BY space.

  ELSE.
  SELECT SINGLE kurztext INTO wa_detail-specifications FROM qmtt WHERE pmtnr EQ wa_detail-pmethode AND werks EQ 'QM01'.
  ENDIF.
ENDIF.



    SELECT SINGLE stellen INTO lv_stellen FROM qamv WHERE prueflos EQ wa_header-prueflos AND vorglfnr EQ lv_code.

MODIFY itab_header FROM wa_header .
CLEAR: wa_header, lv_quan, lv_quan1, lv_gruppe1, lv_code,lv_o_val.
ENDLOOP.

*DELETE itab_header WHERE results IS INITIAL.

IF itab_header[] IS INITIAL.
  APPEND wa_header TO itab_header.
ENDIF.



  ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  build_layout
*&---------------------------------------------------------------------*
*       Set Layout For ALV Display
*----------------------------------------------------------------------*
FORM display_alv.

*/.. Set field catalogs for alv
  PERFORM get_fieldcatalog.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program     = sy-repid
      i_callback_top_of_page = 'TOP-OF-PAGE'
      is_layout              = gs_layout
      it_fieldcat            = gt_fcat
      i_save                 = 'A'
    TABLES
      t_outtab               = itab_header
    EXCEPTIONS
      program_error          = 1
      OTHERS                 = 2.




ENDFORM.

**&---------------------------------------------------------------------*
**&      Form  GET_FIELDCATALOG
**&---------------------------------------------------------------------*
**       Create field catalog from dictionary structure
**----------------------------------------------------------------------*
**  -->  p_struc_name        Stucture Name
**  -->  p_rtname            Reference Table Name
**  -->  p_repid             Program Name
**  <->  c_fcat              Field Catalog
**----------------------------------------------------------------------*
FORM get_fieldcatalog.

  CLEAR: gs_fcat.
  REFRESH: gt_fcat.

  gs_fcat-col_pos   = 1.
  gs_fcat-fieldname = 'PRUEFLOS'.
  gs_fcat-tabname   = 'ITAB_HEADER'.
  gs_fcat-seltext_m = 'Inspection Lot'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 2.
  gs_fcat-fieldname = 'MATNR'.
  gs_fcat-tabname   = 'ITAB_HEADER'.
  gs_fcat-seltext_m = 'Material'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 3.
  gs_fcat-fieldname = 'KTEXTMAT'.
  gs_fcat-tabname   = 'ITAB_HEADER'.
  gs_fcat-seltext_m = 'Material Description'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 4.
  gs_fcat-fieldname = 'CHARG'.
  gs_fcat-tabname   = 'ITAB_HEADER'.
  gs_fcat-seltext_m = 'Batch'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 5.
  gs_fcat-fieldname = 'KURZTEXT'.
  gs_fcat-tabname   = 'ITAB_HEADER'.
  gs_fcat-seltext_m = 'Test Parameter'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

  gs_fcat-col_pos   = 6.
  gs_fcat-fieldname = 'KTX01'.
  gs_fcat-tabname   = 'ITAB_HEADER'.
  gs_fcat-seltext_m = 'Specification'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.

    gs_fcat-col_pos   = 6.
  gs_fcat-fieldname = 'RESULTS'.
  gs_fcat-tabname   = 'IT_DETAIL'.
  gs_fcat-seltext_m = 'Results'.
  gs_fcat-outputlen = '12'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR  gs_fcat.