09-29-2020 7:45 AM
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.
09-29-2020 8:39 AM
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
09-29-2020 8:42 AM
09-29-2020 8:51 AM
Hmm, check continuously field in field-catalog. Maybe incorrect column name
09-29-2020 8:49 AM
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.
09-29-2020 9:04 AM
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.
09-29-2020 9:10 AM
If <l_field_value> is not assigned, then clearly it's the column name issue.
Can you please show the IT_DETAIL table definition?
09-29-2020 11:01 AM
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.
09-29-2020 11:10 AM
Okay, but where are the KTX01, CHARG, MAKTX, MATNR, PRUEFLOS fields? They are not in the definition of the type used for IT_DETAILS .
09-29-2020 12:03 PM
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.
09-29-2020 12:06 PM
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.
09-30-2020 9:07 AM
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.